diff --git a/build/patches/00WIN-ADDTO-Disable-safe-browsing.patch b/build/patches/00WIN-ADDTO-Disable-safe-browsing.patch deleted file mode 100644 index 73e9d55c..00000000 --- a/build/patches/00WIN-ADDTO-Disable-safe-browsing.patch +++ /dev/null @@ -1,2027 +0,0 @@ -From: Your Name -Date: Wed, 12 Oct 2022 09:52:02 +0000 -Subject: WIN ADDTO Disable safe browsing - ---- - chrome/browser/BUILD.gn | 20 +-- - .../chrome_browsing_data_remover_delegate.cc | 2 - - chrome/browser/chrome_browser_main_win.cc | 6 - - .../bubble/download_bubble_ui_controller.cc | 3 +- - .../chrome_download_manager_delegate.cc | 16 +- - .../browser/download/download_item_model.cc | 94 +--------- - .../analysis/content_analysis_delegate.cc | 162 +----------------- - .../analysis/content_analysis_delegate.h | 7 - - .../analysis/request_handler_base.cc | 20 --- - .../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 | 44 ++--- - .../webstore_private/webstore_private_api.cc | 15 +- - .../extensions/blocklist_state_fetcher.cc | 13 +- - .../chrome_extensions_browser_client.cc | 41 +---- - .../browser/extensions/extension_allowlist.cc | 9 - - .../webrtc/display_media_access_handler.cc | 1 - - .../safe_browsing/safe_browsing_handler.cc | 5 +- - .../safe_browsing/safe_browsing_handler.h | 3 - - .../notification_display_service_impl.cc | 7 - - .../chrome_password_manager_client.cc | 19 +- - ...nfiguration_policy_handler_list_factory.cc | 7 - - chrome/browser/prefs/browser_prefs.cc | 2 + - chrome/browser/printing/print_view_manager.cc | 15 -- - ...hrome_browser_main_extra_parts_profiles.cc | 3 - - chrome/browser/profiles/profiles_state.cc | 2 - - chrome/browser/resources/BUILD.gn | 1 - - chrome/browser/safe_browsing/BUILD.gn | 8 +- - .../safe_browsing/chrome_cleaner/BUILD.gn | 1 - - .../chrome_cleaner/settings_resetter_win.cc | 1 - - .../download_protection/file_analyzer.h | 20 --- - .../chrome_security_blocking_page_factory.cc | 21 --- - chrome/browser/ui/BUILD.gn | 6 - - ...b_modal_dialog_manager_delegate_desktop.cc | 1 - - .../ui/page_info/chrome_page_info_delegate.cc | 1 - - .../chrome_web_contents_view_handle_drop.cc | 159 ----------------- - .../ui/views/download/download_item_view.cc | 24 +-- - .../webui/downloads/downloads_dom_handler.cc | 21 +-- - .../ui/webui/downloads/downloads_ui.cc | 5 +- - chrome/browser/ui/webui/intro/intro_ui.cc | 29 +--- - chrome/browser/webshare/share_service_impl.cc | 4 + - chrome/chrome_paks.gni | 2 - - .../public/cpp/sandboxed_rar_analyzer.cc | 19 +- - .../public/cpp/sandboxed_rar_analyzer.h | 2 - - .../public/cpp/sandboxed_zip_analyzer.h | 2 - - chrome/test/BUILD.gn | 4 - - .../browser/mojo_safe_browsing_impl.cc | 1 + - .../core/common/safe_browsing_prefs.cc | 2 +- - printing/buildflags/buildflags.gni | 2 +- - .../tracked_persistent_pref_store_factory.cc | 10 +- - 52 files changed, 72 insertions(+), 836 deletions(-) - -diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn ---- a/chrome/browser/BUILD.gn -+++ b/chrome/browser/BUILD.gn -@@ -1887,10 +1887,6 @@ static_library("browser") { - "//chrome/browser/ui", - "//chrome/browser/storage_access_api:permissions", - "//chrome/browser/top_level_storage_access_api:permissions", -- "//chrome/browser/safe_browsing", -- "//chrome/browser/safe_browsing:verdict_cache_manager_factory", -- "//chrome/browser/safe_browsing:advanced_protection", -- "//chrome/browser/safe_browsing:metrics_collector", - - # TODO(crbug.com/1030821): Eliminate usages of browser.h from Media Router. - "//chrome/browser/media/router", -@@ -1994,10 +1990,7 @@ static_library("browser") { - "//chrome/browser/push_messaging:budget_proto", - "//chrome/browser/resource_coordinator:mojo_bindings", - "//chrome/browser/resource_coordinator:tab_manager_features", -- "//chrome/browser/safe_browsing", -- "//chrome/browser/safe_browsing:advanced_protection", -- "//chrome/browser/safe_browsing:metrics_collector", -- "//chrome/browser/safe_browsing:verdict_cache_manager_factory", -+ "//components/safe_browsing/content/common:interfaces", - "//chrome/browser/share", - "//chrome/browser/sharing:buildflags", - "//chrome/browser/sharing/proto", -@@ -3622,18 +3615,12 @@ static_library("browser") { - "enterprise/connectors/analysis/analysis_service_settings.h", - "enterprise/connectors/analysis/analysis_settings.cc", - "enterprise/connectors/analysis/analysis_settings.h", -- "enterprise/connectors/analysis/content_analysis_delegate.cc", -- "enterprise/connectors/analysis/content_analysis_delegate.h", - "enterprise/connectors/analysis/content_analysis_delegate_base.cc", - "enterprise/connectors/analysis/content_analysis_delegate_base.h", - "enterprise/connectors/analysis/content_analysis_dialog.cc", - "enterprise/connectors/analysis/content_analysis_dialog.h", - "enterprise/connectors/analysis/content_analysis_downloads_delegate.cc", - "enterprise/connectors/analysis/content_analysis_downloads_delegate.h", -- "enterprise/connectors/analysis/files_request_handler.cc", -- "enterprise/connectors/analysis/files_request_handler.h", -- "enterprise/connectors/analysis/page_print_analysis_request.cc", -- "enterprise/connectors/analysis/page_print_analysis_request.h", - "enterprise/connectors/analysis/request_handler_base.cc", - "enterprise/connectors/analysis/request_handler_base.h", - "enterprise/connectors/common.cc", -@@ -6071,10 +6058,6 @@ static_library("browser") { - "enterprise/chrome_browser_main_extra_parts_enterprise.h", - "enterprise/connectors/analysis/content_analysis_sdk_manager.cc", - "enterprise/connectors/analysis/content_analysis_sdk_manager.h", -- "enterprise/connectors/analysis/local_binary_upload_service.cc", -- "enterprise/connectors/analysis/local_binary_upload_service.h", -- "enterprise/connectors/analysis/local_binary_upload_service_factory.cc", -- "enterprise/connectors/analysis/local_binary_upload_service_factory.h", - "enterprise/connectors/device_trust/attestation/desktop/crypto_utility.cc", - "enterprise/connectors/device_trust/attestation/desktop/crypto_utility.h", - "enterprise/connectors/device_trust/attestation/desktop/desktop_attestation_service.cc", -@@ -7909,7 +7892,6 @@ static_library("test_support") { - ":browser", - "//chrome/browser/autofill:test_support", - "//chrome/browser/profiles:profile", -- "//chrome/browser/safe_browsing:test_support", - "//chrome/browser/ui:test_support", - ] - deps = [ -diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc ---- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc -+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc -@@ -644,8 +644,6 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( - base::BindOnce( - &ChromeBrowsingDataRemoverDelegate::CreateTaskCompletionClosure, - base::Unretained(this), TracingDataType::kCookies)); -- safe_browsing::VerdictCacheManagerFactory::GetForProfile(profile_) -- ->OnCookiesDeleted(); - } - - if (filter_builder->GetMode() == -diff --git a/chrome/browser/chrome_browser_main_win.cc b/chrome/browser/chrome_browser_main_win.cc ---- a/chrome/browser/chrome_browser_main_win.cc -+++ b/chrome/browser/chrome_browser_main_win.cc -@@ -333,12 +333,6 @@ void ShowCloseBrowserFirstMessageBox() { - } - - void MaybePostSettingsResetPrompt() { -- if (base::FeatureList::IsEnabled(safe_browsing::kSettingsResetPrompt)) { -- content::GetUIThreadTaskRunner({base::TaskPriority::BEST_EFFORT}) -- ->PostTask(FROM_HERE, -- base::BindOnce( -- safe_browsing::MaybeShowSettingsResetPromptWithDelay)); -- } - } - - // Updates all Progressive Web App launchers in |profile_dir| to the latest -diff --git a/chrome/browser/download/bubble/download_bubble_ui_controller.cc b/chrome/browser/download/bubble/download_bubble_ui_controller.cc ---- a/chrome/browser/download/bubble/download_bubble_ui_controller.cc -+++ b/chrome/browser/download/bubble/download_bubble_ui_controller.cc -@@ -28,7 +28,6 @@ - #include "chrome/browser/feature_engagement/tracker_factory.h" - #include "chrome/browser/offline_items_collection/offline_content_aggregator_factory.h" - #include "chrome/browser/profiles/profile_key.h" --#include "chrome/browser/safe_browsing/download_protection/download_protection_service.h" - #include "chrome/browser/safe_browsing/safe_browsing_service.h" - #include "chrome/browser/ui/browser.h" - #include "chrome/browser/ui/browser_finder.h" -@@ -202,9 +201,11 @@ void DownloadBubbleUIController::ProcessDownloadButtonPress( - commands.ExecuteCommand(command); - break; - case DownloadCommands::REVIEW: -+#if BUILDFLAG(FULL_SAFE_BROWSING) - model->ReviewScanningVerdict( - browser_->tab_strip_model()->GetActiveWebContents()); - break; -+#endif - case DownloadCommands::RETRY: - RetryDownload(model, command); - break; -diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc ---- a/chrome/browser/download/chrome_download_manager_delegate.cc -+++ b/chrome/browser/download/chrome_download_manager_delegate.cc -@@ -877,21 +877,11 @@ void ChromeDownloadManagerDelegate::OpenDownload(DownloadItem* download) { - content::DownloadItemUtils::GetWebContents(download); - Browser* browser = - web_contents ? chrome::FindBrowserWithWebContents(web_contents) : nullptr; -- std::unique_ptr browser_displayer; -- if (!browser || -- !browser->CanSupportWindowFeature(Browser::FEATURE_TABSTRIP)) { -- browser_displayer = -- std::make_unique(profile_); -- browser = browser_displayer->browser(); -- } - content::OpenURLParams params( - net::FilePathToFileURL(download->GetTargetFilePath()), - content::Referrer(), WindowOpenDisposition::NEW_FOREGROUND_TAB, - ui::PAGE_TRANSITION_LINK, false); - -- if (download->GetMimeType() == "application/x-x509-user-cert") -- chrome::ShowSettingsSubPage(browser, "certificates"); -- else - browser->OpenURL(params); - #endif // BUILDFLAG(IS_ANDROID) - } -@@ -939,7 +929,7 @@ void ChromeDownloadManagerDelegate::ShowDownloadInShell( - - std::string - ChromeDownloadManagerDelegate::ApplicationClientIdForFileScanning() { -- return std::string(chrome::kApplicationClientIDStringForAVScanning); -+ return std::string(); - } - - #if BUILDFLAG(FULL_SAFE_BROWSING) -@@ -1708,8 +1698,8 @@ void ChromeDownloadManagerDelegate::CheckSavePackageAllowed( - DCHECK(download_item); - DCHECK(download_item->IsSavePackageDownload()); - --#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ -- BUILDFLAG(IS_MAC) -+#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ -+ BUILDFLAG(IS_MAC)) && BUILDFLAG(FULL_SAFE_BROWSING) - absl::optional settings = - safe_browsing::DeepScanningRequest::ShouldUploadBinary(download_item); - -diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/download/download_item_model.cc ---- a/chrome/browser/download/download_item_model.cc -+++ b/chrome/browser/download/download_item_model.cc -@@ -901,6 +901,7 @@ void DownloadItemModel::ExecuteCommand(DownloadCommands* download_commands, - DownloadUIModel::ExecuteCommand(download_commands, command); - break; - case DownloadCommands::DEEP_SCAN: -+#if BUILDFLAG(FULL_SAFE_BROWSING) - safe_browsing::SafeBrowsingService* sb_service = - g_browser_process->safe_browsing_service(); - if (!sb_service) -@@ -933,108 +934,17 @@ void DownloadItemModel::ExecuteCommand(DownloadCommands* download_commands, - safe_browsing::DeepScanningRequest::DeepScanTrigger:: - TRIGGER_APP_PROMPT, - safe_browsing::DownloadCheckResult::UNKNOWN, std::move(settings)); -+#endif - break; - } - } - - DownloadItemModel::BubbleUIInfo - DownloadItemModel::GetBubbleUIInfoForTailoredWarning() const { -- download::DownloadDangerType danger_type = GetDangerType(); -- TailoredVerdict tailored_verdict = safe_browsing::DownloadProtectionService:: -- GetDownloadProtectionTailoredVerdict(download_); -- -- // Suspicious archives -- if (danger_type == download::DOWNLOAD_DANGER_TYPE_UNCOMMON_CONTENT && -- tailored_verdict.tailored_verdict_type() == -- TailoredVerdict::SUSPICIOUS_ARCHIVE) { -- return DownloadUIModel::BubbleUIInfo( -- l10n_util::GetStringUTF16( -- IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_SUSPICIOUS_ARCHIVE)) -- .AddIconAndColor(vector_icons::kNotSecureWarningIcon, -- ui::kColorAlertMediumSeverityIcon) -- .AddSecondaryTextColor(ui::kColorAlertMediumSeverityText) -- .AddPrimaryButton(DownloadCommands::Command::DISCARD) -- .AddSubpageButton(l10n_util::GetStringUTF16(IDS_DOWNLOAD_BUBBLE_DELETE), -- DownloadCommands::Command::DISCARD, -- /*is_prominent=*/true) -- .AddSubpageButton( -- l10n_util::GetStringUTF16(IDS_DOWNLOAD_BUBBLE_CONTINUE), -- DownloadCommands::Command::KEEP, -- /*is_prominent=*/false); -- } -- -- // Cookie theft -- if (danger_type == -- download::DOWNLOAD_DANGER_TYPE_DANGEROUS_ACCOUNT_COMPROMISE && -- tailored_verdict.tailored_verdict_type() == -- TailoredVerdict::COOKIE_THEFT) { -- if (base::Contains(tailored_verdict.adjustments(), -- TailoredVerdict::ACCOUNT_INFO_STRING)) { -- auto* identity_manager = IdentityManagerFactory::GetForProfile(profile()); -- std::string email = -- identity_manager -- ? identity_manager -- ->GetPrimaryAccountInfo(signin::ConsentLevel::kSignin) -- .email -- : ""; -- base::UmaHistogramBoolean( -- "SBClientDownload.TailoredWarning.HasVaidEmailForAccountInfo", -- !email.empty()); -- if (!email.empty()) { -- return DownloadUIModel::BubbleUIInfo( -- l10n_util::GetStringFUTF16( -- IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_COOKIE_THEFT_AND_ACCOUNT, -- base::ASCIIToUTF16(email))) -- .AddIconAndColor(vector_icons::kDangerousIcon, -- ui::kColorAlertHighSeverity) -- .AddPrimaryButton(DownloadCommands::Command::DISCARD) -- .AddSubpageButton( -- l10n_util::GetStringUTF16(IDS_DOWNLOAD_BUBBLE_DELETE), -- DownloadCommands::Command::DISCARD, -- /*is_prominent=*/true); -- } -- } -- return DownloadUIModel::BubbleUIInfo( -- l10n_util::GetStringUTF16( -- IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_COOKIE_THEFT)) -- .AddIconAndColor(vector_icons::kDangerousIcon, -- ui::kColorAlertHighSeverity) -- .AddPrimaryButton(DownloadCommands::Command::DISCARD) -- .AddSubpageButton(l10n_util::GetStringUTF16(IDS_DOWNLOAD_BUBBLE_DELETE), -- DownloadCommands::Command::DISCARD, -- /*is_prominent=*/true); -- } -- -- NOTREACHED(); - return DownloadUIModel::BubbleUIInfo(); - } - - bool DownloadItemModel::ShouldShowTailoredWarning() const { -- if (!IsBubbleV2Enabled() || -- !base::FeatureList::IsEnabled(safe_browsing::kDownloadTailoredWarnings)) { -- return false; -- } -- -- static const struct ValidCombination { -- download::DownloadDangerType danger_type; -- TailoredVerdict::TailoredVerdictType tailored_verdict_type; -- } kValidTailoredWarningCombinations[]{ -- {download::DOWNLOAD_DANGER_TYPE_UNCOMMON_CONTENT, -- TailoredVerdict::SUSPICIOUS_ARCHIVE}, -- {download::DOWNLOAD_DANGER_TYPE_DANGEROUS_ACCOUNT_COMPROMISE, -- TailoredVerdict::COOKIE_THEFT}}; -- -- download::DownloadDangerType danger_type = GetDangerType(); -- TailoredVerdict tailored_verdict = safe_browsing::DownloadProtectionService:: -- GetDownloadProtectionTailoredVerdict(download_); -- for (const auto& combination : kValidTailoredWarningCombinations) { -- if (danger_type == combination.danger_type && -- tailored_verdict.tailored_verdict_type() == -- combination.tailored_verdict_type) { -- return true; -- } -- } -- - return false; - } - -diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.cc b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.cc ---- a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.cc -+++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.cc -@@ -90,15 +90,9 @@ StringAnalysisRequest::StringAnalysisRequest( - data_.contents = std::move(text); - result_ = BinaryUploadService::Result::SUCCESS; - } -- safe_browsing::IncrementCrashKey( -- safe_browsing::ScanningCrashKey::PENDING_TEXT_UPLOADS); -- safe_browsing::IncrementCrashKey( -- safe_browsing::ScanningCrashKey::TOTAL_TEXT_UPLOADS); - } - - StringAnalysisRequest::~StringAnalysisRequest() { -- safe_browsing::DecrementCrashKey( -- safe_browsing::ScanningCrashKey::PENDING_TEXT_UPLOADS); - } - - void StringAnalysisRequest::GetRequestData(DataCallback callback) { -@@ -125,15 +119,6 @@ void ContentAnalysisDelegate::BypassWarnings( - // Mark the full text as complying and report a warning bypass. - if (text_warning_) { - std::fill(result_.text_results.begin(), result_.text_results.end(), true); -- -- int64_t content_size = 0; -- for (const std::string& entry : data_.text) -- content_size += entry.size(); -- -- ReportAnalysisConnectorWarningBypass( -- profile_, url_, "", "", "Text data", std::string(), "text/plain", -- extensions::SafeBrowsingPrivateEventRouter::kTriggerWebContentUpload, -- access_point_, content_size, text_response_, user_justification); - } - - // Mark the full image as complying and report a warning bypass. -@@ -158,12 +143,6 @@ void ContentAnalysisDelegate::BypassWarnings( - // Mark the printed page as complying and report a warning bypass. - if (page_warning_) { - result_.page_result = true; -- -- ReportAnalysisConnectorWarningBypass( -- profile_, url_, "", "", title_, /*sha256*/ std::string(), -- /*mime_type*/ std::string(), -- extensions::SafeBrowsingPrivateEventRouter::kTriggerPagePrint, -- access_point_, /*content_size*/ -1, page_response_, user_justification); - } - - RunCallback(); -@@ -173,15 +152,6 @@ void ContentAnalysisDelegate::Cancel(bool warning) { - if (callback_.is_null()) - return; - -- // Don't report this upload as cancelled if the user didn't bypass the -- // warning. -- if (!warning) { -- RecordDeepScanMetrics( -- data_.settings.cloud_or_local_settings.is_cloud_analysis(), -- access_point_, base::TimeTicks::Now() - upload_start_time_, 0, -- "CancelledByUser", false); -- } -- - // Ask the binary upload service to cancel requests if it can. - auto cancel = std::make_unique( - data_.settings.cloud_or_local_settings); -@@ -345,8 +315,7 @@ ContentAnalysisDelegate::ContentAnalysisDelegate( - CompletionCallback callback, - safe_browsing::DeepScanAccessPoint access_point) - : data_(std::move(data)), -- callback_(std::move(callback)), -- access_point_(access_point) { -+ callback_(std::move(callback)) { - DCHECK(web_contents); - profile_ = Profile::FromBrowserContext(web_contents->GetBrowserContext()); - url_ = web_contents->GetLastCommittedURL(); -@@ -367,14 +336,6 @@ void ContentAnalysisDelegate::StringRequestCallback( - if (result == safe_browsing::BinaryUploadService::Result::SUCCESS) - final_actions_[response.request_token()] = GetAckFinalAction(response); - -- int64_t content_size = 0; -- for (const std::string& entry : data_.text) -- content_size += entry.size(); -- RecordDeepScanMetrics( -- data_.settings.cloud_or_local_settings.is_cloud_analysis(), access_point_, -- base::TimeTicks::Now() - upload_start_time_, content_size, result, -- response); -- - text_request_complete_ = true; - - string_request_result_ = -@@ -387,12 +348,6 @@ void ContentAnalysisDelegate::StringRequestCallback( - std::fill(result_.text_results.begin(), result_.text_results.end(), - text_complies); - -- MaybeReportDeepScanningVerdict( -- profile_, url_, "", "", "Text data", std::string(), "text/plain", -- extensions::SafeBrowsingPrivateEventRouter::kTriggerWebContentUpload, -- access_point_, content_size, result, response, -- CalculateEventResult(data_.settings, text_complies, should_warn)); -- - UpdateFinalResult(string_request_result_.final_result, - string_request_result_.tag); - -@@ -494,11 +449,6 @@ void ContentAnalysisDelegate::PageRequestCallback( - if (result == safe_browsing::BinaryUploadService::Result::SUCCESS) - final_actions_[response.request_token()] = GetAckFinalAction(response); - -- RecordDeepScanMetrics( -- data_.settings.cloud_or_local_settings.is_cloud_analysis(), access_point_, -- base::TimeTicks::Now() - upload_start_time_, page_size_bytes_, result, -- response); -- - page_request_complete_ = true; - - RequestHandlerResult request_handler_result = -@@ -508,13 +458,6 @@ void ContentAnalysisDelegate::PageRequestCallback( - bool should_warn = request_handler_result.final_result == - FinalContentAnalysisResult::WARNING; - -- MaybeReportDeepScanningVerdict( -- profile_, url_, "", "", title_, /*sha256*/ std::string(), -- /*mime_type*/ std::string(), -- extensions::SafeBrowsingPrivateEventRouter::kTriggerPagePrint, -- access_point_, /*content_size*/ -1, result, response, -- CalculateEventResult(data_.settings, result_.page_result, should_warn)); -- - UpdateFinalResult(request_handler_result.final_result, - request_handler_result.tag); - -@@ -535,19 +478,7 @@ bool ContentAnalysisDelegate::UploadData() { - PrepareImageRequest(); - PreparePageRequest(); - -- if (!data_.paths.empty()) { -- // Passing the settings using a reference is safe here, because -- // MultiFileRequestHandler is owned by this class. -- files_request_handler_ = FilesRequestHandler::Create( -- GetBinaryUploadService(), profile_, data_.settings, url_, "", "", -- user_action_id_, access_point_, data_.paths, -- base::BindOnce(&ContentAnalysisDelegate::FilesRequestCallback, -- GetWeakPtr())); -- files_request_complete_ = !files_request_handler_->UploadData(); -- } else { -- // If no files should be uploaded, the file request is complete. -- files_request_complete_ = true; -- } -+ files_request_complete_ = true; - data_uploaded_ = true; - // Do not add code under this comment. The above line should be the last thing - // this function does before the return statement. -@@ -557,34 +488,6 @@ bool ContentAnalysisDelegate::UploadData() { - } - - void ContentAnalysisDelegate::PrepareTextRequest() { -- std::string full_text; -- for (const std::string& text : data_.text) -- full_text.append(text); -- -- // The request is considered complete if there is no text or if the text is -- // too small compared to the minimum size. This means a minimum_data_size of -- // 0 is equivalent to no minimum, as the second part of the "or" will always -- // be false. -- text_request_complete_ = -- full_text.empty() || full_text.size() < data_.settings.minimum_data_size; -- -- if (!full_text.empty()) { -- base::UmaHistogramCustomCounts("Enterprise.OnBulkDataEntry.DataSize", -- full_text.size(), -- /*min=*/1, -- /*max=*/51 * 1024 * 1024, -- /*buckets=*/50); -- } -- -- if (!text_request_complete_) { -- auto request = std::make_unique( -- data_.settings.cloud_or_local_settings, std::move(full_text), -- base::BindOnce(&ContentAnalysisDelegate::StringRequestCallback, -- weak_ptr_factory_.GetWeakPtr())); -- -- PrepareRequest(enterprise_connectors::BULK_DATA_ENTRY, request.get()); -- UploadTextForDeepScanning(std::move(request)); -- } - } - - void ContentAnalysisDelegate::PrepareImageRequest() { -@@ -615,21 +518,6 @@ void ContentAnalysisDelegate::PrepareImageRequest() { - } - - void ContentAnalysisDelegate::PreparePageRequest() { -- // The request is considered complete if the mapped region is invalid since it -- // prevents scanning. -- page_request_complete_ = !data_.page.IsValid(); -- -- if (!page_request_complete_) { -- page_size_bytes_ = data_.page.GetSize(); -- auto request = std::make_unique( -- data_.settings, std::move(data_.page), -- base::BindOnce(&ContentAnalysisDelegate::PageRequestCallback, -- weak_ptr_factory_.GetWeakPtr())); -- -- PrepareRequest(enterprise_connectors::PRINT, request.get()); -- request->set_filename(title_); -- UploadPageForDeepScanning(std::move(request)); -- } - } - - // This method only prepares requests for print and paste events. File events -@@ -638,29 +526,6 @@ void ContentAnalysisDelegate::PreparePageRequest() { - void ContentAnalysisDelegate::PrepareRequest( - enterprise_connectors::AnalysisConnector connector, - BinaryUploadService::Request* request) { -- if (data_.settings.cloud_or_local_settings.is_cloud_analysis()) { -- request->set_device_token( -- data_.settings.cloud_or_local_settings.dm_token()); -- } -- -- // Include tab page title, user action id, and count of requests per user -- // action in local content analysis requests. -- if (data_.settings.cloud_or_local_settings.is_local_analysis()) { -- // Increment the total number of user action requests by 1. -- total_requests_count_++; -- request->set_tab_title(title_); -- request->set_user_action_id(user_action_id_); -- } -- -- request->set_analysis_connector(connector); -- request->set_email(safe_browsing::GetProfileEmail(profile_)); -- request->set_url(data_.url.spec()); -- request->set_tab_url(data_.url); -- request->set_per_profile_request(data_.settings.per_profile); -- for (const auto& tag : data_.settings.tags) -- request->add_tag(tag.first); -- if (data_.settings.client_metadata) -- request->set_client_metadata(*data_.settings.client_metadata); - } - - void ContentAnalysisDelegate::FillAllResultsWith(bool status) { -@@ -671,8 +536,7 @@ void ContentAnalysisDelegate::FillAllResultsWith(bool status) { - } - - BinaryUploadService* ContentAnalysisDelegate::GetBinaryUploadService() { -- return safe_browsing::BinaryUploadService::GetForProfile(profile_, -- data_.settings); -+ return nullptr; - } - - void ContentAnalysisDelegate::UploadTextForDeepScanning( -@@ -773,26 +637,6 @@ void ContentAnalysisDelegate::UpdateFinalResult( - } - - void ContentAnalysisDelegate::AckAllRequests() { -- if (!OnAckAllRequestsStorage()->is_null()) -- std::move(*OnAckAllRequestsStorage()).Run(final_actions_); -- -- BinaryUploadService* upload_service = GetBinaryUploadService(); -- if (!upload_service) -- return; -- -- for (const auto& token_and_action : final_actions_) { -- // Only have files that have a request token. Not having one implies that -- // the agent never received the request for some reason (size, encryption, -- // etc.) so it doesn't make sense to send an ack. -- if (!token_and_action.first.empty()) { -- auto ack = std::make_unique( -- data_.settings.cloud_or_local_settings); -- ack->set_request_token(token_and_action.first); -- ack->set_status(ContentAnalysisAcknowledgement::SUCCESS); -- ack->set_final_action(token_and_action.second); -- upload_service->MaybeAcknowledge(std::move(ack)); -- } -- } - } - - } // namespace enterprise_connectors -diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h ---- a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h -+++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h -@@ -370,10 +370,6 @@ class ContentAnalysisDelegate : public ContentAnalysisDelegateBase { - bool page_warning_ = false; - enterprise_connectors::ContentAnalysisResponse page_response_; - -- // Stores the scanned page's size since it moves from `data_` to be uploaded. -- // TODO(crbug.com/1324892): Move to PageRequestHandler. -- int64_t page_size_bytes_ = 0; -- - // Stores the total number of requests associated with one user action. - int64_t total_requests_count_ = 0; - -@@ -400,9 +396,6 @@ class ContentAnalysisDelegate : public ContentAnalysisDelegateBase { - // Pointer to UI when enabled. - raw_ptr dialog_ = nullptr; - -- // Access point to use to record UMA metrics. -- safe_browsing::DeepScanAccessPoint access_point_; -- - // Scanning result to be shown to the user once every request is done. - FinalContentAnalysisResult final_result_ = - FinalContentAnalysisResult::SUCCESS; -diff --git a/chrome/browser/enterprise/connectors/analysis/request_handler_base.cc b/chrome/browser/enterprise/connectors/analysis/request_handler_base.cc ---- a/chrome/browser/enterprise/connectors/analysis/request_handler_base.cc -+++ b/chrome/browser/enterprise/connectors/analysis/request_handler_base.cc -@@ -48,26 +48,6 @@ void RequestHandlerBase::AppendFinalActionsTo( - void RequestHandlerBase::PrepareRequest( - enterprise_connectors::AnalysisConnector connector, - safe_browsing::BinaryUploadService::Request* request) { -- if (analysis_settings_->cloud_or_local_settings.is_cloud_analysis()) { -- request->set_device_token( -- analysis_settings_->cloud_or_local_settings.dm_token()); -- } -- if (analysis_settings_->cloud_or_local_settings.is_local_analysis()) { -- request->set_user_action_id(user_action_id_); -- request->set_user_action_requests_count(user_action_requests_count_); -- } -- -- request->set_analysis_connector(connector); -- request->set_email(safe_browsing::GetProfileEmail(profile_)); -- request->set_url(url_.spec()); -- request->set_source(source_); -- request->set_destination(destination_); -- request->set_tab_url(url_); -- request->set_per_profile_request(analysis_settings_->per_profile); -- for (const auto& tag : analysis_settings_->tags) -- request->add_tag(tag.first); -- if (analysis_settings_->client_metadata) -- request->set_client_metadata(*analysis_settings_->client_metadata); - } - - safe_browsing::BinaryUploadService* -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 -@@ -344,6 +344,7 @@ void RealtimeReportingClient::ReportEventWithTimestamp( - const enterprise_connectors::ReportingSettings& settings, - base::Value::Dict event, - const base::Time& time) { -+ if ((true)) return; - if (rejected_dm_token_timers_.contains(settings.dm_token)) { - return; - } -@@ -414,7 +415,7 @@ void RealtimeReportingClient::ReportEventWithTimestamp( - } - - std::string RealtimeReportingClient::GetProfileUserName() const { -- return safe_browsing::GetProfileEmail(identity_manager_); -+ return ""; - } - - std::string RealtimeReportingClient::GetProfileIdentifier() const { -diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn ---- a/chrome/browser/extensions/BUILD.gn -+++ b/chrome/browser/extensions/BUILD.gn -@@ -756,9 +756,6 @@ static_library("extensions") { - - # TODO(crbug.com/1065748): Remove this circular dependency. - "//chrome/browser/web_applications/extensions", -- -- # TODO(crbug/925153): Remove this circular dependency. -- "//chrome/browser/safe_browsing", - ] - - # Since browser and browser_extensions actually depend on each other, -@@ -811,8 +808,6 @@ static_library("extensions") { - "//chrome/browser/profiles:profile", - "//chrome/browser/resource_coordinator:intervention_policy_database_proto", - "//chrome/browser/resource_coordinator:mojo_bindings", -- "//chrome/browser/safe_browsing", -- "//chrome/browser/safe_browsing:metrics_collector", - "//chrome/browser/ui/tabs:tab_enums", - "//chrome/browser/web_applications", - "//components/adblock/content:browser", -diff --git a/chrome/browser/extensions/api/cookies/cookies_api.cc b/chrome/browser/extensions/api/cookies/cookies_api.cc ---- a/chrome/browser/extensions/api/cookies/cookies_api.cc -+++ b/chrome/browser/extensions/api/cookies/cookies_api.cc -@@ -285,21 +285,6 @@ void CookiesGetFunction::GetCookieListCallback( - } - - void CookiesGetFunction::NotifyExtensionTelemetry() { -- auto* telemetry_service = -- safe_browsing::ExtensionTelemetryServiceFactory::GetForProfile( -- Profile::FromBrowserContext(browser_context())); -- -- if (!telemetry_service || !telemetry_service->enabled() || -- !base::FeatureList::IsEnabled( -- safe_browsing::kExtensionTelemetryCookiesGetSignal)) { -- return; -- } -- -- auto cookies_get_signal = std::make_unique( -- extension_id(), parsed_args_->details.name, -- parsed_args_->details.store_id.value_or(std::string()), -- parsed_args_->details.url); -- telemetry_service->AddSignal(std::move(cookies_get_signal)); - } - - CookiesGetAllFunction::CookiesGetAllFunction() { -@@ -377,26 +362,6 @@ void CookiesGetAllFunction::GetCookieListCallback( - } - - void CookiesGetAllFunction::NotifyExtensionTelemetry() { -- auto* telemetry_service = -- safe_browsing::ExtensionTelemetryServiceFactory::GetForProfile( -- Profile::FromBrowserContext(browser_context())); -- -- if (!telemetry_service || !telemetry_service->enabled() || -- !base::FeatureList::IsEnabled( -- safe_browsing::kExtensionTelemetryCookiesGetAllSignal)) { -- return; -- } -- -- auto cookies_get_all_signal = -- std::make_unique( -- extension_id(), parsed_args_->details.domain.value_or(std::string()), -- parsed_args_->details.name.value_or(std::string()), -- parsed_args_->details.path.value_or(std::string()), -- parsed_args_->details.secure, -- parsed_args_->details.store_id.value_or(std::string()), -- parsed_args_->details.url.value_or(std::string()), -- parsed_args_->details.session); -- telemetry_service->AddSignal(std::move(cookies_get_all_signal)); - } - - CookiesSetFunction::CookiesSetFunction() -diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_api.cc b/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_api.cc ---- a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_api.cc -+++ b/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_api.cc -@@ -54,8 +54,7 @@ SafeBrowsingPrivateGetReferrerChainFunction::Run() { - } - - Profile* profile = Profile::FromBrowserContext(browser_context()); -- if (!SafeBrowsingNavigationObserverManager::IsEnabledAndReady( -- profile->GetPrefs(), g_browser_process->safe_browsing_service())) -+ if ((true)) - return RespondNow(NoArguments()); - - SafeBrowsingNavigationObserverManager* navigation_observer_manager = -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 -@@ -359,10 +359,7 @@ void SafeBrowsingPrivateEventRouter::OnPolicySpecifiedPasswordReuseDetected( - event.Set(kKeyUserName, params.user_name); - event.Set(kKeyIsPhishingUrl, params.is_phishing_url); - event.Set(kKeyProfileUserName, GetProfileUserName()); -- event.Set(kKeyEventResult, -- safe_browsing::EventResultToString( -- warning_shown ? safe_browsing::EventResult::WARNED -- : safe_browsing::EventResult::ALLOWED)); -+ event.Set(kKeyEventResult, "EVENT_RESULT_ALLOWED"); - - reporting_client_->ReportRealtimeEvent( - kKeyPasswordReuseEvent, std::move(settings.value()), std::move(event)); -@@ -442,8 +439,7 @@ void SafeBrowsingPrivateEventRouter::OnDangerousDownloadOpened( - event.Set(kKeyContentSize, base::Int64ToValue(content_size)); - } - event.Set(kKeyTrigger, kTriggerFileDownload); -- event.Set(kKeyEventResult, safe_browsing::EventResultToString( -- safe_browsing::EventResult::BYPASSED)); -+ event.Set(kKeyEventResult, "EVENT_RESULT_BYPASSED"); - event.Set(kKeyClickedThrough, true); - event.Set(kKeyThreatType, DangerTypeToThreatType(danger_type)); - // The scan ID can be empty when the reported dangerous download is from a -@@ -487,22 +483,6 @@ void SafeBrowsingPrivateEventRouter::OnSecurityInterstitialShown( - settings->enabled_event_names.count(kKeyInterstitialEvent) == 0) { - return; - } -- -- PrefService* prefs = Profile::FromBrowserContext(context_)->GetPrefs(); -- safe_browsing::EventResult event_result = -- prefs->GetBoolean(prefs::kSafeBrowsingProceedAnywayDisabled) -- ? safe_browsing::EventResult::BLOCKED -- : safe_browsing::EventResult::WARNED; -- base::Value::Dict event; -- event.Set(kKeyUrl, params.url); -- event.Set(kKeyReason, params.reason); -- event.Set(kKeyNetErrorCode, net_error_code); -- event.Set(kKeyProfileUserName, params.user_name); -- event.Set(kKeyClickedThrough, false); -- event.Set(kKeyEventResult, safe_browsing::EventResultToString(event_result)); -- -- reporting_client_->ReportRealtimeEvent( -- kKeyInterstitialEvent, std::move(settings.value()), std::move(event)); - } - - void SafeBrowsingPrivateEventRouter::OnSecurityInterstitialProceeded( -@@ -542,8 +522,7 @@ void SafeBrowsingPrivateEventRouter::OnSecurityInterstitialProceeded( - event.Set(kKeyNetErrorCode, net_error_code); - event.Set(kKeyProfileUserName, params.user_name); - event.Set(kKeyClickedThrough, true); -- event.Set(kKeyEventResult, safe_browsing::EventResultToString( -- safe_browsing::EventResult::BYPASSED)); -+ event.Set(kKeyEventResult, ""); - - reporting_client_->ReportRealtimeEvent( - kKeyInterstitialEvent, std::move(settings.value()), std::move(event)); -@@ -613,7 +592,7 @@ void SafeBrowsingPrivateEventRouter::OnDangerousDeepScanningResult( - event.Set(kKeyContentSize, base::Int64ToValue(content_size)); - } - event.Set(kKeyTrigger, trigger); -- event.Set(kKeyEventResult, safe_browsing::EventResultToString(event_result)); -+ event.Set(kKeyEventResult, ""); - event.Set(kKeyClickedThrough, - event_result == safe_browsing::EventResult::BYPASSED); - if (!malware_family.empty()) { -@@ -669,7 +648,7 @@ void SafeBrowsingPrivateEventRouter::OnSensitiveDataEvent( - event.Set(kKeyContentSize, base::Int64ToValue(content_size)); - } - event.Set(kKeyTrigger, trigger); -- event.Set(kKeyEventResult, safe_browsing::EventResultToString(event_result)); -+ event.Set(kKeyEventResult, ""); - event.Set(kKeyClickedThrough, - event_result == safe_browsing::EventResult::BYPASSED); - if (!result.evidence_locker_filepath().empty()) { -@@ -717,8 +696,7 @@ void SafeBrowsingPrivateEventRouter::OnAnalysisConnectorWarningBypassed( - event.Set(kKeyContentSize, base::Int64ToValue(content_size)); - } - event.Set(kKeyTrigger, trigger); -- event.Set(kKeyEventResult, safe_browsing::EventResultToString( -- safe_browsing::EventResult::BYPASSED)); -+ event.Set(kKeyEventResult, ""); - event.Set(kKeyClickedThrough, true); - if (!result.evidence_locker_filepath().empty()) { - event.Set(kKeyEvidenceLockerFilePath, result.evidence_locker_filepath()); -@@ -768,7 +746,7 @@ void SafeBrowsingPrivateEventRouter::OnUnscannedFileEvent( - event.Set(kKeyContentSize, base::Int64ToValue(content_size)); - } - event.Set(kKeyTrigger, trigger); -- event.Set(kKeyEventResult, safe_browsing::EventResultToString(event_result)); -+ event.Set(kKeyEventResult, ""); - event.Set(kKeyClickedThrough, - event_result == safe_browsing::EventResult::BYPASSED); - -@@ -820,7 +798,7 @@ void SafeBrowsingPrivateEventRouter::OnDangerousDownloadEvent( - event.Set(kKeyContentSize, base::Int64ToValue(content_size)); - } - event.Set(kKeyTrigger, kTriggerFileDownload); -- event.Set(kKeyEventResult, safe_browsing::EventResultToString(event_result)); -+ event.Set(kKeyEventResult, ""); - - // The scan ID can be empty when the reported dangerous download is from a - // Safe Browsing verdict. -@@ -875,8 +853,7 @@ void SafeBrowsingPrivateEventRouter::OnDangerousDownloadWarningBypassed( - event.Set(kKeyContentSize, base::Int64ToValue(content_size)); - } - event.Set(kKeyTrigger, kTriggerFileDownload); -- event.Set(kKeyEventResult, safe_browsing::EventResultToString( -- safe_browsing::EventResult::BYPASSED)); -+ event.Set(kKeyEventResult, ""); - // The scan ID can be empty when the reported dangerous download is from a - // Safe Browsing verdict. - if (!scan_id.empty()) { -@@ -979,7 +956,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()), -@@ -992,7 +968,7 @@ void SafeBrowsingPrivateEventRouter::SetIdentityManagerForTesting( - } - - std::string SafeBrowsingPrivateEventRouter::GetProfileUserName() const { -- return safe_browsing::GetProfileEmail(identity_manager_); -+ return ""; - } - - } // namespace extensions -diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc ---- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc -+++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc -@@ -719,18 +719,6 @@ void WebstorePrivateBeginInstallWithManifest3Function::OnFrictionPromptDone( - - void WebstorePrivateBeginInstallWithManifest3Function:: - ReportFrictionAcceptedEvent() { -- if (!profile_) { -- return; -- } -- auto* metrics_collector = -- safe_browsing::SafeBrowsingMetricsCollectorFactory::GetForProfile( -- profile_); -- // `metrics_collector` can be null in incognito. -- if (metrics_collector) { -- metrics_collector->AddSafeBrowsingEventToPref( -- safe_browsing::SafeBrowsingMetricsCollector::EventType:: -- EXTENSION_ALLOWLIST_INSTALL_BYPASS); -- } - } - - void WebstorePrivateBeginInstallWithManifest3Function::OnInstallPromptDone( -@@ -1227,8 +1215,7 @@ WebstorePrivateGetReferrerChainFunction:: - ExtensionFunction::ResponseAction - WebstorePrivateGetReferrerChainFunction::Run() { - Profile* profile = Profile::FromBrowserContext(browser_context()); -- if (!SafeBrowsingNavigationObserverManager::IsEnabledAndReady( -- profile->GetPrefs(), g_browser_process->safe_browsing_service())) -+ if ((true)) - return RespondNow(ArgumentList( - api::webstore_private::GetReferrerChain::Results::Create(""))); - -diff --git a/chrome/browser/extensions/blocklist_state_fetcher.cc b/chrome/browser/extensions/blocklist_state_fetcher.cc ---- a/chrome/browser/extensions/blocklist_state_fetcher.cc -+++ b/chrome/browser/extensions/blocklist_state_fetcher.cc -@@ -38,16 +38,9 @@ BlocklistStateFetcher::~BlocklistStateFetcher() { - void BlocklistStateFetcher::Request(const std::string& id, - RequestCallback callback) { - DCHECK_CURRENTLY_ON(BrowserThread::UI); -- if (!safe_browsing_config_) { -- if (g_browser_process && g_browser_process->safe_browsing_service()) { -- SetSafeBrowsingConfig( -- g_browser_process->safe_browsing_service()->GetV4ProtocolConfig()); -- } else { -- base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask( -- FROM_HERE, base::BindOnce(std::move(callback), BLOCKLISTED_UNKNOWN)); -- return; -- } -- } -+ base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask( -+ FROM_HERE, base::BindOnce(std::move(callback), BLOCKLISTED_UNKNOWN)); -+ if ((true)) return; - - bool request_already_sent = base::Contains(callbacks_, id); - callbacks_.insert(std::make_pair(id, std::move(callback))); -diff --git a/chrome/browser/extensions/chrome_extensions_browser_client.cc b/chrome/browser/extensions/chrome_extensions_browser_client.cc ---- a/chrome/browser/extensions/chrome_extensions_browser_client.cc -+++ b/chrome/browser/extensions/chrome_extensions_browser_client.cc -@@ -705,56 +705,17 @@ void ChromeExtensionsBrowserClient::NotifyExtensionApiTabExecuteScript( - content::BrowserContext* context, - const ExtensionId& extension_id, - const std::string& code) const { -- auto* telemetry_service = -- safe_browsing::ExtensionTelemetryServiceFactory::GetForProfile( -- Profile::FromBrowserContext(context)); -- if (!telemetry_service || !telemetry_service->enabled() || -- !base::FeatureList::IsEnabled( -- safe_browsing::kExtensionTelemetryTabsExecuteScriptSignal)) { -- return; -- } -- -- auto signal = std::make_unique( -- extension_id, code); -- telemetry_service->AddSignal(std::move(signal)); - } - - bool ChromeExtensionsBrowserClient::IsExtensionTelemetryServiceEnabled( - content::BrowserContext* context) const { -- auto* telemetry_service = -- safe_browsing::ExtensionTelemetryServiceFactory::GetForProfile( -- Profile::FromBrowserContext(context)); -- return telemetry_service && telemetry_service->enabled(); -+ return false; - } - - void ChromeExtensionsBrowserClient::NotifyExtensionRemoteHostContacted( - content::BrowserContext* context, - const ExtensionId& extension_id, - const GURL& url) const { -- safe_browsing::RemoteHostInfo::ProtocolType protocol = -- safe_browsing::RemoteHostInfo::UNSPECIFIED; -- if (base::FeatureList::IsEnabled( -- safe_browsing::kExtensionTelemetryReportContactedHosts) && -- url.SchemeIsHTTPOrHTTPS()) { -- protocol = safe_browsing::RemoteHostInfo::HTTP_HTTPS; -- } else if (base::FeatureList::IsEnabled( -- safe_browsing:: -- kExtensionTelemetryReportHostsContactedViaWebSocket) && -- url.SchemeIsWSOrWSS()) { -- protocol = safe_browsing::RemoteHostInfo::WEBSOCKET; -- } else { -- return; -- } -- auto* telemetry_service = -- safe_browsing::ExtensionTelemetryServiceFactory::GetForProfile( -- Profile::FromBrowserContext(context)); -- if (!telemetry_service || !telemetry_service->enabled()) { -- return; -- } -- auto remote_host_signal = -- std::make_unique(extension_id, -- url, protocol); -- telemetry_service->AddSignal(std::move(remote_host_signal)); - } - - // static -diff --git a/chrome/browser/extensions/extension_allowlist.cc b/chrome/browser/extensions/extension_allowlist.cc ---- a/chrome/browser/extensions/extension_allowlist.cc -+++ b/chrome/browser/extensions/extension_allowlist.cc -@@ -400,15 +400,6 @@ void ExtensionAllowlist::NotifyExtensionAllowlistWarningStateChanged( - } - - void ExtensionAllowlist::ReportExtensionReEnabledEvent() { -- auto* metrics_collector = -- safe_browsing::SafeBrowsingMetricsCollectorFactory::GetForProfile( -- profile_); -- DCHECK(metrics_collector); -- if (metrics_collector) { -- metrics_collector->AddSafeBrowsingEventToPref( -- safe_browsing::SafeBrowsingMetricsCollector::EventType:: -- NON_ALLOWLISTED_EXTENSION_RE_ENABLED); -- } - } - - } // namespace extensions -diff --git a/chrome/browser/media/webrtc/display_media_access_handler.cc b/chrome/browser/media/webrtc/display_media_access_handler.cc ---- a/chrome/browser/media/webrtc/display_media_access_handler.cc -+++ b/chrome/browser/media/webrtc/display_media_access_handler.cc -@@ -136,7 +136,6 @@ void DisplayMediaAccessHandler::HandleRequest( - blink::mojom::StreamDevicesSet(), - blink::mojom::MediaStreamRequestResult::PERMISSION_DENIED, - /*ui=*/nullptr); -- observer->OnDesktopCaptureRequest(); - return; - } - -diff --git a/chrome/browser/new_tab_page/modules/safe_browsing/safe_browsing_handler.cc b/chrome/browser/new_tab_page/modules/safe_browsing/safe_browsing_handler.cc ---- a/chrome/browser/new_tab_page/modules/safe_browsing/safe_browsing_handler.cc -+++ b/chrome/browser/new_tab_page/modules/safe_browsing/safe_browsing_handler.cc -@@ -54,8 +54,6 @@ SafeBrowsingHandler::SafeBrowsingHandler( - handler, - Profile* profile) - : handler_(this, std::move(handler)), -- metrics_collector_( -- SafeBrowsingMetricsCollectorFactory::GetForProfile(profile)), - pref_service_(profile->GetPrefs()), - saved_last_cooldown_start_time_(0), - saved_module_shown_count_(0) {} -@@ -80,8 +78,7 @@ void SafeBrowsingHandler::CanShowModule(CanShowModuleCallback callback) { - return; - } - -- absl::optional latest_event_time = -- metrics_collector_->GetLatestSecuritySensitiveEventTimestamp(); -+ absl::optional latest_event_time; - // Do not show if there is no security sensitive event after the latest - // cooldown. - if (!latest_event_time.has_value() || latest_event_time < cooldown_end) { -diff --git a/chrome/browser/new_tab_page/modules/safe_browsing/safe_browsing_handler.h b/chrome/browser/new_tab_page/modules/safe_browsing/safe_browsing_handler.h ---- a/chrome/browser/new_tab_page/modules/safe_browsing/safe_browsing_handler.h -+++ b/chrome/browser/new_tab_page/modules/safe_browsing/safe_browsing_handler.h -@@ -48,9 +48,6 @@ class SafeBrowsingHandler - friend class SafeBrowsingHandlerTest; - - mojo::Receiver handler_; -- // Unowned copy of SafeBrowsingMetricsCollector, to log metrics and read/write -- // security sensitive events. -- raw_ptr metrics_collector_; - // Unowned copy of PrefService, to read/write prefs. - raw_ptr pref_service_; - // Save value of last cooldown start time, in case dismissed module is -diff --git a/chrome/browser/notifications/notification_display_service_impl.cc b/chrome/browser/notifications/notification_display_service_impl.cc ---- a/chrome/browser/notifications/notification_display_service_impl.cc -+++ b/chrome/browser/notifications/notification_display_service_impl.cc -@@ -88,13 +88,6 @@ NotificationDisplayServiceImpl::NotificationDisplayServiceImpl(Profile* profile) - profile_)); - #endif - --#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ -- BUILDFLAG(IS_WIN) -- AddNotificationHandler( -- NotificationHandler::Type::TAILORED_SECURITY, -- std::make_unique()); --#endif -- - #if BUILDFLAG(ENABLE_EXTENSIONS) - AddNotificationHandler( - NotificationHandler::Type::EXTENSION, -diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc ---- a/chrome/browser/password_manager/chrome_password_manager_client.cc -+++ b/chrome/browser/password_manager/chrome_password_manager_client.cc -@@ -194,7 +194,7 @@ typedef autofill::SavePasswordProgressLogger Logger; - - namespace { - --#if !BUILDFLAG(IS_ANDROID) -+#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_WIN) - static const char kPasswordBreachEntryTrigger[] = "PASSWORD_ENTRY"; - constexpr char kExtensionScheme[] = "chrome-extension"; - #endif -@@ -220,7 +220,7 @@ void AddToWidgetInputEventObservers( - widget_host->AddInputEventObserver(observer); - } - --#if !BUILDFLAG(IS_ANDROID) -+#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_WIN) - // Retrieves and formats the saved passwords domains from signon_realms. - std::vector GetMatchingDomains( - const std::vector& -@@ -901,7 +901,7 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry( - bool password_field_exists, - uint64_t reused_password_hash, - const std::string& domain) { --#if !BUILDFLAG(IS_ANDROID) -+#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_WIN) - // If the webpage is not an extension page, do nothing. - if (!GURL(domain).SchemeIs(kExtensionScheme)) { - return; -@@ -941,7 +941,18 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry( - void ChromePasswordManagerClient::LogPasswordReuseDetectedEvent() { - } - --#if !BUILDFLAG(IS_ANDROID) -+#if BUILDFLAG(IS_WIN) -+void ChromePasswordManagerClient::MaybeReportEnterpriseLoginEvent( -+ const GURL& url, -+ bool is_federated, -+ const url::Origin& federated_origin, -+ const std::u16string& login_user_name) const {} -+ -+void ChromePasswordManagerClient::MaybeReportEnterprisePasswordBreachEvent( -+ const std::vector>& identities) const {} -+#endif -+ -+#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_WIN) - void ChromePasswordManagerClient::MaybeReportEnterpriseLoginEvent( - const GURL& url, - bool is_federated, -diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc ---- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc -+++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc -@@ -2026,13 +2026,6 @@ std::unique_ptr BuildHandlerList( - prefs::kSafeBrowsingEnterpriseRealTimeUrlCheckMode, - prefs::kSafeBrowsingEnterpriseRealTimeUrlCheckScope, chrome_schema)); - -- handlers->AddHandler(std::make_unique( -- key::kExemptDomainFileTypePairsFromFileTypeDownloadWarnings, -- safe_browsing::file_type::prefs:: -- kExemptDomainFileTypePairsFromFileTypeDownloadWarnings, -- chrome_schema, SCHEMA_ALLOW_UNKNOWN, -- SimpleSchemaValidatingPolicyHandler::RECOMMENDED_PROHIBITED, -- SimpleSchemaValidatingPolicyHandler::MANDATORY_ALLOWED)); - handlers->AddHandler( - std::make_unique(chrome_schema)); - -diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc ---- a/chrome/browser/prefs/browser_prefs.cc -+++ b/chrome/browser/prefs/browser_prefs.cc -@@ -1697,8 +1697,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, - component_updater::RegisterProfilePrefsForSwReporter(registry); - FontPrewarmerTabHelper::RegisterProfilePrefs(registry); - NetworkProfileBubble::RegisterProfilePrefs(registry); -+#if BUILDFLAG(SAFE_BROWSING_AVAILABLE) - safe_browsing::SettingsResetPromptPrefsManager::RegisterProfilePrefs( - registry); -+#endif - safe_browsing::PostCleanupSettingsResetter::RegisterProfilePrefs(registry); - #endif - -diff --git a/chrome/browser/printing/print_view_manager.cc b/chrome/browser/printing/print_view_manager.cc ---- a/chrome/browser/printing/print_view_manager.cc -+++ b/chrome/browser/printing/print_view_manager.cc -@@ -269,21 +269,6 @@ void PrintViewManager::OnDlpPrintingRestrictionsChecked( - void PrintViewManager::RejectPrintPreviewRequestIfRestrictedByContentAnalysis( - content::GlobalRenderFrameHostId rfh_id, - base::OnceCallback callback) { -- enterprise_connectors::ContentAnalysisDelegate::Data scanning_data; -- content::RenderFrameHost* rfh = content::RenderFrameHost::FromID(rfh_id); -- if (rfh && -- base::FeatureList::IsEnabled(features::kEnablePrintContentAnalysis) && -- enterprise_connectors::ContentAnalysisDelegate::IsEnabled( -- Profile::FromBrowserContext(web_contents()->GetBrowserContext()), -- web_contents()->GetOutermostWebContents()->GetLastCommittedURL(), -- &scanning_data, enterprise_connectors::AnalysisConnector::PRINT)) { -- set_snapshotting_for_content_analysis(); -- GetPrintRenderFrame(rfh)->SnapshotForContentAnalysis(base::BindOnce( -- &PrintViewManager::OnGotSnapshotCallback, weak_factory_.GetWeakPtr(), -- std::move(callback), std::move(scanning_data), rfh_id)); -- return; -- } -- - std::move(callback).Run(/*should_proceed=*/true); - } - -diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc ---- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -631,9 +631,6 @@ void ChromeBrowserMainExtraPartsProfiles:: - enterprise_connectors::DeviceTrustServiceFactory::GetInstance(); - enterprise_connectors::DeviceTrustConnectorServiceFactory::GetInstance(); - #endif --#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) -- enterprise_connectors::LocalBinaryUploadServiceFactory::GetInstance(); --#endif - #if BUILDFLAG(ENABLE_SESSION_SERVICE) - ExitTypeServiceFactory::GetInstance(); - #endif -diff --git a/chrome/browser/profiles/profiles_state.cc b/chrome/browser/profiles/profiles_state.cc ---- a/chrome/browser/profiles/profiles_state.cc -+++ b/chrome/browser/profiles/profiles_state.cc -@@ -260,8 +260,6 @@ void RemoveBrowsingDataForProfile(const base::FilePath& profile_path) { - // The BrowsingDataRemover relies on many objects that aren't created in unit - // tests. Previously this code would depend on content::ResourceDispatcherHost - // but that's gone, so do a similar hack for now. -- if (!g_browser_process->safe_browsing_service()) -- return; - - Profile* profile = - g_browser_process->profile_manager()->GetProfileByPath(profile_path); -diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn ---- a/chrome/browser/resources/BUILD.gn -+++ b/chrome/browser/resources/BUILD.gn -@@ -107,7 +107,6 @@ group("resources") { - - if (!is_android && !is_chromeos_ash) { - public_deps += [ -- "intro:resources", - "signin/profile_picker:resources", - "welcome:resources", - ] -diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn ---- a/chrome/browser/safe_browsing/BUILD.gn -+++ b/chrome/browser/safe_browsing/BUILD.gn -@@ -6,7 +6,7 @@ import("//build/config/chromeos/ui_mode.gni") - import("//components/safe_browsing/buildflags.gni") - import("//extensions/buildflags/buildflags.gni") - --static_library("safe_browsing") { -+static_library("safe_browsing_disabled") { - if (false) { - sources = [ - "chrome_controller_client.cc", -@@ -445,7 +445,7 @@ static_library("safe_browsing") { - } - } - --source_set("verdict_cache_manager_factory") { -+source_set("verdict_cache_manager_factory_disabled") { - sources = [ - "verdict_cache_manager_factory.cc", - "verdict_cache_manager_factory.h", -@@ -468,7 +468,7 @@ source_set("verdict_cache_manager_factory") { - ] - } - --static_library("advanced_protection") { -+static_library("advanced_protection_disabled") { - sources = [ - "advanced_protection_status_manager.cc", - "advanced_protection_status_manager.h", -@@ -490,7 +490,7 @@ static_library("advanced_protection") { - ] - } - --source_set("metrics_collector") { -+source_set("metrics_collector_disabled") { - sources = [ - "safe_browsing_metrics_collector_factory.cc", - "safe_browsing_metrics_collector_factory.h", -diff --git a/chrome/browser/safe_browsing/chrome_cleaner/BUILD.gn b/chrome/browser/safe_browsing/chrome_cleaner/BUILD.gn ---- a/chrome/browser/safe_browsing/chrome_cleaner/BUILD.gn -+++ b/chrome/browser/safe_browsing/chrome_cleaner/BUILD.gn -@@ -66,7 +66,6 @@ static_library("chrome_cleaner") { - ":public", - "//chrome/browser:browser_process", - "//chrome/browser/profiles:profile", -- "//chrome/browser/safe_browsing", - "//chrome/browser/ui", - "//chrome/common", - "//chrome/installer/util:with_no_strings", -diff --git a/chrome/browser/safe_browsing/chrome_cleaner/settings_resetter_win.cc b/chrome/browser/safe_browsing/chrome_cleaner/settings_resetter_win.cc ---- a/chrome/browser/safe_browsing/chrome_cleaner/settings_resetter_win.cc -+++ b/chrome/browser/safe_browsing/chrome_cleaner/settings_resetter_win.cc -@@ -192,7 +192,6 @@ PostCleanupSettingsResetter::Delegate::~Delegate() {} - - void PostCleanupSettingsResetter::Delegate::FetchDefaultSettings( - DefaultSettingsFetcher::SettingsCallback callback) { -- DefaultSettingsFetcher::FetchDefaultSettings(std::move(callback)); - } - - PostCleanupSettingsResetter::PostCleanupSettingsResetter() = default; -diff --git a/chrome/browser/safe_browsing/download_protection/file_analyzer.h b/chrome/browser/safe_browsing/download_protection/file_analyzer.h ---- a/chrome/browser/safe_browsing/download_protection/file_analyzer.h -+++ b/chrome/browser/safe_browsing/download_protection/file_analyzer.h -@@ -13,15 +13,10 @@ - #include "build/build_config.h" - #include "chrome/common/safe_browsing/binary_feature_extractor.h" - #include "chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.h" --#include "chrome/services/file_util/public/cpp/sandboxed_seven_zip_analyzer.h" - #include "chrome/services/file_util/public/cpp/sandboxed_zip_analyzer.h" - #include "components/safe_browsing/core/common/proto/csd.pb.h" - #include "third_party/protobuf/src/google/protobuf/repeated_field.h" - --#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) --#include "chrome/services/file_util/public/cpp/sandboxed_document_analyzer.h" --#endif -- - #if BUILDFLAG(IS_MAC) - #include "chrome/common/safe_browsing/disk_image_type_sniffer_mac.h" - #include "chrome/services/file_util/public/cpp/sandboxed_dmg_analyzer_mac.h" -@@ -106,12 +101,6 @@ class FileAnalyzer { - const safe_browsing::ArchiveAnalyzerResults& archive_results); - #endif - --#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) -- void StartExtractDocumentFeatures(); -- void OnDocumentAnalysisFinished( -- const DocumentAnalyzerResults& document_results); --#endif -- - void StartExtractSevenZipFeatures(); - void OnSevenZipAnalysisFinished( - const ArchiveAnalyzerResults& archive_results); -@@ -136,15 +125,6 @@ class FileAnalyzer { - dmg_analyzer_{nullptr, base::OnTaskRunnerDeleter(nullptr)}; - #endif - --#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) -- std::unique_ptr -- document_analyzer_{nullptr, base::OnTaskRunnerDeleter(nullptr)}; -- base::TimeTicks document_analysis_start_time_; --#endif -- -- std::unique_ptr -- seven_zip_analyzer_{nullptr, base::OnTaskRunnerDeleter(nullptr)}; -- - base::WeakPtrFactory weakptr_factory_{this}; - }; - -diff --git a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc b/chrome/browser/ssl/chrome_security_blocking_page_factory.cc ---- a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc -+++ b/chrome/browser/ssl/chrome_security_blocking_page_factory.cc -@@ -145,15 +145,6 @@ CreateSettingsPageHelper() { - CreateChromeSettingsPageHelper(); - } - --void LogSafeBrowsingSecuritySensitiveAction( -- safe_browsing::SafeBrowsingMetricsCollector* metrics_collector) { -- if (metrics_collector) { -- metrics_collector->AddSafeBrowsingEventToPref( -- safe_browsing::SafeBrowsingMetricsCollector::EventType:: -- SECURITY_SENSITIVE_SSL_INTERSTITIAL); -- } --} -- - } // namespace - - std::unique_ptr -@@ -177,10 +168,6 @@ ChromeSecurityBlockingPageFactory::CreateSSLPage( - Profile::FromBrowserContext(web_contents->GetBrowserContext())); - state->DidDisplayErrorPage(cert_error); - -- LogSafeBrowsingSecuritySensitiveAction( -- safe_browsing::SafeBrowsingMetricsCollectorFactory::GetForProfile( -- Profile::FromBrowserContext(web_contents->GetBrowserContext()))); -- - auto controller_client = std::make_unique( - web_contents, ssl_info, cert_error, request_url, - std::move(metrics_helper), CreateSettingsPageHelper()); -@@ -250,10 +237,6 @@ ChromeSecurityBlockingPageFactory::CreateMITMSoftwareBlockingPage( - std::unique_ptr ssl_cert_reporter, - const net::SSLInfo& ssl_info, - const std::string& mitm_software_name) { -- LogSafeBrowsingSecuritySensitiveAction( -- safe_browsing::SafeBrowsingMetricsCollectorFactory::GetForProfile( -- Profile::FromBrowserContext(web_contents->GetBrowserContext()))); -- - auto page = std::make_unique( - web_contents, cert_error, request_url, std::move(ssl_cert_reporter), - /*can_show_enhanced_protection_message=*/true, ssl_info, -@@ -275,10 +258,6 @@ ChromeSecurityBlockingPageFactory::CreateBlockedInterceptionBlockingPage( - const GURL& request_url, - std::unique_ptr ssl_cert_reporter, - const net::SSLInfo& ssl_info) { -- LogSafeBrowsingSecuritySensitiveAction( -- safe_browsing::SafeBrowsingMetricsCollectorFactory::GetForProfile( -- Profile::FromBrowserContext(web_contents->GetBrowserContext()))); -- - auto page = std::make_unique( - web_contents, cert_error, request_url, std::move(ssl_cert_reporter), - /*can_show_enhanced_protection_message=*/true, ssl_info, -diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn ---- a/chrome/browser/ui/BUILD.gn -+++ b/chrome/browser/ui/BUILD.gn -@@ -426,7 +426,6 @@ static_library("ui") { - "//chrome/browser/resources/net_internals:resources", - "//chrome/browser/resources/omnibox:resources", - "//chrome/browser/resources/usb_internals:resources", -- "//chrome/browser/safe_browsing", - "//chrome/browser/share", - "//chrome/browser/ui/webui:configs", - "//chrome/browser/ui/webui/omnibox:mojo_bindings", -@@ -682,7 +681,6 @@ static_library("ui") { - # TODO(crbug.com/1158905): Remove this circular dependency. - "//chrome/browser/devtools", - "//chrome/browser/favicon", -- "//chrome/browser/safe_browsing", - "//chrome/browser/profiling_host", - "//chrome/browser/ui/webui:configs", - ] -@@ -1808,8 +1806,6 @@ static_library("ui") { - "//chrome/browser/resources/identity_internals:resources", - "//chrome/browser/resources/support_tool:resources", - "//chrome/browser/resources/web_app_internals:resources", -- "//chrome/browser/safe_browsing", -- "//chrome/browser/safe_browsing:advanced_protection", - "//chrome/browser/support_tool:support_tool_proto", - "//chrome/browser/ui/color:color_headers", - "//chrome/browser/ui/color:mixers", -@@ -3698,8 +3694,6 @@ static_library("ui") { - "views/profiles/profile_picker_force_signin_dialog_host.h", - "views/profiles/profile_picker_signed_in_flow_controller.cc", - "views/profiles/profile_picker_signed_in_flow_controller.h", -- "views/profiles/profile_picker_turn_sync_on_delegate.cc", -- "views/profiles/profile_picker_turn_sync_on_delegate.h", - "views/profiles/profile_picker_view.cc", - "views/profiles/profile_picker_view.h", - "views/profiles/profile_picker_web_contents_host.h", -diff --git a/chrome/browser/ui/javascript_dialogs/javascript_tab_modal_dialog_manager_delegate_desktop.cc b/chrome/browser/ui/javascript_dialogs/javascript_tab_modal_dialog_manager_delegate_desktop.cc ---- a/chrome/browser/ui/javascript_dialogs/javascript_tab_modal_dialog_manager_delegate_desktop.cc -+++ b/chrome/browser/ui/javascript_dialogs/javascript_tab_modal_dialog_manager_delegate_desktop.cc -@@ -43,7 +43,6 @@ void JavaScriptTabModalDialogManagerDelegateDesktop::WillRunDialog() { - safe_browsing::SafeBrowsingUserInteractionObserver::FromWebContents( - web_contents_); - if (observer) { -- observer->OnJavaScriptDialog(); - } - } - -diff --git a/chrome/browser/ui/page_info/chrome_page_info_delegate.cc b/chrome/browser/ui/page_info/chrome_page_info_delegate.cc ---- a/chrome/browser/ui/page_info/chrome_page_info_delegate.cc -+++ b/chrome/browser/ui/page_info/chrome_page_info_delegate.cc -@@ -257,7 +257,6 @@ void ChromePageInfoDelegate::OpenConnectionHelpCenterPage( - } - - void ChromePageInfoDelegate::OpenSafetyTipHelpCenterPage() { -- OpenHelpCenterFromSafetyTip(web_contents_); - } - - void ChromePageInfoDelegate::OpenContentSettingsExceptions( -diff --git a/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.cc b/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.cc ---- a/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.cc -+++ b/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.cc -@@ -21,169 +21,10 @@ - #include "third_party/abseil-cpp/absl/types/optional.h" - #include "ui/base/clipboard/file_info.h" - --namespace { -- --void CompletionCallback( -- content::DropData drop_data, -- std::unique_ptr files_scan_data, -- content::WebContentsViewDelegate::DropCompletionCallback callback, -- const enterprise_connectors::ContentAnalysisDelegate::Data& data, -- enterprise_connectors::ContentAnalysisDelegate::Result& result) { -- // If there are no negative results, proceed with just `drop_data`. -- bool all_text_results_allowed = !base::Contains(result.text_results, false); -- bool all_file_results_allowed = !base::Contains(result.paths_results, false); -- if (all_text_results_allowed && all_file_results_allowed) { -- std::move(callback).Run(std::move(drop_data)); -- return; -- } -- -- // For text drag-drops, block the drop if any result is negative. -- if (!all_text_results_allowed) { -- std::move(callback).Run(absl::nullopt); -- return; -- } -- -- // For file drag-drops, block file paths depending on the verdict obtained for -- // child paths. -- DCHECK(files_scan_data); -- std::set file_indexes_to_block = -- files_scan_data->IndexesToBlock(result.paths_results); -- -- // If every file path should be blocked, the drop is aborted, otherwise it -- // continues by blocking sub-elements of the list. When everything is blocked, -- // it implies that no `result.paths_results` is allowed. -- if (file_indexes_to_block.size() == drop_data.filenames.size()) { -- for (size_t i = 0; i < data.paths.size(); ++i) -- result.paths_results[i] = false; -- -- std::move(callback).Run(absl::nullopt); -- return; -- } -- -- // A specific index could be blocked due to its parent folder being -- // blocked and not because it got a bad verdict itself, so `result` needs -- // to be updated to reflect that. -- DCHECK_EQ(data.paths.size(), -- files_scan_data->expanded_paths_indexes().size()); -- for (size_t i = 0; i < data.paths.size(); ++i) { -- int parent_index = -- files_scan_data->expanded_paths_indexes().at(data.paths[i]); -- if (file_indexes_to_block.count(parent_index)) -- result.paths_results[i] = false; -- } -- -- std::vector final_filenames; -- for (size_t i = 0; i < drop_data.filenames.size(); ++i) { -- if (file_indexes_to_block.count(i)) -- continue; -- final_filenames.push_back(std::move(drop_data.filenames[i])); -- } -- -- drop_data.filenames = std::move(final_filenames); -- std::move(callback).Run(std::move(drop_data)); --} -- --// Helper class to handle WebContents being destroyed while files are opened in --// the threadpool. This class deletes itself either when it's no longer needed --// when ScanData is called, or when its corresponding web contents is destroyed --// so its weak ptrs are invalidated. --class HandleDropScanData : public content::WebContentsObserver { -- public: -- HandleDropScanData( -- content::WebContents* web_contents, -- content::DropData drop_data, -- enterprise_connectors::ContentAnalysisDelegate::Data analysis_data, -- content::WebContentsViewDelegate::DropCompletionCallback callback) -- : content::WebContentsObserver(web_contents), -- drop_data_(std::move(drop_data)), -- analysis_data_(std::move(analysis_data)), -- callback_(std::move(callback)) {} -- -- void ScanData( -- std::unique_ptr files_scan_data) { -- DCHECK(web_contents()); -- if (files_scan_data) { -- for (const auto& path : files_scan_data->expanded_paths()) { -- analysis_data_.paths.push_back(path); -- } -- } -- enterprise_connectors::ContentAnalysisDelegate::CreateForWebContents( -- web_contents(), std::move(analysis_data_), -- base::BindOnce(&CompletionCallback, std::move(drop_data_), -- std::move(files_scan_data), std::move(callback_)), -- safe_browsing::DeepScanAccessPoint::DRAG_AND_DROP); -- -- delete this; -- } -- -- void WebContentsDestroyed() override { delete this; } -- -- base::WeakPtr GetWeakPtr() { -- return weakptr_factory_.GetWeakPtr(); -- } -- -- private: -- content::DropData drop_data_; -- enterprise_connectors::ContentAnalysisDelegate::Data analysis_data_; -- content::WebContentsViewDelegate::DropCompletionCallback callback_; -- -- base::WeakPtrFactory weakptr_factory_{this}; --}; -- --} // namespace -- - void HandleOnPerformDrop( - content::WebContents* web_contents, - content::DropData drop_data, - content::WebContentsViewDelegate::DropCompletionCallback callback) { -- enterprise_connectors::ContentAnalysisDelegate::Data data; -- Profile* profile = -- Profile::FromBrowserContext(web_contents->GetBrowserContext()); -- auto connector = -- drop_data.filenames.empty() -- ? enterprise_connectors::AnalysisConnector::BULK_DATA_ENTRY -- : enterprise_connectors::AnalysisConnector::FILE_ATTACHED; -- if (!enterprise_connectors::ContentAnalysisDelegate::IsEnabled( -- profile, web_contents->GetLastCommittedURL(), &data, connector)) { - std::move(callback).Run(std::move(drop_data)); - return; -- } -- -- // Collect the data that needs to be scanned. -- if (!drop_data.url_title.empty()) -- data.text.push_back(base::UTF16ToUTF8(drop_data.url_title)); -- if (drop_data.text) -- data.text.push_back(base::UTF16ToUTF8(*drop_data.text)); -- if (drop_data.html) -- data.text.push_back(base::UTF16ToUTF8(*drop_data.html)); -- -- // `callback` should only run asynchronously when scanning is blocking. -- content::WebContentsViewDelegate::DropCompletionCallback scan_callback = -- base::DoNothing(); -- if (data.settings.block_until_verdict == -- enterprise_connectors::BlockUntilVerdict::kBlock) { -- scan_callback = std::move(callback); -- } -- -- // `handle_drop_scan_data` is created on the heap to stay alive regardless of -- // how long the threadpool work takes or in case `web_contents` is destroyed. -- // It deletes itself when `HandleDropScanData::ScanData` is called or when -- // `web_contents` gets destroyed. -- auto* handle_drop_scan_data = new HandleDropScanData( -- web_contents, drop_data, std::move(data), std::move(scan_callback)); -- if (drop_data.filenames.empty()) { -- handle_drop_scan_data->ScanData(/*files_scan_data=*/nullptr); -- } else { -- auto files_scan_data = -- std::make_unique( -- drop_data.filenames); -- auto* files_scan_data_raw = files_scan_data.get(); -- files_scan_data_raw->ExpandPaths(base::BindOnce( -- &HandleDropScanData::ScanData, handle_drop_scan_data->GetWeakPtr(), -- std::move(files_scan_data))); -- } -- -- if (!callback.is_null()) { -- std::move(callback).Run(std::move(drop_data)); -- } - } -diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/browser/ui/views/download/download_item_view.cc ---- a/chrome/browser/ui/views/download/download_item_view.cc -+++ b/chrome/browser/ui/views/download/download_item_view.cc -@@ -38,7 +38,6 @@ - #include "chrome/browser/icon_manager.h" - #include "chrome/browser/safe_browsing/advanced_protection_status_manager.h" - #include "chrome/browser/safe_browsing/advanced_protection_status_manager_factory.h" --#include "chrome/browser/safe_browsing/download_protection/download_protection_service.h" - #include "chrome/browser/safe_browsing/safe_browsing_service.h" - #include "chrome/browser/ui/browser.h" - #include "chrome/browser/ui/color/chrome_color_id.h" -@@ -815,21 +814,7 @@ void DownloadItemView::UpdateLabels() { - warning_label_->SizeToFit(GetLabelWidth(*warning_label_)); - } - -- deep_scanning_label_->SetVisible(mode_ == -- download::DownloadItemMode::kDeepScanning); -- if (deep_scanning_label_->GetVisible()) { -- const int id = (model_->GetDownloadItem() && -- safe_browsing::DeepScanningRequest::ShouldUploadBinary( -- model_->GetDownloadItem())) -- ? IDS_PROMPT_DEEP_SCANNING_DOWNLOAD -- : IDS_PROMPT_DEEP_SCANNING_APP_DOWNLOAD; -- const std::u16string filename = ElidedFilename(*deep_scanning_label_); -- size_t filename_offset; -- deep_scanning_label_->SetText( -- l10n_util::GetStringFUTF16(id, filename, &filename_offset)); -- StyleFilename(*deep_scanning_label_, filename_offset, filename.length()); -- deep_scanning_label_->SizeToFit(GetLabelWidth(*deep_scanning_label_)); -- } -+ deep_scanning_label_->SetVisible(false); - } - - void DownloadItemView::UpdateButtons() { -@@ -1018,11 +1003,7 @@ ui::ImageModel DownloadItemView::GetIcon() const { - - switch (danger_type) { - case download::DOWNLOAD_DANGER_TYPE_UNCOMMON_CONTENT: -- return safe_browsing::AdvancedProtectionStatusManagerFactory:: -- GetForProfile(model_->profile()) -- ->IsUnderAdvancedProtection() -- ? kWarning -- : kError; -+ return kError; - case download::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL: - case download::DOWNLOAD_DANGER_TYPE_DANGEROUS_CONTENT: - case download::DOWNLOAD_DANGER_TYPE_DANGEROUS_HOST: -@@ -1273,7 +1254,6 @@ void DownloadItemView::ShowContextMenuImpl(const gfx::Rect& rect, - } - - void DownloadItemView::OpenDownloadDuringAsyncScanning() { -- model_->CompleteSafeBrowsingScan(); - model_->SetOpenWhenComplete(true); - } - -diff --git a/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc b/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc ---- a/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc -+++ b/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc -@@ -209,15 +209,6 @@ void DownloadsDOMHandler::DiscardDangerous(const std::string& id) { - !GetMainNotifierManager()->GetBrowserContext()->IsOffTheRecord() && - base::FeatureList::IsEnabled( - safe_browsing::kSafeBrowsingCsbrrNewDownloadTrigger)) { -- safe_browsing::SafeBrowsingService* sb_service = -- g_browser_process->safe_browsing_service(); -- if (sb_service) { -- sb_service->SendDownloadReport( -- download, -- safe_browsing::ClientSafeBrowsingReportRequest:: -- DANGEROUS_DOWNLOAD_RECOVERY, -- /*did_proceed=*/false, /*show_download_in_folder=*/absl::nullopt); -- } - } - } - RemoveDownloadInArgs(id); -@@ -454,11 +445,6 @@ void DownloadsDOMHandler::ReviewDangerousRequiringGesture( - } - - CountDownloadsDOMEvents(DOWNLOADS_DOM_EVENT_REVIEW_DANGEROUS); -- download::DownloadItem* download = GetDownloadByStringId(id); -- if (download) { -- DownloadItemModel model(download); -- model.ReviewScanningVerdict(GetWebUIWebContents()); -- } - } - - // DownloadsDOMHandler, private: -------------------------------------------- -@@ -487,12 +473,7 @@ void DownloadsDOMHandler::FinalizeRemovals() { - - void DownloadsDOMHandler::ShowDangerPrompt( - download::DownloadItem* dangerous_item) { -- DownloadDangerPrompt* danger_prompt = DownloadDangerPrompt::Create( -- dangerous_item, GetWebUIWebContents(), false, -- base::BindOnce(&DownloadsDOMHandler::DangerPromptDone, -- weak_ptr_factory_.GetWeakPtr(), dangerous_item->GetId())); -- // danger_prompt will delete itself. -- DCHECK(danger_prompt); -+ DangerPromptDone(dangerous_item->GetId(), DownloadDangerPrompt::ACCEPT); - } - - void DownloadsDOMHandler::DangerPromptDone( -diff --git a/chrome/browser/ui/webui/downloads/downloads_ui.cc b/chrome/browser/ui/webui/downloads/downloads_ui.cc ---- a/chrome/browser/ui/webui/downloads/downloads_ui.cc -+++ b/chrome/browser/ui/webui/downloads/downloads_ui.cc -@@ -63,10 +63,7 @@ content::WebUIDataSource* CreateAndAddDownloadsUIHTMLSource(Profile* profile) { - source, base::make_span(kDownloadsResources, kDownloadsResourcesSize), - IDR_DOWNLOADS_DOWNLOADS_HTML); - -- bool requests_ap_verdicts = -- safe_browsing::AdvancedProtectionStatusManagerFactory::GetForProfile( -- profile) -- ->IsUnderAdvancedProtection(); -+ bool requests_ap_verdicts = false; - source->AddBoolean("requestsApVerdicts", requests_ap_verdicts); - - static constexpr webui::LocalizedString kStrings[] = { -diff --git a/chrome/browser/ui/webui/intro/intro_ui.cc b/chrome/browser/ui/webui/intro/intro_ui.cc ---- a/chrome/browser/ui/webui/intro/intro_ui.cc -+++ b/chrome/browser/ui/webui/intro/intro_ui.cc -@@ -18,8 +18,6 @@ - #include "chrome/grit/chrome_unscaled_resources.h" - #include "chrome/grit/chromium_strings.h" - #include "chrome/grit/generated_resources.h" --#include "chrome/grit/intro_resources.h" --#include "chrome/grit/intro_resources_map.h" - #include "chrome/grit/signin_resources.h" - #include "components/signin/public/base/signin_buildflags.h" - #include "components/strings/grit/components_chromium_strings.h" -@@ -27,6 +25,13 @@ - #include "content/public/browser/web_ui_data_source.h" - #include "ui/base/l10n/l10n_util.h" - -+#if BUILDFLAG(ENABLE_DICE_SUPPORT) -+#include "chrome/grit/intro_resources.h" -+#include "chrome/grit/intro_resources_map.h" -+#include "chrome/grit/chromium_strings.h" -+#include "chrome/grit/generated_resources.h" -+#endif -+ - IntroUI::IntroUI(content::WebUI* web_ui) : content::WebUIController(web_ui) { - DCHECK(base::FeatureList::IsEnabled(kForYouFre)); - auto* profile = Profile::FromWebUI(web_ui); -@@ -70,26 +75,6 @@ IntroUI::IntroUI(content::WebUI* web_ui) : content::WebUIController(web_ui) { - // ends up being the URL) when we try to get it on startup for a11y purposes. - web_ui->OverrideTitle(l10n_util::GetStringUTF16(title_id)); - -- webui::LocalizedString localized_strings[] = { --#if BUILDFLAG(ENABLE_DICE_SUPPORT) -- {"pageTitle", title_id}, -- {"pageSubtitle", subtitle_id}, -- {"devicesCardTitle", IDS_FRE_DEVICES_CARD_TITLE}, -- {"devicesCardDescription", IDS_FRE_DEVICES_CARD_DESCRIPTION}, -- {"securityCardTitle", IDS_FRE_SECURITY_CARD_TITLE}, -- {"securityCardDescription", IDS_FRE_SECURITY_CARD_DESCRIPTION}, -- {"backupCardTitle", IDS_FRE_BACKUP_CARD_TITLE}, -- {"backupCardDescription", IDS_FRE_BACKUP_CARD_DESCRIPTION}, -- {"declineSignInButtonTitle", IDS_FRE_DECLINE_SIGN_IN_BUTTON_TITLE}, -- {"acceptSignInButtonTitle", IDS_FRE_ACCEPT_SIGN_IN_BUTTON_TITLE}, -- {"productLogoAltText", IDS_SHORT_PRODUCT_LOGO_ALT_TEXT}, --#endif --#if BUILDFLAG(IS_CHROMEOS_LACROS) -- {"proceedLabel", IDS_PRIMARY_PROFILE_FIRST_RUN_NEXT_BUTTON_LABEL}, --#endif -- }; -- source->AddLocalizedStrings(localized_strings); -- - const bool is_device_managed = - policy::ManagementServiceFactory::GetForPlatform()->IsManaged(); - #if BUILDFLAG(ENABLE_DICE_SUPPORT) -diff --git a/chrome/browser/webshare/share_service_impl.cc b/chrome/browser/webshare/share_service_impl.cc ---- a/chrome/browser/webshare/share_service_impl.cc -+++ b/chrome/browser/webshare/share_service_impl.cc -@@ -17,8 +17,10 @@ - #include "chrome/browser/browser_process.h" - #include "chrome/browser/safe_browsing/safe_browsing_service.h" - #include "chrome/common/chrome_features.h" -+#if BUILDFLAG(FULL_SAFE_BROWSING) - #include "components/safe_browsing/content/common/file_type_policies.h" - #include "components/safe_browsing/core/browser/db/database_manager.h" -+#endif - #include "content/public/browser/web_contents.h" - #include "mojo/public/cpp/bindings/self_owned_receiver.h" - #include "third_party/blink/public/mojom/permissions_policy/permissions_policy_feature.mojom.h" -@@ -190,6 +192,7 @@ void ShareServiceImpl::Share(const std::string& title, - return; - } - -+#if BUILDFLAG(FULL_SAFE_BROWSING) - bool should_check_url = false; - for (auto& file : files) { - if (!file || !file->blob || !file->blob->blob) { -@@ -231,6 +234,7 @@ void ShareServiceImpl::Share(const std::string& title, - std::move(files), std::move(callback))); - return; - } -+#endif - - OnSafeBrowsingResultReceived(title, text, share_url, std::move(files), - std::move(callback), -diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni ---- a/chrome/chrome_paks.gni -+++ b/chrome/chrome_paks.gni -@@ -430,12 +430,10 @@ template("chrome_extra_paks") { - } - if (!is_android && !is_chromeos_ash) { - sources += [ -- "$root_gen_dir/chrome/intro_resources.pak", - "$root_gen_dir/chrome/profile_picker_resources.pak", - "$root_gen_dir/chrome/welcome_resources.pak", - ] - deps += [ -- "//chrome/browser/resources/intro:resources", - "//chrome/browser/resources/signin/profile_picker:resources", - "//chrome/browser/resources/welcome:resources", - ] -diff --git a/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.cc b/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.cc ---- a/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.cc -+++ b/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.cc -@@ -76,11 +76,6 @@ SandboxedRarAnalyzer::SandboxedRarAnalyzer( - service_(std::move(service)) { - DCHECK(callback_); - DCHECK(!file_path_.value().empty()); -- service_->BindSafeArchiveAnalyzer( -- remote_analyzer_.BindNewPipeAndPassReceiver()); -- remote_analyzer_.set_disconnect_handler( -- base::BindOnce(&SandboxedRarAnalyzer::AnalyzeFileDone, GetWeakPtr(), -- safe_browsing::ArchiveAnalyzerResults())); - } - - void SandboxedRarAnalyzer::Start() { -@@ -102,22 +97,12 @@ SandboxedRarAnalyzer::~SandboxedRarAnalyzer() = default; - void SandboxedRarAnalyzer::AnalyzeFile(base::File file) { - DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - DCHECK(!file_path_.value().empty()); -- if (remote_analyzer_) { -- mojo::PendingRemote -- temp_file_getter_remote = -- temp_file_getter_.GetRemoteTemporaryFileGetter(); -- remote_analyzer_->AnalyzeRarFile( -- std::move(file), std::move(temp_file_getter_remote), -- base::BindOnce(&SandboxedRarAnalyzer::AnalyzeFileDone, GetWeakPtr())); -- } else { - AnalyzeFileDone(safe_browsing::ArchiveAnalyzerResults()); -- } - } - - void SandboxedRarAnalyzer::AnalyzeFileDone( - const safe_browsing::ArchiveAnalyzerResults& results) { - DCHECK_CURRENTLY_ON(content::BrowserThread::UI); -- remote_analyzer_.reset(); - if (callback_) { - std::move(callback_).Run(results); - } -@@ -134,9 +119,7 @@ void SandboxedRarAnalyzer::ReportFileFailure( - } - - std::string SandboxedRarAnalyzer::DebugString() const { -- return base::StringPrintf("path: %" PRFilePath "; connected_: %d", -- file_path_.value().c_str(), -- remote_analyzer_.is_connected()); -+ return std:string(); - } - - std::ostream& operator<<(std::ostream& os, -diff --git a/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.h b/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.h ---- a/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.h -+++ b/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.h -@@ -12,7 +12,6 @@ - #include "base/task/sequenced_task_runner.h" - #include "chrome/services/file_util/public/cpp/temporary_file_getter.h" - #include "chrome/services/file_util/public/mojom/file_util_service.mojom.h" --#include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h" - #include "mojo/public/cpp/bindings/pending_remote.h" - #include "mojo/public/cpp/bindings/remote.h" - -@@ -74,7 +73,6 @@ class SandboxedRarAnalyzer { - - // Remote interfaces to the file util service. Only used from the UI thread. - mojo::Remote service_; -- mojo::Remote remote_analyzer_; - TemporaryFileGetter temp_file_getter_; - - base::WeakPtrFactory weak_ptr_factory_{this}; -diff --git a/chrome/services/file_util/public/cpp/sandboxed_zip_analyzer.h b/chrome/services/file_util/public/cpp/sandboxed_zip_analyzer.h ---- a/chrome/services/file_util/public/cpp/sandboxed_zip_analyzer.h -+++ b/chrome/services/file_util/public/cpp/sandboxed_zip_analyzer.h -@@ -11,7 +11,6 @@ - #include "base/memory/ref_counted_delete_on_sequence.h" - #include "chrome/services/file_util/public/cpp/temporary_file_getter.h" - #include "chrome/services/file_util/public/mojom/file_util_service.mojom.h" --#include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h" - #include "mojo/public/cpp/bindings/pending_remote.h" - #include "mojo/public/cpp/bindings/remote.h" - -@@ -69,7 +68,6 @@ class SandboxedZipAnalyzer { - - // Remote interfaces to the file util service. Only used from the UI thread. - mojo::Remote service_; -- mojo::Remote remote_analyzer_; - TemporaryFileGetter temp_file_getter_; - - base::WeakPtrFactory weak_ptr_factory_{this}; -diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn ---- a/chrome/test/BUILD.gn -+++ b/chrome/test/BUILD.gn -@@ -298,7 +298,6 @@ static_library("test_support") { - "//chrome:strings", - "//chrome/browser:browser_process", - "//chrome/browser:test_support", -- "//chrome/browser/safe_browsing", - "//chrome/browser/sharing/proto", - "//chrome/child", - "//chrome/common:non_code_constants", -@@ -6018,9 +6017,6 @@ test("unit_tests") { - "//chrome/browser/profile_resetter:profile_reset_report_proto", - "//chrome/browser/profiling_host", - "//chrome/browser/push_messaging:budget_proto", -- "//chrome/browser/safe_browsing:advanced_protection", -- "//chrome/browser/safe_browsing:metrics_collector", -- "//chrome/browser/safe_browsing:verdict_cache_manager_factory", - "//chrome/browser/segmentation_platform:test_utils", - "//chrome/browser/share", - "//chrome/browser/sharing/proto", -diff --git a/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc b/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc ---- a/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc -+++ b/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc -@@ -127,6 +127,7 @@ void MojoSafeBrowsingImpl::MaybeCreate( - user_data = resource_context.get(); - } - -+ NOTREACHED(); - std::unique_ptr impl(new MojoSafeBrowsingImpl( - std::move(delegate), render_process_id, user_data)); - impl->Clone(std::move(receiver)); -diff --git a/components/safe_browsing/core/common/safe_browsing_prefs.cc b/components/safe_browsing/core/common/safe_browsing_prefs.cc ---- a/components/safe_browsing/core/common/safe_browsing_prefs.cc -+++ b/components/safe_browsing/core/common/safe_browsing_prefs.cc -@@ -237,7 +237,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { - registry->RegisterIntegerPref(prefs::kPasswordProtectionWarningTrigger, - PASSWORD_PROTECTION_OFF); - registry->RegisterInt64Pref(prefs::kAdvancedProtectionLastRefreshInUs, 0); -- registry->RegisterBooleanPref(prefs::kAdvancedProtectionAllowed, true); -+ registry->RegisterBooleanPref(prefs::kAdvancedProtectionAllowed, false); - registry->RegisterIntegerPref( - prefs::kSafeBrowsingEnterpriseRealTimeUrlCheckMode, - REAL_TIME_CHECK_DISABLED); -diff --git a/printing/buildflags/buildflags.gni b/printing/buildflags/buildflags.gni ---- a/printing/buildflags/buildflags.gni -+++ b/printing/buildflags/buildflags.gni -@@ -44,7 +44,7 @@ declare_args() { - - # Enable snapshotting a page when printing for its content to be analyzed for - # sensitive content by enterprise users. -- enable_print_content_analysis = is_chromeos || is_win || is_linux || is_mac -+ enable_print_content_analysis = false - } - - declare_args() { -diff --git a/services/preferences/tracked/tracked_persistent_pref_store_factory.cc b/services/preferences/tracked/tracked_persistent_pref_store_factory.cc ---- a/services/preferences/tracked/tracked_persistent_pref_store_factory.cc -+++ b/services/preferences/tracked/tracked_persistent_pref_store_factory.cc -@@ -103,24 +103,18 @@ PersistentPrefStore* CreateTrackedPersistentPrefStore( - } - #endif - -- mojo::Remote -- validation_delegate; -- validation_delegate.Bind(std::move(config->validation_delegate)); -- auto validation_delegate_ref = base::MakeRefCounted>>( -- std::move(validation_delegate)); - std::unique_ptr unprotected_pref_hash_filter( - new PrefHashFilter(CreatePrefHashStore(*config, false), - GetExternalVerificationPrefHashStorePair( - *config, temp_scoped_dir_cleaner), - unprotected_configuration, mojo::NullRemote(), -- validation_delegate_ref, config->reporting_ids_count)); -+ nullptr, config->reporting_ids_count)); - std::unique_ptr protected_pref_hash_filter(new PrefHashFilter( - CreatePrefHashStore(*config, true), - GetExternalVerificationPrefHashStorePair(*config, - temp_scoped_dir_cleaner), - protected_configuration, std::move(config->reset_on_load_observer), -- validation_delegate_ref, config->reporting_ids_count)); -+ nullptr, config->reporting_ids_count)); - - PrefHashFilter* raw_unprotected_pref_hash_filter = - unprotected_pref_hash_filter.get(); --- -2.25.1 diff --git a/build/patches/00WIN-ADDTO-Remove-signin-and-sync-integrations.patch b/build/patches/00WIN-ADDTO-Remove-signin-and-sync-integrations.patch deleted file mode 100644 index d01dbb84..00000000 --- a/build/patches/00WIN-ADDTO-Remove-signin-and-sync-integrations.patch +++ /dev/null @@ -1,1230 +0,0 @@ -From: Your Name -Date: Wed, 12 Oct 2022 11:50:53 +0000 -Subject: WIN ADDTO Remove signin and sync integrations - ---- - chrome/browser/BUILD.gn | 8 - - .../signin/identity_manager_factory.cc | 7 - - .../identity_services_provider_android.cc | 12 +- - chrome/browser/signin/signin_ui_util.cc | 23 - - chrome/browser/ui/BUILD.gn | 6 - - .../startup/startup_browser_creator_impl.cc | 3 +- - .../ui/startup/startup_tab_provider.cc | 5 - - .../profile_customization_bubble_view.cc | 1 - - ...rofile_picker_signed_in_flow_controller.cc | 37 -- - ...profile_picker_signed_in_flow_controller.h | 2 - - .../signin/profile_customization_handler.cc | 2 + - .../webui/signin/profile_customization_ui.cc | 2 + - .../ui/webui/signin/profile_picker_handler.cc | 5 +- - components/signin/public/android/BUILD.gn | 1 - - .../identitymanager/IdentityManager.java | 21 +- - .../identity_manager/identity_manager.cc | 463 ++---------------- - .../identity_manager/identity_manager.h | 47 +- - .../identity_manager_builder.cc | 3 + - 18 files changed, 45 insertions(+), 603 deletions(-) - -diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn ---- a/chrome/browser/BUILD.gn -+++ b/chrome/browser/BUILD.gn -@@ -4134,8 +4134,6 @@ static_library("browser") { - "sharing_hub/sharing_hub_service_factory.h", - "signin/signin_promo.cc", - "signin/signin_promo.h", -- "signin/signin_ui_delegate.cc", -- "signin/signin_ui_delegate.h", - "signin/signin_ui_util.cc", - "signin/signin_ui_util.h", - "speech/chrome_speech_recognition_service.cc", -@@ -6691,12 +6689,6 @@ static_library("browser") { - "signin/signin_ui_delegate_impl_dice.cc", - "signin/signin_ui_delegate_impl_dice.h", - ] -- if (is_win) { -- sources += [ -- "signin/signin_util_win.cc", -- "signin/signin_util_win.h", -- ] -- } - } - - if (enable_bound_session_credentials) { -diff --git a/chrome/browser/signin/identity_manager_factory.cc b/chrome/browser/signin/identity_manager_factory.cc ---- a/chrome/browser/signin/identity_manager_factory.cc -+++ b/chrome/browser/signin/identity_manager_factory.cc -@@ -50,7 +50,6 @@ - - #if BUILDFLAG(IS_WIN) - #include "base/functional/bind.h" --#include "chrome/browser/signin/signin_util_win.h" - #endif - - void IdentityManagerFactory::RegisterProfilePrefs( -@@ -162,12 +161,6 @@ KeyedService* IdentityManagerFactory::BuildServiceInstanceFor( - params.is_regular_profile = is_regular_profile; - #endif - --#if BUILDFLAG(IS_WIN) -- params.reauth_callback = -- base::BindRepeating(&signin_util::ReauthWithCredentialProviderIfPossible, -- base::Unretained(profile)); --#endif -- - std::unique_ptr identity_manager = - signin::BuildIdentityManager(¶ms); - -diff --git a/chrome/browser/signin/identity_services_provider_android.cc b/chrome/browser/signin/identity_services_provider_android.cc ---- a/chrome/browser/signin/identity_services_provider_android.cc -+++ b/chrome/browser/signin/identity_services_provider_android.cc -@@ -16,24 +16,16 @@ static ScopedJavaLocalRef - JNI_IdentityServicesProvider_GetIdentityManager( - JNIEnv* env, - const JavaParamRef& j_profile_android) { -- Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile_android); -- signin::IdentityManager* identity_manager = -- IdentityManagerFactory::GetForProfile(profile); - // Ensuring that the pointer is not null here produces unactionable stack - // traces, so just let the Java side handle possible issues with null. -- return identity_manager ? identity_manager->GetJavaObject() : nullptr; -+ return nullptr; - } - - static ScopedJavaLocalRef - JNI_IdentityServicesProvider_GetAccountTrackerService( - JNIEnv* env, - const JavaParamRef& j_profile_android) { -- Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile_android); -- signin::IdentityManager* identity_manager = -- IdentityManagerFactory::GetForProfile(profile); - // Ensuring that the pointer is not null here produces unactionable stack - // traces, so just let the Java side handle possible issues with null. -- return identity_manager -- ? identity_manager->LegacyGetAccountTrackerServiceJavaObject() -- : nullptr; -+ return nullptr; - } -diff --git a/chrome/browser/signin/signin_ui_util.cc b/chrome/browser/signin/signin_ui_util.cc ---- a/chrome/browser/signin/signin_ui_util.cc -+++ b/chrome/browser/signin/signin_ui_util.cc -@@ -28,13 +28,11 @@ - #include "chrome/browser/signin/account_consistency_mode_manager.h" - #include "chrome/browser/signin/identity_manager_factory.h" - #include "chrome/browser/signin/signin_features.h" --#include "chrome/browser/signin/signin_ui_delegate.h" - #include "chrome/browser/ui/browser.h" - #include "chrome/browser/ui/browser_navigator.h" - #include "chrome/browser/ui/browser_navigator_params.h" - #include "chrome/browser/ui/chrome_pages.h" - #include "chrome/browser/ui/ui_features.h" --#include "chrome/browser/ui/webui/signin/turn_sync_on_helper.h" - #include "chrome/common/pref_names.h" - #include "components/feature_engagement/public/tracker.h" - #include "components/prefs/pref_service.h" -@@ -224,10 +222,6 @@ void ShowReauthForAccount(Profile* profile, - #else - // Pass `false` for `enable_sync`, as this function is not expected to start a - // sync setup flow after the reauth. -- GetSigninUiDelegate()->ShowReauthUI( -- profile, email, -- /*enable_sync=*/false, access_point, -- signin_metrics::PromoAction::PROMO_ACTION_NO_SIGNIN_PROMO); - #endif - } - -@@ -254,18 +248,10 @@ void ShowExtensionSigninPrompt(Profile* profile, - - if (email_hint.empty()) { - // Add a new account. -- GetSigninUiDelegate()->ShowSigninUI( -- profile, enable_sync, -- signin_metrics::AccessPoint::ACCESS_POINT_EXTENSIONS, -- signin_metrics::PromoAction::PROMO_ACTION_NO_SIGNIN_PROMO); - return; - } - - // Re-authenticate an existing account. -- GetSigninUiDelegate()->ShowReauthUI( -- profile, email_hint, enable_sync, -- signin_metrics::AccessPoint::ACCESS_POINT_EXTENSIONS, -- signin_metrics::PromoAction::PROMO_ACTION_NO_SIGNIN_PROMO); - #endif // BUILDFLAG(IS_CHROMEOS_ASH) - } - -@@ -299,8 +285,6 @@ void EnableSyncFromMultiAccountPromo(Profile* profile, - PROMO_ACTION_NEW_ACCOUNT_NO_EXISTING_ACCOUNT - : signin_metrics::PromoAction:: - PROMO_ACTION_NEW_ACCOUNT_EXISTING_ACCOUNT; -- GetSigninUiDelegate()->ShowSigninUI(profile, /*enable_sync=*/true, -- access_point, new_account_promo_action); - return; - } - -@@ -319,19 +303,12 @@ void EnableSyncFromMultiAccountPromo(Profile* profile, - identity_manager->HasAccountWithRefreshTokenInPersistentErrorState( - account.account_id); - if (needs_reauth_before_enable_sync) { -- GetSigninUiDelegate()->ShowReauthUI(profile, account.email, -- /*enable_sync=*/true, access_point, -- existing_account_promo_action); - return; - } - - signin_metrics::LogSigninAccessPointStarted(access_point, - existing_account_promo_action); - signin_metrics::RecordSigninUserActionForAccessPoint(access_point); -- GetSigninUiDelegate()->ShowTurnSyncOnUI( -- profile, access_point, existing_account_promo_action, -- signin_metrics::Reason::kSigninPrimaryAccount, account.account_id, -- TurnSyncOnHelper::SigninAbortedMode::KEEP_ACCOUNT); - #else - NOTREACHED(); - #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) || BUILDFLAG(IS_CHROMEOS_LACROS) -diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn ---- a/chrome/browser/ui/BUILD.gn -+++ b/chrome/browser/ui/BUILD.gn -@@ -3735,12 +3735,6 @@ static_library("ui") { - "webui/signin/signin_ui_error.h", - "webui/signin/signin_utils_desktop.cc", - "webui/signin/signin_utils_desktop.h", -- "webui/signin/turn_sync_on_helper.cc", -- "webui/signin/turn_sync_on_helper.h", -- "webui/signin/turn_sync_on_helper_delegate_impl.cc", -- "webui/signin/turn_sync_on_helper_delegate_impl.h", -- "webui/signin/turn_sync_on_helper_policy_fetch_tracker.cc", -- "webui/signin/turn_sync_on_helper_policy_fetch_tracker.h", - ] - - deps += [ -diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.cc b/chrome/browser/ui/startup/startup_browser_creator_impl.cc ---- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc -+++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc -@@ -411,8 +411,7 @@ StartupBrowserCreatorImpl::DetermineURLsAndLaunch( - - bool welcome_enabled = false; - #if BUILDFLAG(ENABLE_DICE_SUPPORT) -- welcome_enabled = -- welcome::IsEnabled(profile_) && welcome::HasModulesToShow(profile_); -+ welcome_enabled = false; - #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) - - const bool whats_new_enabled = -diff --git a/chrome/browser/ui/startup/startup_tab_provider.cc b/chrome/browser/ui/startup/startup_tab_provider.cc ---- a/chrome/browser/ui/startup/startup_tab_provider.cc -+++ b/chrome/browser/ui/startup/startup_tab_provider.cc -@@ -186,11 +186,6 @@ StartupTabs StartupTabProviderImpl::GetWelcomeBackTabs( - !browser_creator) { - return tabs; - } -- if (browser_creator->welcome_back_page() && -- CanShowWelcome(SyncServiceFactory::IsSyncAllowed(profile), -- profile->IsChild(), signin_util::IsForceSigninEnabled())) { -- tabs.emplace_back(GetWelcomePageUrl(false)); -- } - return tabs; - } - #endif // BUILDFLAG(IS_WIN) -diff --git a/chrome/browser/ui/views/profiles/profile_customization_bubble_view.cc b/chrome/browser/ui/views/profiles/profile_customization_bubble_view.cc ---- a/chrome/browser/ui/views/profiles/profile_customization_bubble_view.cc -+++ b/chrome/browser/ui/views/profiles/profile_customization_bubble_view.cc -@@ -43,7 +43,6 @@ ProfileCustomizationBubbleView* ProfileCustomizationBubbleView::CreateBubble( - // Return value is only used in tests, so it's fine to return nullptr if a - // `ProfileCustomizationBubbleView` was not created. - if (base::FeatureList::IsEnabled(kSyncPromoAfterSigninIntercept)) { -- browser->signin_view_controller()->ShowModalProfileCustomizationDialog(); - return nullptr; - } - -diff --git a/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_controller.cc b/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_controller.cc ---- a/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_controller.cc -+++ b/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_controller.cc -@@ -10,11 +10,9 @@ - #include "chrome/browser/themes/theme_service.h" - #include "chrome/browser/themes/theme_service_factory.h" - #include "chrome/browser/ui/views/profiles/profile_management_utils.h" --#include "chrome/browser/ui/views/profiles/profile_picker_turn_sync_on_delegate.h" - #include "chrome/browser/ui/webui/signin/signin_url_utils.h" - #include "chrome/browser/ui/webui/signin/signin_utils.h" - #include "chrome/browser/ui/webui/signin/sync_confirmation_ui.h" --#include "chrome/browser/ui/webui/signin/turn_sync_on_helper.h" - #include "chrome/common/webui_url_constants.h" - #include "components/signin/public/base/signin_metrics.h" - #include "components/signin/public/identity_manager/account_info.h" -@@ -31,7 +29,6 @@ ProfilePickerSignedInFlowController::ProfilePickerSignedInFlowController( - : host_(host), - profile_(profile), - contents_(std::move(contents)), -- signin_access_point_(signin_access_point), - profile_color_(profile_color) { - DCHECK(profile_); - DCHECK(contents_); -@@ -50,27 +47,6 @@ void ProfilePickerSignedInFlowController::Init() { - DCHECK(!IsInitialized()); - - contents()->SetDelegate(this); -- -- const CoreAccountInfo& account_info = -- IdentityManagerFactory::GetForProfile(profile_)->GetPrimaryAccountInfo( -- signin::ConsentLevel::kSignin); -- DCHECK(!account_info.IsEmpty()) << "A profile with valid (unconsented) " -- "primary account must be passed in."; -- email_ = account_info.email; -- -- base::OnceClosure sync_consent_completed_closure = -- base::BindOnce(&ProfilePickerSignedInFlowController::FinishAndOpenBrowser, -- weak_ptr_factory_.GetWeakPtr(), PostHostClearedCallback()); -- -- // TurnSyncOnHelper deletes itself once done. -- new TurnSyncOnHelper( -- profile_, signin_access_point_, -- signin_metrics::PromoAction::PROMO_ACTION_NO_SIGNIN_PROMO, -- signin_metrics::Reason::kSigninPrimaryAccount, account_info.account_id, -- TurnSyncOnHelper::SigninAbortedMode::KEEP_ACCOUNT, -- std::make_unique( -- weak_ptr_factory_.GetWeakPtr(), profile_), -- std::move(sync_consent_completed_closure)); - } - - void ProfilePickerSignedInFlowController::Cancel() {} -@@ -169,19 +145,6 @@ void ProfilePickerSignedInFlowController:: - signin::SigninChoiceCallback proceed_callback) { - DCHECK(IsInitialized()); - // Initialize the WebUI page once we know it's committed. -- EnterpriseProfileWelcomeUI* enterprise_profile_welcome_ui = -- contents() -- ->GetWebUI() -- ->GetController() -- ->GetAs(); -- -- enterprise_profile_welcome_ui->Initialize( -- /*browser=*/nullptr, type, -- IdentityManagerFactory::GetForProfile(profile_) -- ->FindExtendedAccountInfoByEmailAddress(email_), -- /*profile_creation_required_by_policy=*/false, -- /*show_link_data_option=*/false, GetProfileColor(), -- std::move(proceed_callback)); - } - - bool ProfilePickerSignedInFlowController::IsInitialized() const { -diff --git a/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_controller.h b/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_controller.h ---- a/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_controller.h -+++ b/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_controller.h -@@ -136,8 +136,6 @@ class ProfilePickerSignedInFlowController - // sign-in flow. - std::unique_ptr contents_; - -- const signin_metrics::AccessPoint signin_access_point_; -- - // Set for the profile at the very end to avoid coloring the simple toolbar - // for GAIA sign-in (that uses the ThemeProvider of the current profile). - // absl::nullopt if the profile should use the default theme. -diff --git a/chrome/browser/ui/webui/signin/profile_customization_handler.cc b/chrome/browser/ui/webui/signin/profile_customization_handler.cc ---- a/chrome/browser/ui/webui/signin/profile_customization_handler.cc -+++ b/chrome/browser/ui/webui/signin/profile_customization_handler.cc -@@ -136,6 +136,7 @@ void ProfileCustomizationHandler::HandleDone(const base::Value::List& args) { - DCHECK(!profile_name.empty()); - GetProfileEntry()->SetLocalProfileName(profile_name, - /*is_default_name=*/false); -+#if BUILDFLAG(ENABLE_DICE_SUPPORT) - // Local profile is created at first as ephemeral and this is changed when - // customization is successfully completed. - const GURL& url = web_ui()->GetWebContents()->GetVisibleURL(); -@@ -146,6 +147,7 @@ void ProfileCustomizationHandler::HandleDone(const base::Value::List& args) { - GetProfileEntry()->SetIsEphemeral(false); - } - } -+#endif - - if (completion_callback_) - std::move(completion_callback_).Run(CustomizationResult::kDone); -diff --git a/chrome/browser/ui/webui/signin/profile_customization_ui.cc b/chrome/browser/ui/webui/signin/profile_customization_ui.cc ---- a/chrome/browser/ui/webui/signin/profile_customization_ui.cc -+++ b/chrome/browser/ui/webui/signin/profile_customization_ui.cc -@@ -103,9 +103,11 @@ ProfileCustomizationUI::ProfileCustomizationUI(content::WebUI* web_ui) - "profileCustomizationInDialogDesign", - base::FeatureList::IsEnabled(kSyncPromoAfterSigninIntercept)); - const GURL& url = web_ui->GetWebContents()->GetVisibleURL(); -+#if BUILDFLAG(ENABLE_DICE_SUPPORT) - source->AddBoolean("isLocalProfileCreation", - GetProfileCustomizationStyle(url) == - ProfileCustomizationStyle::kLocalProfileCreation); -+#endif - source->AddString( - "chromeRefresh2023Attribute", - features::IsChromeRefresh2023() ? "chrome-refresh-2023" : ""); -diff --git a/chrome/browser/ui/webui/signin/profile_picker_handler.cc b/chrome/browser/ui/webui/signin/profile_picker_handler.cc ---- a/chrome/browser/ui/webui/signin/profile_picker_handler.cc -+++ b/chrome/browser/ui/webui/signin/profile_picker_handler.cc -@@ -953,6 +953,7 @@ void ProfilePickerHandler::HandleSelectNewAccount( - const base::Value::List& args) { - AllowJavascript(); - CHECK_EQ(1U, args.size()); -+#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(ENABLE_DICE_SUPPORT) - absl::optional profile_color = args[0].GetIfInt(); - #if BUILDFLAG(IS_CHROMEOS_LACROS) - SelectAccountLacrosInternal("", profile_color); -@@ -968,6 +969,7 @@ void ProfilePickerHandler::HandleSelectNewAccount( - #else - NOTERACHED(); - #endif -+#endif - } - - #if BUILDFLAG(IS_CHROMEOS_LACROS) -@@ -1059,9 +1061,6 @@ void ProfilePickerHandler::OnSwitchToProfileCompleteOpenCustomization( - BeginFirstWebContentsProfiling(browser, profile_picked_time_on_startup_); - } - -- browser->signin_view_controller()->ShowModalProfileCustomizationDialog( -- /*is_local_profile_creation=*/true); -- - RecordProfilePickerAction(ProfilePickerAction::kLaunchNewProfile); - ProfilePicker::Hide(); - } -diff --git a/components/signin/public/android/BUILD.gn b/components/signin/public/android/BUILD.gn ---- a/components/signin/public/android/BUILD.gn -+++ b/components/signin/public/android/BUILD.gn -@@ -75,7 +75,6 @@ generate_jni("jni_headers") { - "java/src/org/chromium/components/signin/base/CoreAccountInfo.java", - "java/src/org/chromium/components/signin/base/GoogleServiceAuthError.java", - "java/src/org/chromium/components/signin/identitymanager/AccountTrackerService.java", -- "java/src/org/chromium/components/signin/identitymanager/IdentityManager.java", - "java/src/org/chromium/components/signin/identitymanager/IdentityMutator.java", - "java/src/org/chromium/components/signin/identitymanager/PrimaryAccountChangeEvent.java", - "java/src/org/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate.java", -diff --git a/components/signin/public/android/java/src/org/chromium/components/signin/identitymanager/IdentityManager.java b/components/signin/public/android/java/src/org/chromium/components/signin/identitymanager/IdentityManager.java ---- a/components/signin/public/android/java/src/org/chromium/components/signin/identitymanager/IdentityManager.java -+++ b/components/signin/public/android/java/src/org/chromium/components/signin/identitymanager/IdentityManager.java -@@ -153,7 +153,7 @@ public class IdentityManager { - */ - @VisibleForTesting - public CoreAccountInfo[] getAccountsWithRefreshTokens() { -- return IdentityManagerJni.get().getAccountsWithRefreshTokens(mNativeIdentityManager); -+ return new CoreAccountInfo[] {}; - } - - /** -@@ -164,7 +164,7 @@ public class IdentityManager { - * @param consentLevel {@link ConsentLevel} necessary for the caller. - */ - public @Nullable CoreAccountInfo getPrimaryAccountInfo(@ConsentLevel int consentLevel) { -- return IdentityManagerJni.get().getPrimaryAccountInfo(mNativeIdentityManager, consentLevel); -+ return null; - } - - /** -@@ -172,8 +172,7 @@ public class IdentityManager { - * cannot be found, return a null value. - */ - public @Nullable AccountInfo findExtendedAccountInfoByEmailAddress(String email) { -- return IdentityManagerJni.get().findExtendedAccountInfoByEmailAddress( -- mNativeIdentityManager, email); -+ return null; - } - - /** -@@ -181,10 +180,6 @@ public class IdentityManager { - * list of {@link CoreAccountInfo} if the existing ones are stale. - */ - public void refreshAccountInfoIfStale(List accountInfos) { -- for (CoreAccountInfo accountInfo : accountInfos) { -- IdentityManagerJni.get().refreshAccountInfoIfStale( -- mNativeIdentityManager, accountInfo.getId()); -- } - } - - /** -@@ -217,14 +212,4 @@ public class IdentityManager { - public void setRefreshTokenUpdateObserverForTests(Callback callback) { - mRefreshTokenUpdateObserver = callback; - } -- -- @NativeMethods -- public interface Natives { -- @Nullable -- CoreAccountInfo getPrimaryAccountInfo(long nativeIdentityManager, int consentLevel); -- @Nullable -- AccountInfo findExtendedAccountInfoByEmailAddress(long nativeIdentityManager, String email); -- CoreAccountInfo[] getAccountsWithRefreshTokens(long nativeIdentityManager); -- void refreshAccountInfoIfStale(long nativeIdentityManager, CoreAccountId coreAccountId); -- } - } -diff --git a/components/signin/public/identity_manager/identity_manager.cc b/components/signin/public/identity_manager/identity_manager.cc ---- a/components/signin/public/identity_manager/identity_manager.cc -+++ b/components/signin/public/identity_manager/identity_manager.cc -@@ -30,7 +30,6 @@ - #include "base/android/jni_string.h" - #include "base/metrics/histogram_functions.h" - #include "components/signin/internal/identity_manager/profile_oauth2_token_service_delegate.h" --#include "components/signin/public/android/jni_headers/IdentityManager_jni.h" - #endif - - #if BUILDFLAG(ENABLE_DICE_SUPPORT) -@@ -44,179 +43,31 @@ - - namespace signin { - --namespace { -- --#if BUILDFLAG(IS_CHROMEOS_LACROS) -- --void SetPrimaryAccount(IdentityManager* identity_manager, -- AccountTrackerService* account_tracker_service, -- SigninClient* signin_client, -- const account_manager::Account& device_account, -- signin::Tribool device_account_is_child, -- ConsentLevel requested_level) { -- if (device_account.key.account_type() != account_manager::AccountType::kGaia) -- return; -- -- // An account can be set as the Primary Account only if it exists in -- // `AccountTrackerService`. However, for the first run, when accounts have not -- // yet been received from `AccountManagerFacade`, entities can ask about the -- // Primary Account and expect it to be available pretty early. Manually seed -- // the account in `AccountTrackerService` to get around this issue. -- const CoreAccountId device_account_id = -- account_tracker_service->SeedAccountInfo( -- /*gaia=*/device_account.key.id(), device_account.raw_email); -- -- const CoreAccountId primary_account_id = -- identity_manager->GetPrimaryAccountId(requested_level); -- DCHECK(signin_client); -- -- if (primary_account_id == device_account_id) { -- identity_manager->GetAccountsMutator()->UpdateAccountInfo( -- device_account_id, device_account_is_child, signin::Tribool::kUnknown); -- -- return; // Already correct primary account set, nothing to do. -- } -- -- if (!primary_account_id.empty()) { -- // Different primary account found, have to clear it first. -- // TODO(https://crbug.com/1223364): Replace this if with a CHECK after all -- // the existing users have been migrated. -- identity_manager->GetPrimaryAccountMutator()->ClearPrimaryAccount( -- signin_metrics::ProfileSignout::kAccountRemovedFromDevice, -- signin_metrics::SignoutDelete::kIgnoreMetric); -- } -- -- PrimaryAccountMutator::PrimaryAccountError error = -- identity_manager->GetPrimaryAccountMutator()->SetPrimaryAccount( -- device_account_id, requested_level); -- identity_manager->GetAccountsMutator()->UpdateAccountInfo( -- device_account_id, device_account_is_child, signin::Tribool::kUnknown); -- CHECK_EQ(PrimaryAccountMutator::PrimaryAccountError::kNoError, error) -- << "SetPrimaryAccount error: " << static_cast(error); -- CHECK(identity_manager->HasPrimaryAccount(requested_level)); -- CHECK_EQ(identity_manager->GetPrimaryAccountInfo(requested_level).gaia, -- device_account.key.id()); --} --#endif -- --} // namespace -- - IdentityManager::InitParameters::InitParameters() = default; - - IdentityManager::InitParameters::InitParameters(InitParameters&&) = default; - - IdentityManager::InitParameters::~InitParameters() = default; - --IdentityManager::IdentityManager(IdentityManager::InitParameters&& parameters) -- : account_tracker_service_(std::move(parameters.account_tracker_service)), -- token_service_(std::move(parameters.token_service)), -- gaia_cookie_manager_service_( -- std::move(parameters.gaia_cookie_manager_service)), -- primary_account_manager_(std::move(parameters.primary_account_manager)), -- account_fetcher_service_(std::move(parameters.account_fetcher_service)), --#if BUILDFLAG(IS_CHROMEOS_LACROS) -- signin_client_(parameters.signin_client), --#endif --#if BUILDFLAG(IS_CHROMEOS) -- account_manager_facade_(parameters.account_manager_facade), --#endif -- identity_mutator_(std::move(parameters.primary_account_mutator), -- std::move(parameters.accounts_mutator), -- std::move(parameters.accounts_cookie_mutator), -- std::move(parameters.device_accounts_synchronizer)), -- diagnostics_provider_(std::move(parameters.diagnostics_provider)), -- account_consistency_(parameters.account_consistency) { -- DCHECK(account_fetcher_service_); -- DCHECK(diagnostics_provider_); -- -- primary_account_manager_observation_.Observe(primary_account_manager_.get()); -- token_service_observation_.Observe(token_service_.get()); -- token_service_->AddAccessTokenDiagnosticsObserver(this); -- -- // IdentityManager owns the ATS, GCMS and PO2TS instances and will outlive -- // them, so base::Unretained is safe. -- account_tracker_service_->SetOnAccountUpdatedCallback(base::BindRepeating( -- &IdentityManager::OnAccountUpdated, base::Unretained(this))); -- account_tracker_service_->SetOnAccountRemovedCallback(base::BindRepeating( -- &IdentityManager::OnAccountRemoved, base::Unretained(this))); -- gaia_cookie_manager_service_->SetGaiaAccountsInCookieUpdatedCallback( -- base::BindRepeating(&IdentityManager::OnGaiaAccountsInCookieUpdated, -- base::Unretained(this))); -- gaia_cookie_manager_service_->SetGaiaCookieDeletedByUserActionCallback( -- base::BindRepeating(&IdentityManager::OnGaiaCookieDeletedByUserAction, -- base::Unretained(this))); -- token_service_->SetRefreshTokenAvailableFromSourceCallback( -- base::BindRepeating(&IdentityManager::OnRefreshTokenAvailableFromSource, -- base::Unretained(this))); -- token_service_->SetRefreshTokenRevokedFromSourceCallback( -- base::BindRepeating(&IdentityManager::OnRefreshTokenRevokedFromSource, -- base::Unretained(this))); -- --#if BUILDFLAG(IS_ANDROID) -- java_identity_manager_ = Java_IdentityManager_create( -- base::android::AttachCurrentThread(), reinterpret_cast(this), -- token_service_->GetDelegate()->GetJavaObject()); --#endif -- --#if BUILDFLAG(IS_CHROMEOS_LACROS) -- // We need to set the Primary Account in Lacros. In Ash, this happens in -- // `UserSessionManager::InitProfilePreferences`, before anyone starts using -- // Profile / KeyedServices - but with the availability of IdentityManager. We -- // don't have such a place in Lacros - which guarantees that the Primary -- // Account will be available on startup - just like Ash. -- absl::optional initial_account = -- signin_client_->GetInitialPrimaryAccount(); -- if (initial_account.has_value()) { -- const absl::optional& initial_account_is_child = -- signin_client_->IsInitialPrimaryAccountChild(); -- CHECK(initial_account_is_child.has_value()); -- SetPrimaryAccount(this, account_tracker_service_.get(), signin_client_, -- initial_account.value(), -- initial_account_is_child.value() -- ? signin::Tribool::kTrue -- : signin::Tribool::kFalse, -- ConsentLevel::kSignin); -- } --#endif -+IdentityManager::IdentityManager(IdentityManager::InitParameters&& parameters) { - } - - IdentityManager::~IdentityManager() { --#if BUILDFLAG(IS_ANDROID) -- if (java_identity_manager_) -- Java_IdentityManager_destroy(base::android::AttachCurrentThread(), -- java_identity_manager_); --#endif - } - - void IdentityManager::Shutdown() { -- for (auto& observer : observer_list_) -- observer.OnIdentityManagerShutdown(this); -- -- // It is no longer safe to use the SigninClient beyond this point, everything -- // depending on it must be destroyed. -- token_service_->RemoveAccessTokenDiagnosticsObserver(this); -- token_service_observation_.Reset(); -- primary_account_manager_observation_.Reset(); -- -- account_fetcher_service_.reset(); -- gaia_cookie_manager_service_.reset(); -- primary_account_manager_.reset(); -- token_service_.reset(); -- account_tracker_service_.reset(); - } - - void IdentityManager::AddObserver(Observer* observer) { -- observer_list_.AddObserver(observer); - } - - void IdentityManager::RemoveObserver(Observer* observer) { -- observer_list_.RemoveObserver(observer); - } - - // TODO(862619) change return type to absl::optional - CoreAccountInfo IdentityManager::GetPrimaryAccountInfo( - ConsentLevel consent) const { -- return primary_account_manager_->GetPrimaryAccountInfo(consent); -+ return CoreAccountInfo(); - } - - CoreAccountId IdentityManager::GetPrimaryAccountId(ConsentLevel consent) const { -@@ -224,7 +75,7 @@ CoreAccountId IdentityManager::GetPrimaryAccountId(ConsentLevel consent) const { - } - - bool IdentityManager::HasPrimaryAccount(ConsentLevel consent) const { -- return primary_account_manager_->HasPrimaryAccount(consent); -+ return false; - } - - std::unique_ptr -@@ -234,9 +85,7 @@ IdentityManager::CreateAccessTokenFetcherForAccount( - const ScopeSet& scopes, - AccessTokenFetcher::TokenCallback callback, - AccessTokenFetcher::Mode mode) { -- return std::make_unique( -- account_id, oauth_consumer_name, token_service_.get(), -- primary_account_manager_.get(), scopes, std::move(callback), mode); -+ return nullptr; - } - - std::unique_ptr -@@ -247,161 +96,108 @@ IdentityManager::CreateAccessTokenFetcherForAccount( - const ScopeSet& scopes, - AccessTokenFetcher::TokenCallback callback, - AccessTokenFetcher::Mode mode) { -- return std::make_unique( -- account_id, oauth_consumer_name, token_service_.get(), -- primary_account_manager_.get(), url_loader_factory, scopes, -- std::move(callback), mode); -+ return nullptr; - } - - void IdentityManager::RemoveAccessTokenFromCache( - const CoreAccountId& account_id, - const ScopeSet& scopes, - const std::string& access_token) { -- token_service_->InvalidateAccessToken(account_id, scopes, access_token); - } - - std::vector IdentityManager::GetAccountsWithRefreshTokens() - const { -- std::vector account_ids_with_tokens = -- token_service_->GetAccounts(); -- - std::vector accounts; -- accounts.reserve(account_ids_with_tokens.size()); -- -- for (const CoreAccountId& account_id : account_ids_with_tokens) { -- accounts.push_back(GetAccountInfoForAccountWithRefreshToken(account_id)); -- } -- - return accounts; - } - - std::vector - IdentityManager::GetExtendedAccountInfoForAccountsWithRefreshToken() const { -- std::vector account_ids_with_tokens = -- token_service_->GetAccounts(); -- -- std::vector accounts; -- accounts.reserve(account_ids_with_tokens.size()); -- -- for (const CoreAccountId& account_id : account_ids_with_tokens) { -- accounts.push_back(GetAccountInfoForAccountWithRefreshToken(account_id)); -- } -- -- return accounts; -+ return std::vector(); - } - - bool IdentityManager::HasPrimaryAccountWithRefreshToken( - ConsentLevel consent_level) const { -- return HasAccountWithRefreshToken(GetPrimaryAccountId(consent_level)); -+ return false; - } - - bool IdentityManager::HasAccountWithRefreshToken( - const CoreAccountId& account_id) const { -- return token_service_->RefreshTokenIsAvailable(account_id); -+ return false; - } - - bool IdentityManager::AreRefreshTokensLoaded() const { -- return token_service_->AreAllCredentialsLoaded(); -+ return false; - } - - bool IdentityManager::HasAccountWithRefreshTokenInPersistentErrorState( - const CoreAccountId& account_id) const { -- return GetErrorStateOfRefreshTokenForAccount(account_id).IsPersistentError(); -+ return true; - } - - GoogleServiceAuthError IdentityManager::GetErrorStateOfRefreshTokenForAccount( - const CoreAccountId& account_id) const { -- return token_service_->GetAuthError(account_id); -+ return GoogleServiceAuthError(GoogleServiceAuthError::USER_NOT_SIGNED_UP); - } - - AccountInfo IdentityManager::FindExtendedAccountInfo( - const CoreAccountInfo& account_info) const { -- return FindExtendedAccountInfoByAccountId(account_info.account_id); -+ return AccountInfo(); - } - - AccountInfo IdentityManager::FindExtendedAccountInfoByAccountId( - const CoreAccountId& account_id) const { -- if (!HasAccountWithRefreshToken(account_id)) -- return AccountInfo(); -- -- // AccountTrackerService returns an empty AccountInfo if the account is not -- // found. -- return account_tracker_service_->GetAccountInfo(account_id); -+ return AccountInfo(); - } - - AccountInfo IdentityManager::FindExtendedAccountInfoByEmailAddress( - const std::string& email_address) const { -- AccountInfo account_info = -- account_tracker_service_->FindAccountInfoByEmail(email_address); -- // AccountTrackerService always returns an AccountInfo, even on failure. In -- // case of failure, the AccountInfo will be unpopulated, thus we should not -- // be able to find a valid refresh token. -- return HasAccountWithRefreshToken(account_info.account_id) ? account_info -- : AccountInfo(); -+ return AccountInfo(); - } - - AccountInfo IdentityManager::FindExtendedAccountInfoByGaiaId( - const std::string& gaia_id) const { -- AccountInfo account_info = -- account_tracker_service_->FindAccountInfoByGaiaId(gaia_id); -- // AccountTrackerService always returns an AccountInfo, even on failure. In -- // case of failure, the AccountInfo will be unpopulated, thus we should not -- // be able to find a valid refresh token. -- return HasAccountWithRefreshToken(account_info.account_id) ? account_info -- : AccountInfo(); -+ return AccountInfo(); - } - - AccountsInCookieJarInfo IdentityManager::GetAccountsInCookieJar() const { - std::vector signed_in_accounts; - std::vector signed_out_accounts; -- bool accounts_are_fresh = gaia_cookie_manager_service_->ListAccounts( -- &signed_in_accounts, &signed_out_accounts); -+ bool accounts_are_fresh = false; - - return AccountsInCookieJarInfo(accounts_are_fresh, signed_in_accounts, - signed_out_accounts); - } - - PrimaryAccountMutator* IdentityManager::GetPrimaryAccountMutator() { -- return identity_mutator_.GetPrimaryAccountMutator(); -+ return nullptr; - } - - AccountsMutator* IdentityManager::GetAccountsMutator() { -- return identity_mutator_.GetAccountsMutator(); -+ return nullptr; - } - - AccountsCookieMutator* IdentityManager::GetAccountsCookieMutator() { -- return identity_mutator_.GetAccountsCookieMutator(); -+ return nullptr; - } - - DeviceAccountsSynchronizer* IdentityManager::GetDeviceAccountsSynchronizer() { -- return identity_mutator_.GetDeviceAccountsSynchronizer(); -+ return nullptr; - } - - void IdentityManager::AddDiagnosticsObserver(DiagnosticsObserver* observer) { -- diagnostics_observation_list_.AddObserver(observer); - } - - void IdentityManager::RemoveDiagnosticsObserver(DiagnosticsObserver* observer) { -- diagnostics_observation_list_.RemoveObserver(observer); - } - - void IdentityManager::OnNetworkInitialized() { -- gaia_cookie_manager_service_->InitCookieListener(); -- account_fetcher_service_->OnNetworkInitialized(); --} -- --#if BUILDFLAG(IS_CHROMEOS_ASH) --IdentityManager::AccountIdMigrationState --IdentityManager::GetAccountIdMigrationState() const { -- return static_cast( -- account_tracker_service_->GetMigrationState()); - } --#endif - - CoreAccountId IdentityManager::PickAccountIdForAccount( - const std::string& gaia, - const std::string& email) const { -- return account_tracker_service_->PickAccountIdForAccount(gaia, email); -+ return CoreAccountId(); - } - - // static -@@ -419,235 +215,72 @@ void IdentityManager::RegisterProfilePrefs(PrefRegistrySimple* registry) { - } - - DiagnosticsProvider* IdentityManager::GetDiagnosticsProvider() { -- return diagnostics_provider_.get(); -+ return nullptr; - } - --#if BUILDFLAG(IS_ANDROID) --base::android::ScopedJavaLocalRef --IdentityManager::LegacyGetAccountTrackerServiceJavaObject() { -- return account_tracker_service_->GetJavaObject(); --} -- --base::android::ScopedJavaLocalRef IdentityManager::GetJavaObject() { -- DCHECK(java_identity_manager_); -- return base::android::ScopedJavaLocalRef(java_identity_manager_); --} -- --base::android::ScopedJavaLocalRef --IdentityManager::GetIdentityMutatorJavaObject() { -- return base::android::ScopedJavaLocalRef( -- identity_mutator_.GetJavaObject()); --} -- --void IdentityManager::RefreshAccountInfoIfStale( -- const CoreAccountId& account_id) { -- DCHECK(HasAccountWithRefreshToken(account_id)); -- AccountInfo account_info = -- account_tracker_service_->GetAccountInfo(account_id); -- if (account_info.account_image.IsEmpty()) { -- account_info_fetch_start_times_[account_id] = base::TimeTicks::Now(); -- } -- account_fetcher_service_->RefreshAccountInfoIfStale(account_id); --} -- --void IdentityManager::RefreshAccountInfoIfStale( -- JNIEnv* env, -- const base::android::JavaParamRef& j_core_account_id) { -- RefreshAccountInfoIfStale( -- ConvertFromJavaCoreAccountId(env, j_core_account_id)); --} -- --base::android::ScopedJavaLocalRef --IdentityManager::GetPrimaryAccountInfo(JNIEnv* env, jint consent_level) const { -- CoreAccountInfo account_info = -- GetPrimaryAccountInfo(static_cast(consent_level)); -- if (account_info.IsEmpty()) -- return nullptr; -- return ConvertToJavaCoreAccountInfo(env, account_info); --} -- --base::android::ScopedJavaLocalRef --IdentityManager::FindExtendedAccountInfoByEmailAddress( -- JNIEnv* env, -- const base::android::JavaParamRef& j_email) const { -- AccountInfo account_info = FindExtendedAccountInfoByEmailAddress( -- base::android::ConvertJavaStringToUTF8(env, j_email)); -- if (account_info.IsEmpty()) -- return nullptr; -- return ConvertToJavaAccountInfo(env, account_info); --} -- --base::android::ScopedJavaLocalRef --IdentityManager::GetAccountsWithRefreshTokens(JNIEnv* env) const { -- std::vector accounts = GetAccountsWithRefreshTokens(); -- -- base::android::ScopedJavaLocalRef coreaccountinfo_clazz = -- base::android::GetClass( -- env, "org/chromium/components/signin/base/CoreAccountInfo"); -- base::android::ScopedJavaLocalRef array( -- env, env->NewObjectArray(accounts.size(), coreaccountinfo_clazz.obj(), -- nullptr)); -- base::android::CheckException(env); -- -- for (size_t i = 0; i < accounts.size(); ++i) { -- base::android::ScopedJavaLocalRef item = -- ConvertToJavaCoreAccountInfo(env, accounts[i]); -- env->SetObjectArrayElement(array.obj(), i, item.obj()); -- } -- return array; --} --#endif -- - AccountInfo IdentityManager::FindExtendedPrimaryAccountInfo( - ConsentLevel consent_level) { -- CoreAccountId account_id = GetPrimaryAccountId(consent_level); -- return account_tracker_service_->GetAccountInfo(account_id); -+ return AccountInfo(); - } - - PrimaryAccountManager* IdentityManager::GetPrimaryAccountManager() const { -- return primary_account_manager_.get(); -+ return nullptr; - } - - ProfileOAuth2TokenService* IdentityManager::GetTokenService() const { -- return token_service_.get(); -+ return nullptr; - } - - AccountTrackerService* IdentityManager::GetAccountTrackerService() const { -- return account_tracker_service_.get(); -+ return nullptr; - } - - AccountFetcherService* IdentityManager::GetAccountFetcherService() const { -- return account_fetcher_service_.get(); -+ return nullptr; - } - - GaiaCookieManagerService* IdentityManager::GetGaiaCookieManagerService() const { -- return gaia_cookie_manager_service_.get(); --} -- --#if BUILDFLAG(IS_CHROMEOS) --account_manager::AccountManagerFacade* --IdentityManager::GetAccountManagerFacade() const { -- return account_manager_facade_; -+ return nullptr; - } --#endif - - AccountInfo IdentityManager::GetAccountInfoForAccountWithRefreshToken( - const CoreAccountId& account_id) const { -- // TODO(https://crbug.com/919793): This invariant is not currently possible to -- // enforce on Android due to the underlying relationship between -- // O2TS::GetAccounts(), O2TS::RefreshTokenIsAvailable(), and -- // O2TS::Observer::OnRefreshTokenAvailable(). --#if !BUILDFLAG(IS_ANDROID) -- DCHECK(HasAccountWithRefreshToken(account_id)); --#endif -- -- AccountInfo account_info = -- account_tracker_service_->GetAccountInfo(account_id); -- DCHECK(!account_info.IsEmpty()); -- -- return account_info; -+ return AccountInfo(); - } - - void IdentityManager::OnPrimaryAccountChanged( - const PrimaryAccountChangeEvent& event_details) { -- CoreAccountId event_primary_account_id = -- event_details.GetCurrentState().primary_account.account_id; -- DCHECK_EQ(event_primary_account_id, -- GetPrimaryAccountId(event_details.GetCurrentState().consent_level)); -- for (auto& observer : observer_list_) { -- observer.OnPrimaryAccountChanged(event_details); -- // Ensure that |observer| did not change the primary account as otherwise -- // |event_details| would not longer be correct. -- DCHECK_EQ( -- event_primary_account_id, -- GetPrimaryAccountId(event_details.GetCurrentState().consent_level)); -- } -- --#if BUILDFLAG(IS_ANDROID) -- if (java_identity_manager_) { -- JNIEnv* env = base::android::AttachCurrentThread(); -- Java_IdentityManager_onPrimaryAccountChanged( -- env, java_identity_manager_, -- ConvertToJavaPrimaryAccountChangeEvent(env, event_details)); -- } --#endif - } - - void IdentityManager::OnRefreshTokenAvailable(const CoreAccountId& account_id) { -- CoreAccountInfo account_info = -- GetAccountInfoForAccountWithRefreshToken(account_id); -- -- for (auto& observer : observer_list_) { -- observer.OnRefreshTokenUpdatedForAccount(account_info); -- } --#if BUILDFLAG(IS_ANDROID) -- if (java_identity_manager_) { -- JNIEnv* env = base::android::AttachCurrentThread(); -- Java_IdentityManager_onRefreshTokenUpdatedForAccount( -- env, java_identity_manager_, -- ConvertToJavaCoreAccountInfo(env, account_info)); -- } --#endif - } - - void IdentityManager::OnRefreshTokenRevoked(const CoreAccountId& account_id) { -- for (auto& observer : observer_list_) { -- observer.OnRefreshTokenRemovedForAccount(account_id); -- } - } - - void IdentityManager::OnRefreshTokensLoaded() { -- for (auto& observer : observer_list_) -- observer.OnRefreshTokensLoaded(); - } - - void IdentityManager::OnEndBatchChanges() { -- for (auto& observer : observer_list_) -- observer.OnEndBatchOfRefreshTokenStateChanges(); - } - - void IdentityManager::OnAuthErrorChanged( - const CoreAccountId& account_id, - const GoogleServiceAuthError& auth_error) { -- CoreAccountInfo account_info = -- GetAccountInfoForAccountWithRefreshToken(account_id); -- -- for (auto& observer : observer_list_) -- observer.OnErrorStateOfRefreshTokenUpdatedForAccount(account_info, -- auth_error); - } - - void IdentityManager::OnGaiaAccountsInCookieUpdated( - const std::vector& signed_in_accounts, - const std::vector& signed_out_accounts, - const GoogleServiceAuthError& error) { -- AccountsInCookieJarInfo accounts_in_cookie_jar_info( -- error == GoogleServiceAuthError::AuthErrorNone(), signed_in_accounts, -- signed_out_accounts); -- -- for (auto& observer : observer_list_) { -- observer.OnAccountsInCookieUpdated(accounts_in_cookie_jar_info, error); -- } - } - - void IdentityManager::OnGaiaCookieDeletedByUserAction() { -- for (auto& observer : observer_list_) { -- observer.OnAccountsCookieDeletedByUserAction(); -- } --#if BUILDFLAG(IS_ANDROID) -- if (java_identity_manager_) { -- Java_IdentityManager_onAccountsCookieDeletedByUserAction( -- base::android::AttachCurrentThread(), java_identity_manager_); -- } --#endif - } - - void IdentityManager::OnAccessTokenRequested(const CoreAccountId& account_id, - const std::string& consumer_id, - const ScopeSet& scopes) { -- for (auto& observer : diagnostics_observation_list_) { -- observer.OnAccessTokenRequested(account_id, consumer_id, scopes); -- } - } - - void IdentityManager::OnFetchAccessTokenComplete( -@@ -656,65 +289,27 @@ void IdentityManager::OnFetchAccessTokenComplete( - const ScopeSet& scopes, - GoogleServiceAuthError error, - base::Time expiration_time) { -- for (auto& observer : diagnostics_observation_list_) -- observer.OnAccessTokenRequestCompleted(account_id, consumer_id, scopes, -- error, expiration_time); - } - - void IdentityManager::OnAccessTokenRemoved(const CoreAccountId& account_id, - const ScopeSet& scopes) { -- for (auto& observer : diagnostics_observation_list_) -- observer.OnAccessTokenRemovedFromCache(account_id, scopes); - } - - void IdentityManager::OnRefreshTokenAvailableFromSource( - const CoreAccountId& account_id, - bool is_refresh_token_valid, - const std::string& source) { -- for (auto& observer : diagnostics_observation_list_) -- observer.OnRefreshTokenUpdatedForAccountFromSource( -- account_id, is_refresh_token_valid, source); - } - - void IdentityManager::OnRefreshTokenRevokedFromSource( - const CoreAccountId& account_id, - const std::string& source) { -- for (auto& observer : diagnostics_observation_list_) -- observer.OnRefreshTokenRemovedForAccountFromSource(account_id, source); - } - - void IdentityManager::OnAccountUpdated(const AccountInfo& info) { -- if (HasPrimaryAccount(signin::ConsentLevel::kSignin)) { -- const CoreAccountId primary_account_id = -- GetPrimaryAccountId(ConsentLevel::kSignin); -- if (primary_account_id == info.account_id) { -- primary_account_manager_->UpdatePrimaryAccountInfo(); -- } -- } -- -- for (auto& observer : observer_list_) { -- observer.OnExtendedAccountInfoUpdated(info); -- } --#if BUILDFLAG(IS_ANDROID) -- if (java_identity_manager_) { -- if (account_info_fetch_start_times_.count(info.account_id) && -- !info.account_image.IsEmpty()) { -- base::UmaHistogramTimes( -- "Signin.AndroidAccountInfoFetchTime", -- base::TimeTicks::Now() - -- account_info_fetch_start_times_[info.account_id]); -- account_info_fetch_start_times_.erase(info.account_id); -- } -- JNIEnv* env = base::android::AttachCurrentThread(); -- Java_IdentityManager_onExtendedAccountInfoUpdated( -- env, java_identity_manager_, ConvertToJavaAccountInfo(env, info)); -- } --#endif - } - - void IdentityManager::OnAccountRemoved(const AccountInfo& info) { -- for (auto& observer : observer_list_) -- observer.OnExtendedAccountInfoRemoved(info); - } - - } // namespace signin -diff --git a/components/signin/public/identity_manager/identity_manager.h b/components/signin/public/identity_manager/identity_manager.h ---- a/components/signin/public/identity_manager/identity_manager.h -+++ b/components/signin/public/identity_manager/identity_manager.h -@@ -415,7 +415,7 @@ class IdentityManager : public KeyedService, - - // Returns account consistency method for this profile. - AccountConsistencyMethod GetAccountConsistency() { -- return account_consistency_; -+ return AccountConsistencyMethod::kDisabled; - } - - #if BUILDFLAG(IS_ANDROID) -@@ -659,51 +659,6 @@ class IdentityManager : public KeyedService, - // AccountTrackerService callbacks: - void OnAccountUpdated(const AccountInfo& info); - void OnAccountRemoved(const AccountInfo& info); -- -- // Backing signin classes. -- std::unique_ptr account_tracker_service_; -- std::unique_ptr token_service_; -- std::unique_ptr gaia_cookie_manager_service_; -- std::unique_ptr primary_account_manager_; -- std::unique_ptr account_fetcher_service_; --#if BUILDFLAG(IS_CHROMEOS_LACROS) -- const raw_ptr signin_client_; --#endif --#if BUILDFLAG(IS_CHROMEOS) -- const raw_ptr account_manager_facade_; --#endif -- -- IdentityMutator identity_mutator_; -- -- // DiagnosticsProvider instance. -- std::unique_ptr diagnostics_provider_; -- -- // Scoped observers. -- base::ScopedObservation -- primary_account_manager_observation_{this}; -- base::ScopedObservation -- token_service_observation_{this}; -- -- // Lists of observers. -- // Makes sure lists are empty on destruction. -- base::ObserverList::Unchecked observer_list_; -- base::ObserverList::Unchecked -- diagnostics_observation_list_; -- -- AccountConsistencyMethod account_consistency_ = -- AccountConsistencyMethod::kDisabled; -- --#if BUILDFLAG(IS_ANDROID) -- // Java-side IdentityManager object. -- base::android::ScopedJavaGlobalRef java_identity_manager_; -- -- // CoreAccountId and the corresponding fetch start time, this is only -- // used to record account information fetch duration. -- base::flat_map -- account_info_fetch_start_times_; --#endif - }; - - } // namespace signin -diff --git a/components/signin/public/identity_manager/identity_manager_builder.cc b/components/signin/public/identity_manager/identity_manager_builder.cc ---- a/components/signin/public/identity_manager/identity_manager_builder.cc -+++ b/components/signin/public/identity_manager/identity_manager_builder.cc -@@ -105,6 +105,9 @@ IdentityManagerBuildParams::~IdentityManagerBuildParams() = default; - - IdentityManager::InitParameters BuildIdentityManagerInitParameters( - IdentityManagerBuildParams* params) { -+ IdentityManager::InitParameters empty_init_params; -+ if ((true)) return empty_init_params; -+ - std::unique_ptr account_tracker_service = - BuildAccountTrackerService(params->pref_service, params->profile_path); - --- -2.25.1 diff --git a/build/patches/00WIN-Fix-windows-build.patch b/build/patches/00WIN-Fix-windows-build.patch deleted file mode 100644 index 85defd24..00000000 --- a/build/patches/00WIN-Fix-windows-build.patch +++ /dev/null @@ -1,238 +0,0 @@ -From: uazo -Date: Thu, 13 Oct 2022 10:34:52 +0000 -Subject: WIN 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 | 14 +++----- - chrome/browser/ui/webui/intro/intro_ui.cc | 9 ------ - chrome/browser/updater/BUILD.gn | 9 ------ - .../browser/updater/browser_updater_client.cc | 32 +------------------ - chrome/test/data/webui/intro/BUILD.gn | 1 - - 8 files changed, 10 insertions(+), 61 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 -+++ b/chrome/browser/browser_process_platform_part_win.cc -@@ -5,12 +5,15 @@ - #include "chrome/browser/browser_process_platform_part_win.h" - - #include "chrome/browser/active_use_util.h" -+#include "chrome/install_static/buildflags.h" - - BrowserProcessPlatformPart::BrowserProcessPlatformPart() = default; - BrowserProcessPlatformPart::~BrowserProcessPlatformPart() = default; - - void BrowserProcessPlatformPart::PlatformSpecificCommandLineProcessing( - const base::CommandLine& command_line) { -+#if BUILDFLAG(USE_GOOGLE_UPDATE_INTEGRATION) - if (!did_run_updater_ && ShouldRecordActiveUse(command_line)) - did_run_updater_.emplace(); -+#endif - } -diff --git a/chrome/browser/devtools/devtools_window.cc b/chrome/browser/devtools/devtools_window.cc ---- a/chrome/browser/devtools/devtools_window.cc -+++ b/chrome/browser/devtools/devtools_window.cc -@@ -80,6 +80,7 @@ - #include "ui/events/keycodes/dom/keycode_converter.h" - #include "ui/events/keycodes/keyboard_code_conversion.h" - #include "ui/events/keycodes/keyboard_codes.h" -+#include "net/cert/x509_certificate.h" - - // This should be after all other #includes. - #if defined(_WINDOWS_) // Detect whether windows.h was included. -diff --git a/chrome/browser/ui/profile_picker.cc b/chrome/browser/ui/profile_picker.cc ---- a/chrome/browser/ui/profile_picker.cc -+++ b/chrome/browser/ui/profile_picker.cc -@@ -103,7 +103,7 @@ ProfilePicker::Params ProfilePicker::Params::ForFirstRun( - #endif - - Params params( --#if BUILDFLAG(ENABLE_DICE_SUPPORT) -+#if (true) // BUILDFLAG(ENABLE_DICE_SUPPORT) - EntryPoint::kFirstRun, - #elif BUILDFLAG(IS_CHROMEOS_LACROS) - EntryPoint::kLacrosPrimaryProfileFirstRun, -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 -@@ -43,6 +43,7 @@ - - namespace { - bool IsFirstRunEligibleProfile(Profile* profile) { -+ if ((true)) return false; - if (profile->IsOffTheRecord()) { - return false; - } -@@ -70,6 +71,7 @@ bool IsFirstRunEligibleProfile(Profile* profile) { - } - - bool IsFirstRunEligibleProcess() { -+ if ((true)) return false; - #if !BUILDFLAG(IS_CHROMEOS_LACROS) - // On Lacros we want to run the FRE beyond the strict first run as defined by - // `IsChromeFirstRun()` for a few reasons: -@@ -166,10 +168,7 @@ enum class FinishedReason { - }; - - void SetFirstRunFinished(FinishedReason reason) { -- PrefService* local_state = g_browser_process->local_state(); -- local_state->SetBoolean(prefs::kFirstRunFinished, true); - base::UmaHistogramEnumeration("ProfilePicker.FirstRun.FinishReason", reason); -- - #if BUILDFLAG(IS_CHROMEOS_LACROS) - absl::optional outcome; - switch (reason) { -@@ -196,9 +195,7 @@ void SetFirstRunFinished(FinishedReason reason) { - // with it, or if for some other reason (e.g. policy or some other browser - // state) we determine that we should not show it. - bool IsFirstRunMarkedFinishedInPrefs() { -- // Can be null in unit tests. -- const PrefService* const local_state = g_browser_process->local_state(); -- return local_state && local_state->GetBoolean(prefs::kFirstRunFinished); -+ return true; - } - } // namespace - -@@ -206,8 +203,6 @@ bool IsFirstRunMarkedFinishedInPrefs() { - - // static - void FirstRunService::RegisterLocalStatePrefs(PrefRegistrySimple* registry) { -- registry->RegisterBooleanPref(prefs::kFirstRunFinished, false); -- registry->RegisterStringPref(prefs::kFirstRunStudyGroup, ""); - } - - FirstRunService::FirstRunService(Profile* profile) : profile_(profile) {} -@@ -231,7 +226,6 @@ void FirstRunService::TryMarkFirstRunAlreadyFinished( - return; - } - -- auto* identity_manager = IdentityManagerFactory::GetForProfile(profile_); - bool has_set_up_profile = - #if BUILDFLAG(IS_CHROMEOS_LACROS) - // Indicates that the profile was likely migrated from pre-Lacros Ash. -@@ -241,7 +235,7 @@ void FirstRunService::TryMarkFirstRunAlreadyFinished( - // the profile already has an account (e.g. the sentinel file was deleted - // or `--force-first-run` was passed), this ensures we still skip it and - // avoid having to handle too strange states later. -- identity_manager->HasPrimaryAccount(signin::ConsentLevel::kSignin); -+ false; - #endif - if (has_set_up_profile) { - SetFirstRunFinished(FinishedReason::kProfileAlreadySetUp); -diff --git a/chrome/browser/ui/webui/intro/intro_ui.cc b/chrome/browser/ui/webui/intro/intro_ui.cc ---- a/chrome/browser/ui/webui/intro/intro_ui.cc -+++ b/chrome/browser/ui/webui/intro/intro_ui.cc -@@ -34,14 +34,6 @@ - - IntroUI::IntroUI(content::WebUI* web_ui) : content::WebUIController(web_ui) { - DCHECK(base::FeatureList::IsEnabled(kForYouFre)); -- auto* profile = Profile::FromWebUI(web_ui); -- -- content::WebUIDataSource* source = content::WebUIDataSource::CreateAndAdd( -- profile, chrome::kChromeUIIntroHost); -- -- webui::SetupWebUIDataSource( -- source, base::make_span(kIntroResources, kIntroResourcesSize), -- IDR_INTRO_INTRO_HTML); - - #if BUILDFLAG(ENABLE_DICE_SUPPORT) - int title_id = 0; -@@ -73,7 +65,6 @@ IntroUI::IntroUI(content::WebUI* web_ui) : content::WebUIController(web_ui) { - // page itself makes it available much earlier, and avoids having to fallback - // to the one obtained from `NavigationEntry::GetTitleForDisplay()` (which - // ends up being the URL) when we try to get it on startup for a11y purposes. -- web_ui->OverrideTitle(l10n_util::GetStringUTF16(title_id)); - - const bool is_device_managed = - policy::ManagementServiceFactory::GetForPlatform()->IsManaged(); -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 -@@ -22,15 +22,6 @@ source_set("browser_updater_client") { - "//components/version_info", - ] - -- if (is_win) { -- sources += [ "browser_updater_client_win.cc" ] -- -- deps += [ -- "//chrome/browser/google", -- "//chrome/install_static:install_static_util", -- ] -- } -- - if (is_mac) { - sources += [ - "browser_updater_client_mac.mm", -diff --git a/chrome/browser/updater/browser_updater_client.cc b/chrome/browser/updater/browser_updater_client.cc ---- a/chrome/browser/updater/browser_updater_client.cc -+++ b/chrome/browser/updater/browser_updater_client.cc -@@ -29,19 +29,6 @@ BrowserUpdaterClient::~BrowserUpdaterClient() = default; - - void BrowserUpdaterClient::Register(base::OnceClosure complete) { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -- base::ThreadPool::PostTaskAndReplyWithResult( -- FROM_HERE, {base::MayBlock()}, -- base::BindOnce(&BrowserUpdaterClient::GetRegistrationRequest, this), -- base::BindOnce( -- [](base::OnceCallback callback, -- scoped_refptr update_service, -- const updater::RegistrationRequest& request) { -- update_service->RegisterApp(request, std::move(callback)); -- }, -- base::BindPostTaskToCurrentDefault( -- base::BindOnce(&BrowserUpdaterClient::RegistrationCompleted, this, -- std::move(complete))), -- update_service_)); - } - - void BrowserUpdaterClient::RegistrationCompleted(base::OnceClosure complete, -@@ -72,18 +59,6 @@ void BrowserUpdaterClient::GetUpdaterVersionCompleted( - void BrowserUpdaterClient::CheckForUpdate( - updater::UpdateService::StateChangeCallback version_updater_callback) { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -- -- updater::UpdateService::UpdateState update_state; -- update_state.state = -- updater::UpdateService::UpdateState::State::kCheckingForUpdates; -- version_updater_callback.Run(update_state); -- update_service_->Update( -- GetAppId(), {}, updater::UpdateService::Priority::kForeground, -- updater::UpdateService::PolicySameVersionUpdate::kNotAllowed, -- base::BindPostTaskToCurrentDefault(version_updater_callback), -- base::BindPostTaskToCurrentDefault( -- base::BindOnce(&BrowserUpdaterClient::UpdateCompleted, this, -- version_updater_callback))); - } - - void BrowserUpdaterClient::UpdateCompleted( -@@ -129,12 +104,7 @@ void BrowserUpdaterClient::IsBrowserRegisteredCompleted( - base::OnceCallback callback, - const std::vector& apps) { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -- const std::string app_id = GetAppId(); -- std::move(callback).Run( -- std::find_if(apps.begin(), apps.end(), -- [&](const updater::UpdateService::AppState& app) { -- return app.app_id == app_id; -- }) != apps.end()); -+ std::move(callback).Run(true); - } - - scoped_refptr BrowserUpdaterClient::Create( -diff --git a/chrome/test/data/webui/intro/BUILD.gn b/chrome/test/data/webui/intro/BUILD.gn ---- a/chrome/test/data/webui/intro/BUILD.gn -+++ b/chrome/test/data/webui/intro/BUILD.gn -@@ -26,7 +26,6 @@ build_webui_tests("build") { - "$root_gen_dir/chrome/browser/resources/intro/tsc/*", - target_gen_dir) ] - ts_deps = [ -- "//chrome/browser/resources/intro:build_ts", - "//ui/webui/resources/js:build_ts", - ] - } --- -2.25.1 diff --git a/build/patches/Disable-safe-browsing.patch b/build/patches/Disable-safe-browsing.patch deleted file mode 100644 index 98191232..00000000 --- a/build/patches/Disable-safe-browsing.patch +++ /dev/null @@ -1,3303 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Tue, 16 Oct 2018 05:22:59 +0200 -Subject: Disable safe browsing - -Originally based on ungoogled-chromium patch -Contains Android-specific fixes to remove Safe Browsing -Disable CrowdDeny feature -Remove phishing classifier - -License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ---- - .../res/xml/google_services_preferences.xml | 5 - - .../android/java/res/xml/main_preferences.xml | 5 - - .../java/res/xml/privacy_preferences.xml | 9 -- - .../privacy/settings/PrivacySettings.java | 48 +--------- - .../SafeBrowsingSettingsLauncher.java | 8 -- - .../usage_stats/UsageStatsConsentDialog.java | 5 - - .../android/chrome_main_delegate_android.cc | 1 + - chrome/browser/BUILD.gn | 26 ------ - .../tab_web_contents_delegate_android.cc | 8 ++ - chrome/browser/browser_process.h | 7 -- - chrome/browser/browser_process_impl.cc | 29 ------ - chrome/browser/browser_process_impl.h | 4 - - .../chrome_browsing_data_remover_delegate.cc | 2 + - .../browser/chrome_content_browser_client.cc | 24 +++-- - .../browser/chrome_content_browser_client.h | 2 + - .../file_type_policies_component_installer.cc | 16 +--- - .../browser/component_updater/registration.cc | 12 --- - .../chrome_download_manager_delegate.cc | 55 ++++------- - .../chrome_download_manager_delegate.h | 2 +- - .../browser/download/download_item_model.cc | 15 ++- - chrome/browser/download/download_item_model.h | 4 + - chrome/browser/download/download_prefs.cc | 17 +--- - chrome/browser/download/download_stats.cc | 6 ++ - .../download/download_target_determiner.cc | 66 +++++--------- - .../download/download_target_determiner.h | 6 ++ - .../browser/download/download_target_info.cc | 4 + - .../browser/download/download_target_info.h | 4 + - chrome/browser/download/download_ui_model.cc | 4 + - chrome/browser/download/download_ui_model.h | 4 + - .../extensions/api/downloads/downloads_api.cc | 41 +-------- - .../extensions/api/downloads/downloads_api.h | 12 --- - .../webstore_private/webstore_private_api.cc | 18 +--- - ...e_file_system_access_permission_context.cc | 16 +++- - ...me_file_system_access_permission_context.h | 5 +- - .../lookalike_url_controller_client.cc | 3 - - .../metrics/chrome_metrics_service_client.cc | 1 - - ...ial_comparison_cert_verifier_controller.cc | 3 - - .../chrome_password_manager_client.cc | 28 +----- - .../permissions/chrome_permissions_client.cc | 14 --- - .../permissions/chrome_permissions_client.h | 3 - - .../permission_revocation_request.cc | 6 ++ - ...quiet_notification_permission_ui_config.cc | 4 +- - chrome/browser/prefs/browser_prefs.cc | 3 + - chrome/browser/privacy_guide/android/BUILD.gn | 2 - - .../privacy_guide/PrivacyGuideFragment.java | 3 - - .../PrivacyGuidePagerAdapter.java | 2 - - .../privacy_guide/PrivacyGuideUtils.java | 6 +- - .../privacy_guide/StepDisplayHandlerImpl.java | 2 +- - ...hrome_browser_main_extra_parts_profiles.cc | 11 +-- - chrome/browser/profiles/profile_impl.cc | 4 +- - chrome/browser/safe_browsing/BUILD.gn | 4 +- - chrome/browser/safe_browsing/android/BUILD.gn | 5 - - .../safe_browsing/SafeBrowsingBridge.java | 91 ------------------- - .../android/safe_browsing_bridge.cc | 59 ------------ - .../download_protection_service.cc | 2 + - .../download_protection_service.h | 3 +- - .../url_lookup_service_factory.cc | 4 + - .../chrome_security_blocking_page_factory.cc | 8 +- - .../ssl/generated_https_first_mode_pref.cc | 26 +----- - .../ssl/generated_https_first_mode_pref.h | 12 +-- - .../ssl/https_first_mode_settings_tracker.cc | 16 ---- - .../ssl/https_first_mode_settings_tracker.h | 10 +- - .../ssl/sct_reporting_service_factory.cc | 11 +-- - .../browser/ssl/security_state_tab_helper.cc | 9 +- - ...urce_filter_web_contents_helper_factory.cc | 4 + - chrome/browser/ui/BUILD.gn | 2 - - .../strings/android_chrome_strings.grd | 6 -- - chrome/browser/ui/tab_helpers.cc | 7 +- - .../ui/webui/interstitials/interstitial_ui.cc | 16 +--- - chrome/common/safe_browsing/BUILD.gn | 7 -- - chrome/renderer/BUILD.gn | 5 - - .../chrome_content_renderer_client.cc | 6 +- - .../renderer/chrome_content_renderer_client.h | 3 - - chrome/test/BUILD.gn | 5 - - components/BUILD.gn | 1 - - .../installer_policies/BUILD.gn | 2 - - .../permissions/permission_request_manager.cc | 5 +- - .../safe_browsing/content/browser/BUILD.gn | 1 - - .../content/common/file_type_policies.cc | 3 +- - .../safe_browsing/core/common/features.cc | 4 +- - .../content/captive_portal_blocking_page.cc | 9 +- - .../content/cert_report_helper.cc | 5 +- - .../unified_consent_service.cc | 2 +- - .../file_system_access_file_writer_impl.cc | 3 +- - .../file_system_access_file_writer_impl.h | 5 - - .../file_system_access_safe_move_helper.cc | 15 +-- - .../file_system_access_safe_move_helper.h | 6 -- - .../file_system_access_permission_context.h | 6 -- - weblayer/BUILD.gn | 4 - - weblayer/test/BUILD.gn | 1 - - 90 files changed, 214 insertions(+), 764 deletions(-) - -diff --git a/chrome/android/java/res/xml/google_services_preferences.xml b/chrome/android/java/res/xml/google_services_preferences.xml ---- a/chrome/android/java/res/xml/google_services_preferences.xml -+++ b/chrome/android/java/res/xml/google_services_preferences.xml -@@ -21,11 +21,6 @@ found in the LICENSE file. - android:key="metrics_settings" - android:title="@string/manage_metrics_settings" - android:fragment="org.chromium.chrome.browser.metrics_settings.MetricsSettingsFragment"/> -- - -- - -- - -- - { -- preference.getExtras().putInt( -- SafeBrowsingSettingsFragment.ACCESS_POINT, SettingsAccessPoint.PARENT_SETTINGS); -- return false; -- }); -- - setHasOptionsMenu(true); - - ChromeSwitchPreference canMakePaymentPref = -@@ -150,16 +135,11 @@ public class PrivacySettings extends PreferenceFragmentCompat - public boolean isPreferenceClickDisabled(Preference preference) { - // Advanced Protection automatically enables HTTPS-Only Mode so - // lock the setting. -- return isPreferenceControlledByPolicy(preference) -- || SafeBrowsingBridge.isUnderAdvancedProtection(); -+ return isPreferenceControlledByPolicy(preference); - } - }); - httpsFirstModePref.setChecked(UserPrefs.get(Profile.getLastUsedRegularProfile()) - .getBoolean(Pref.HTTPS_ONLY_MODE_ENABLED)); -- if (SafeBrowsingBridge.isUnderAdvancedProtection()) { -- httpsFirstModePref.setSummary(getContext().getResources().getString( -- R.string.settings_https_first_mode_with_advanced_protection_summary)); -- } - - Preference secureDnsPref = findPreference(PREF_SECURE_DNS); - secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled()); -@@ -251,32 +231,6 @@ public class PrivacySettings extends PreferenceFragmentCompat - secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext())); - } - -- Preference safeBrowsingPreference = findPreference(PREF_SAFE_BROWSING); -- if (safeBrowsingPreference != null && safeBrowsingPreference.isVisible()) { -- safeBrowsingPreference.setSummary( -- SafeBrowsingSettingsFragment.getSafeBrowsingSummaryString(getContext())); -- } -- -- Preference usageStatsPref = findPreference(PREF_USAGE_STATS); -- if (usageStatsPref != null) { -- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q -- && prefService.getBoolean(Pref.USAGE_STATS_ENABLED)) { -- usageStatsPref.setOnPreferenceClickListener(preference -> { -- UsageStatsConsentDialog -- .create(getActivity(), true, -- (didConfirm) -> { -- if (didConfirm) { -- updatePreferences(); -- } -- }) -- .show(); -- return true; -- }); -- } else { -- getPreferenceScreen().removePreference(usageStatsPref); -- } -- } -- - Preference privacySandboxPreference = findPreference(PREF_PRIVACY_SANDBOX); - if (privacySandboxPreference != null - && !ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4)) { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsLauncher.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsLauncher.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsLauncher.java -@@ -7,11 +7,9 @@ import android.content.Context; - - import org.chromium.base.annotations.CalledByNative; - import org.chromium.chrome.browser.safe_browsing.metrics.SettingsAccessPoint; --import org.chromium.chrome.browser.safe_browsing.settings.SafeBrowsingSettingsFragment; - import org.chromium.chrome.browser.settings.SettingsLauncherImpl; - import org.chromium.components.browser_ui.settings.SettingsLauncher; - import org.chromium.content_public.browser.WebContents; --import org.chromium.ui.base.WindowAndroid; - - /** - * Bridge between Java and native SafeBrowsing code to launch the Safe Browsing settings page. -@@ -22,11 +20,5 @@ public class SafeBrowsingSettingsLauncher { - @CalledByNative - private static void showSafeBrowsingSettings( - WebContents webContents, @SettingsAccessPoint int accessPoint) { -- WindowAndroid window = webContents.getTopLevelNativeWindow(); -- if (window == null) return; -- Context currentContext = window.getContext().get(); -- SettingsLauncher settingsLauncher = new SettingsLauncherImpl(); -- settingsLauncher.launchSettingsActivity(currentContext, SafeBrowsingSettingsFragment.class, -- SafeBrowsingSettingsFragment.createArguments(accessPoint)); - } - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/usage_stats/UsageStatsConsentDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/usage_stats/UsageStatsConsentDialog.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/usage_stats/UsageStatsConsentDialog.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/usage_stats/UsageStatsConsentDialog.java -@@ -48,11 +48,6 @@ public class UsageStatsConsentDialog { - .with(ModalDialogProperties.MESSAGE_PARAGRAPH_1, - resources.getString(R.string.usage_stats_revocation_explanation)) - .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT, resources, R.string.remove); -- } else { -- builder.with(ModalDialogProperties.TITLE, resources, R.string.usage_stats_consent_title) -- .with(ModalDialogProperties.MESSAGE_PARAGRAPH_1, -- resources.getString(R.string.usage_stats_consent_prompt)) -- .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT, resources, R.string.show); - } - - mDialogModel = builder.build(); -diff --git a/chrome/app/android/chrome_main_delegate_android.cc b/chrome/app/android/chrome_main_delegate_android.cc ---- a/chrome/app/android/chrome_main_delegate_android.cc -+++ b/chrome/app/android/chrome_main_delegate_android.cc -@@ -9,6 +9,7 @@ - #include "base/android/jni_android.h" - #include "base/base_paths_android.h" - #include "base/feature_list.h" -+#include "base/feature_list.h" - #include "base/files/file_path.h" - #include "base/files/file_util.h" - #include "base/logging.h" -diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn ---- a/chrome/browser/BUILD.gn -+++ b/chrome/browser/BUILD.gn -@@ -297,8 +297,6 @@ static_library("browser") { - "commerce/shopping_service_factory.h", - "complex_tasks/task_tab_helper.cc", - "complex_tasks/task_tab_helper.h", -- "component_updater/chrome_client_side_phishing_component_installer.cc", -- "component_updater/chrome_client_side_phishing_component_installer.h", - "component_updater/chrome_component_updater_configurator.cc", - "component_updater/chrome_component_updater_configurator.h", - "component_updater/chrome_origin_trials_component_installer.cc", -@@ -311,8 +309,6 @@ static_library("browser") { - "component_updater/component_updater_utils.h", - "component_updater/crl_set_component_installer.cc", - "component_updater/crl_set_component_installer.h", -- "component_updater/crowd_deny_component_installer.cc", -- "component_updater/crowd_deny_component_installer.h", - "component_updater/desktop_sharing_hub_component_remover.cc", - "component_updater/desktop_sharing_hub_component_remover.h", - "component_updater/first_party_sets_component_installer.cc", -@@ -663,11 +659,6 @@ static_library("browser") { - "lookalikes/lookalike_url_service.h", - "lookalikes/lookalike_url_tab_storage.cc", - "lookalikes/lookalike_url_tab_storage.h", -- "lookalikes/safety_tip_ui.h", -- "lookalikes/safety_tip_ui_helper.cc", -- "lookalikes/safety_tip_ui_helper.h", -- "lookalikes/safety_tip_web_contents_observer.cc", -- "lookalikes/safety_tip_web_contents_observer.h", - "media/audio_service_util.cc", - "media/audio_service_util.h", - "media/history/media_history_contents_observer.cc", -@@ -1100,8 +1091,6 @@ static_library("browser") { - "permissions/adaptive_quiet_notification_permission_ui_enabler.h", - "permissions/chrome_permissions_client.cc", - "permissions/chrome_permissions_client.h", -- "permissions/contextual_notification_permission_ui_selector.cc", -- "permissions/contextual_notification_permission_ui_selector.h", - "permissions/crowd_deny_preload_data.cc", - "permissions/crowd_deny_preload_data.h", - "permissions/crowd_deny_safe_browsing_request.cc", -@@ -2127,9 +2116,6 @@ static_library("browser") { - "//components/leveldb_proto", - "//components/live_caption:constants", - "//components/live_caption:utils", -- "//components/lookalikes/core", -- "//components/lookalikes/core:proto", -- "//components/lookalikes/core:safety_tips", - "//components/memory_pressure", - "//components/metrics:call_stack_profile_collector", - "//components/metrics:call_stack_profile_params", -@@ -2225,7 +2211,6 @@ static_library("browser") { - "//components/reporting/util:task_runner_context", - "//components/resources", - "//components/safe_browsing/content/browser", -- "//components/safe_browsing/content/browser:client_side_detection", - "//components/safe_browsing/content/browser:safe_browsing_service", - "//components/safe_browsing/content/browser/password_protection", - "//components/safe_browsing/content/browser/web_ui", -@@ -3028,12 +3013,6 @@ static_library("browser") { - "lifetime/application_lifetime_android.h", - "long_screenshots/long_screenshots_tab_service_factory.cc", - "long_screenshots/long_screenshots_tab_service_factory.h", -- "lookalikes/safety_tip_infobar_android.cc", -- "lookalikes/safety_tip_infobar_android.h", -- "lookalikes/safety_tip_infobar_delegate_android.cc", -- "lookalikes/safety_tip_infobar_delegate_android.h", -- "lookalikes/safety_tip_message_delegate_android.cc", -- "lookalikes/safety_tip_message_delegate_android.h", - "media/android/cdm/media_drm_origin_id_manager.cc", - "media/android/cdm/media_drm_origin_id_manager.h", - "media/android/cdm/media_drm_origin_id_manager_factory.cc", -@@ -3595,8 +3574,6 @@ static_library("browser") { - "download/download_commands.h", - "download/download_crx_util.cc", - "download/download_crx_util.h", -- "download/download_danger_prompt.cc", -- "download/download_danger_prompt.h", - "download/download_dir_policy_handler.cc", - "download/download_dir_policy_handler.h", - "download/download_dir_util.cc", -@@ -7932,9 +7909,6 @@ static_library("test_support") { - "//components/consent_auditor:test_support", - "//components/invalidation/impl", - "//components/invalidation/impl:test_support", -- "//components/lookalikes/core", -- "//components/lookalikes/core:proto", -- "//components/lookalikes/core:safety_tips", - "//components/password_manager/core/browser:test_support", - "//components/policy/core/browser:test_support", - "//components/prefs:test_support", -diff --git a/chrome/browser/android/tab_web_contents_delegate_android.cc b/chrome/browser/android/tab_web_contents_delegate_android.cc ---- a/chrome/browser/android/tab_web_contents_delegate_android.cc -+++ b/chrome/browser/android/tab_web_contents_delegate_android.cc -@@ -35,7 +35,9 @@ - #include "chrome/browser/prefetch/prefetch_prefs.h" - #include "chrome/browser/preloading/prefetch/no_state_prefetch/no_state_prefetch_manager_factory.h" - #include "chrome/browser/profiles/profile.h" -+#if BUILDFLAG(FULL_SAFE_BROWSING) - #include "chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager_factory.h" -+#endif - #include "chrome/browser/safe_browsing/safe_browsing_service.h" - #include "chrome/browser/ui/android/tab_model/tab_model_list.h" - #include "chrome/browser/ui/autofill/chrome_autofill_client.h" -@@ -61,7 +63,9 @@ - #include "components/navigation_interception/intercept_navigation_delegate.h" - #include "components/no_state_prefetch/browser/no_state_prefetch_manager.h" - #include "components/paint_preview/buildflags/buildflags.h" -+#if BUILDFLAG(FULL_SAFE_BROWSING) - #include "components/safe_browsing/content/browser/safe_browsing_navigation_observer.h" -+#endif - #include "content/public/browser/file_select_listener.h" - #include "content/public/browser/navigation_entry.h" - #include "content/public/browser/render_frame_host.h" -@@ -146,8 +150,10 @@ void TabWebContentsDelegateAndroid::PortalWebContentsCreated( - content::WebContents* portal_contents) { - WebContentsDelegateAndroid::PortalWebContentsCreated(portal_contents); - -+#if BUILDFLAG(FULL_SAFE_BROWSING) - Profile* profile = - Profile::FromBrowserContext(portal_contents->GetBrowserContext()); -+#endif - - // This is a subset of the tab helpers that would be attached by - // TabAndroid::AttachTabHelpers. -@@ -163,11 +169,13 @@ void TabWebContentsDelegateAndroid::PortalWebContentsCreated( - HistoryTabHelper::CreateForWebContents(portal_contents); - infobars::ContentInfoBarManager::CreateForWebContents(portal_contents); - PrefsTabHelper::CreateForWebContents(portal_contents); -+#if BUILDFLAG(FULL_SAFE_BROWSING) - safe_browsing::SafeBrowsingNavigationObserver::MaybeCreateForWebContents( - portal_contents, HostContentSettingsMapFactory::GetForProfile(profile), - safe_browsing::SafeBrowsingNavigationObserverManagerFactory:: - GetForBrowserContext(profile), - profile->GetPrefs(), g_browser_process->safe_browsing_service()); -+#endif - } - - void TabWebContentsDelegateAndroid::RunFileChooser( -diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h ---- a/chrome/browser/browser_process.h -+++ b/chrome/browser/browser_process.h -@@ -55,10 +55,6 @@ class NetworkQualityTracker; - class SharedURLLoaderFactory; - } - --namespace safe_browsing { --class SafeBrowsingService; --} -- - namespace subresource_filter { - class RulesetService; - } -@@ -218,9 +214,6 @@ class BrowserProcess { - // on this platform (or this is a unit test). - virtual StatusTray* status_tray() = 0; - -- // Returns the SafeBrowsing service. -- virtual safe_browsing::SafeBrowsingService* safe_browsing_service() = 0; -- - // Returns the service providing versioned storage for rules used by the Safe - // Browsing subresource filter. - virtual subresource_filter::RulesetService* -diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc ---- a/chrome/browser/browser_process_impl.cc -+++ b/chrome/browser/browser_process_impl.cc -@@ -72,7 +72,6 @@ - #include "chrome/browser/printing/print_preview_dialog_controller.h" - #include "chrome/browser/profiles/profile_manager.h" - #include "chrome/browser/resource_coordinator/resource_coordinator_parts.h" --#include "chrome/browser/safe_browsing/safe_browsing_service.h" - #include "chrome/browser/shell_integration.h" - #include "chrome/browser/site_isolation/prefs_observer.h" - #include "chrome/browser/ssl/secure_origin_prefs_observer.h" -@@ -110,7 +109,6 @@ - #include "components/prefs/json_pref_store.h" - #include "components/prefs/pref_registry_simple.h" - #include "components/prefs/pref_service.h" --#include "components/safe_browsing/content/browser/safe_browsing_service_interface.h" - #include "components/sessions/core/session_id_generator.h" - #include "components/subresource_filter/content/browser/ruleset_service.h" - #include "components/translate/core/browser/translate_download_manager.h" -@@ -447,8 +445,6 @@ void BrowserProcessImpl::StartTearDown() { - - metrics_services_manager_.reset(); - intranet_redirect_detector_.reset(); -- if (safe_browsing_service_.get()) -- safe_browsing_service()->ShutDown(); - network_time_tracker_.reset(); - - #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH) -@@ -1094,14 +1090,6 @@ StatusTray* BrowserProcessImpl::status_tray() { - return status_tray_.get(); - } - --safe_browsing::SafeBrowsingService* --BrowserProcessImpl::safe_browsing_service() { -- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -- if (!created_safe_browsing_service_) -- CreateSafeBrowsingService(); -- return safe_browsing_service_.get(); --} -- - subresource_filter::RulesetService* - BrowserProcessImpl::subresource_filter_ruleset_service() { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -@@ -1334,23 +1322,6 @@ void BrowserProcessImpl::CreateBackgroundPrintingManager() { - } - - void BrowserProcessImpl::CreateSafeBrowsingService() { -- DCHECK(!safe_browsing_service_); -- // Set this flag to true so that we don't retry indefinitely to -- // create the service class if there was an error. -- created_safe_browsing_service_ = true; -- -- // The factory can be overridden in tests. -- if (!safe_browsing::SafeBrowsingServiceInterface::HasFactory()) { -- safe_browsing::SafeBrowsingServiceInterface::RegisterFactory( -- safe_browsing::GetSafeBrowsingServiceFactory()); -- } -- -- // TODO(crbug/925153): Port consumers of the |safe_browsing_service_| to use -- // the interface in components/safe_browsing, and remove this cast. -- safe_browsing_service_ = static_cast( -- safe_browsing::SafeBrowsingServiceInterface::CreateSafeBrowsingService()); -- if (safe_browsing_service_) -- safe_browsing_service_->Initialize(); - } - - void BrowserProcessImpl::CreateSubresourceFilterRulesetService() { -diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h ---- a/chrome/browser/browser_process_impl.h -+++ b/chrome/browser/browser_process_impl.h -@@ -182,7 +182,6 @@ class BrowserProcessImpl : public BrowserProcess, - std::unique_ptr manager) override; - #endif - StatusTray* status_tray() override; -- safe_browsing::SafeBrowsingService* safe_browsing_service() override; - subresource_filter::RulesetService* subresource_filter_ruleset_service() - override; - -@@ -333,9 +332,6 @@ class BrowserProcessImpl : public BrowserProcess, - std::unique_ptr background_mode_manager_; - #endif - -- bool created_safe_browsing_service_ = false; -- scoped_refptr safe_browsing_service_; -- - bool created_subresource_filter_ruleset_service_ = false; - std::unique_ptr - subresource_filter_ruleset_service_; -diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc ---- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc -+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc -@@ -625,10 +625,12 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( - base::RecordAction(UserMetricsAction("ClearBrowsingData_Cookies")); - - network::mojom::NetworkContext* safe_browsing_context = nullptr; -+#if BUILDFLAG(FULL_SAFE_BROWSING) - safe_browsing::SafeBrowsingService* sb_service = - g_browser_process->safe_browsing_service(); - if (sb_service) - safe_browsing_context = sb_service->GetNetworkContext(profile_); -+#endif - - // Cleared for DATA_TYPE_HISTORY, DATA_TYPE_COOKIES and DATA_TYPE_PASSWORDS. - browsing_data::RemoveFederatedSiteSettingsData(delete_begin_, delete_end_, -diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc ---- a/chrome/browser/chrome_content_browser_client.cc -+++ b/chrome/browser/chrome_content_browser_client.cc -@@ -119,6 +119,7 @@ - #include "chrome/browser/profiling_host/chrome_browser_main_extra_parts_profiling.h" - #include "chrome/browser/renderer_host/chrome_navigation_ui_data.h" - #include "chrome/browser/renderer_preferences_util.h" -+#if defined(FULL_SAFE_BROWSING) - #include "chrome/browser/safe_browsing/certificate_reporting_service.h" - #include "chrome/browser/safe_browsing/certificate_reporting_service_factory.h" - #include "chrome/browser/safe_browsing/chrome_ping_manager_factory.h" -@@ -127,6 +128,7 @@ - #include "chrome/browser/safe_browsing/safe_browsing_service.h" - #include "chrome/browser/safe_browsing/url_checker_delegate_impl.h" - #include "chrome/browser/safe_browsing/url_lookup_service_factory.h" -+#endif - #include "chrome/browser/search/search.h" - #include "chrome/browser/segmentation_platform/chrome_browser_main_extra_parts_segmentation_platform.h" - #include "chrome/browser/sharing/sms/sms_remote_fetcher.h" -@@ -1047,9 +1049,7 @@ void SetApplicationLocaleOnIOThread(const std::string& locale) { - class CertificateReportingServiceCertReporter : public SSLCertReporter { - public: - explicit CertificateReportingServiceCertReporter( -- content::WebContents* web_contents) -- : service_(CertificateReportingServiceFactory::GetForBrowserContext( -- web_contents->GetBrowserContext())) {} -+ content::WebContents* web_contents) {} - - CertificateReportingServiceCertReporter( - const CertificateReportingServiceCertReporter&) = delete; -@@ -1061,11 +1061,9 @@ class CertificateReportingServiceCertReporter : public SSLCertReporter { - // SSLCertReporter implementation - void ReportInvalidCertificateChain( - const std::string& serialized_report) override { -- service_->Send(serialized_report); - } - - private: -- raw_ptr service_; - }; - - #if BUILDFLAG(ENABLE_EXTENSIONS) -@@ -2581,7 +2579,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( - } - #elif BUILDFLAG(IS_POSIX) - #if BUILDFLAG(IS_ANDROID) -- bool enable_crash_reporter = true; -+ bool enable_crash_reporter = false; - #elif BUILDFLAG(IS_CHROMEOS) - bool enable_crash_reporter = false; - if (crash_reporter::IsCrashpadEnabled()) { -@@ -5056,6 +5054,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( - &throttles); - #endif - -+#if defined(FULL_SAFE_BROWSING) - // g_browser_process->safe_browsing_service() may be null in unittests. - safe_browsing::SafeBrowsingUIManager* ui_manager = - g_browser_process->safe_browsing_service() -@@ -5071,6 +5070,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( - std::make_unique( - handle)); - } -+#endif - - #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) - MaybeAddThrottle(browser_switcher::BrowserSwitcherNavigationThrottle:: -@@ -5349,7 +5349,9 @@ void ChromeContentBrowserClient::OverridePageVisibilityState( - void ChromeContentBrowserClient::InitOnUIThread() { - DCHECK_CURRENTLY_ON(BrowserThread::UI); - -+#if defined(FULL_SAFE_BROWSING) - safe_browsing_service_ = g_browser_process->safe_browsing_service(); -+#endif - - // Initialize `network_contexts_parent_directory_`. - base::FilePath user_data_dir; -@@ -6615,6 +6617,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate( - ? content::BrowserThread::UI - : content::BrowserThread::IO); - -+#if defined(FULL_SAFE_BROWSING) - // Should not bypass safe browsing check if the check is for enterprise - // lookup. - if (!safe_browsing_enabled_for_profile && !should_check_on_sb_disabled) -@@ -6635,6 +6638,9 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate( - } - - return safe_browsing_url_checker_delegate_; -+#else -+ return nullptr; -+#endif - } - - safe_browsing::RealTimeUrlLookupServiceBase* -@@ -6642,24 +6648,28 @@ ChromeContentBrowserClient::GetUrlLookupService( - content::BrowserContext* browser_context, - bool is_enterprise_lookup_enabled, - bool is_consumer_lookup_enabled) { -+#if defined(FULL_SAFE_BROWSING) - // |safe_browsing_service_| may be unavailable in tests. - if (!safe_browsing_service_) { - return nullptr; - } -+#endif - -+#if BUILDFLAG(SAFE_BROWSING_DB_LOCAL) - Profile* profile = Profile::FromBrowserContext(browser_context); - --#if BUILDFLAG(SAFE_BROWSING_DB_LOCAL) - if (is_enterprise_lookup_enabled) { - return safe_browsing::ChromeEnterpriseRealTimeUrlLookupServiceFactory:: - GetForProfile(profile); - } - #endif - -+#if defined(FULL_SAFE_BROWSING) - if (is_consumer_lookup_enabled) { - return safe_browsing::RealTimeUrlLookupServiceFactory::GetForProfile( - profile); - } -+#endif - return nullptr; - } - -diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h ---- a/chrome/browser/chrome_content_browser_client.h -+++ b/chrome/browser/chrome_content_browser_client.h -@@ -964,9 +964,11 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { - // Parts are deleted in the reverse order they are added. - std::vector extra_parts_; - -+#if defined(FULL_SAFE_BROWSING) - scoped_refptr safe_browsing_service_; - scoped_refptr - safe_browsing_url_checker_delegate_; -+#endif - - StartupData startup_data_; - -diff --git a/chrome/browser/component_updater/file_type_policies_component_installer.cc b/chrome/browser/component_updater/file_type_policies_component_installer.cc ---- a/chrome/browser/component_updater/file_type_policies_component_installer.cc -+++ b/chrome/browser/component_updater/file_type_policies_component_installer.cc -@@ -19,7 +19,9 @@ - #include "base/task/thread_pool.h" - #include "base/version.h" - #include "components/component_updater/component_updater_paths.h" -+#if defined(FULL_SAFE_BROWSING) - #include "components/safe_browsing/content/common/file_type_policies.h" -+#endif - #include "components/safe_browsing/core/common/features.h" - - using component_updater::ComponentUpdateService; -@@ -39,20 +41,6 @@ const uint8_t kFileTypePoliciesPublicKeySHA256[32] = { - const char kFileTypePoliciesManifestName[] = "File Type Policies"; - - void LoadFileTypesFromDisk(const base::FilePath& pb_path) { -- if (pb_path.empty()) -- return; -- -- VLOG(1) << "Reading Download File Types from file: " << pb_path.value(); -- std::string binary_pb; -- if (!base::ReadFileToString(pb_path, &binary_pb)) { -- // The file won't exist on new installations, so this is not always an -- // error. -- VLOG(1) << "Failed reading from " << pb_path.value(); -- return; -- } -- -- safe_browsing::FileTypePolicies::GetInstance()->PopulateFromDynamicUpdate( -- binary_pb); - } - - } // namespace -diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/component_updater/registration.cc ---- a/chrome/browser/component_updater/registration.cc -+++ b/chrome/browser/component_updater/registration.cc -@@ -18,7 +18,6 @@ - #include "chrome/browser/browser_process.h" - #include "chrome/browser/buildflags.h" - #include "chrome/browser/component_updater/app_provisioning_component_installer.h" --#include "chrome/browser/component_updater/chrome_client_side_phishing_component_installer.h" - #include "chrome/browser/component_updater/chrome_origin_trials_component_installer.h" - #include "chrome/browser/component_updater/commerce_heuristics_component_installer.h" - #include "chrome/browser/component_updater/crl_set_component_installer.h" -@@ -40,7 +39,6 @@ - #include "components/component_updater/installer_policies/autofill_states_component_installer.h" - #include "components/component_updater/installer_policies/on_device_head_suggest_component_installer.h" - #include "components/component_updater/installer_policies/optimization_hints_component_installer.h" --#include "components/component_updater/installer_policies/safety_tips_component_installer.h" - #include "components/component_updater/url_param_filter_remover.h" - #include "components/nacl/common/buildflags.h" - #include "components/safe_browsing/core/common/features.h" -@@ -186,9 +184,6 @@ void RegisterComponentsForUpdate() { - - MaybeRegisterPKIMetadataComponent(cus); - -- RegisterSafetyTipsComponent(cus); -- RegisterCrowdDenyComponent(cus); -- - #if BUILDFLAG(IS_CHROMEOS_ASH) - RegisterSmartDimComponent(cus); - RegisterAppProvisioningComponent(cus); -@@ -214,13 +209,6 @@ void RegisterComponentsForUpdate() { - - RegisterAutofillStatesComponent(cus, g_browser_process->local_state()); - -- // OptimizationGuide provides the model through their services, so if the -- // flag is false, a registration to CSD-Phishing component is needed -- if (!base::FeatureList::IsEnabled( -- safe_browsing::kClientSideDetectionModelOptimizationGuide)) { -- RegisterClientSidePhishingComponent(cus); -- } -- - #if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE) && !BUILDFLAG(IS_CHROMEOS) - RegisterScreenAIComponent(cus, g_browser_process->local_state()); - #endif // BUILDFLAG(ENABLE_SCREEN_AI_SERVICE) && !BUILDFLAG(IS_CHROMEOS) -diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc ---- a/chrome/browser/download/chrome_download_manager_delegate.cc -+++ b/chrome/browser/download/chrome_download_manager_delegate.cc -@@ -43,15 +43,19 @@ - #include "chrome/browser/download/insecure_download_blocking.h" - #include "chrome/browser/download/save_package_file_picker.h" - #include "chrome/browser/enterprise/connectors/common.h" -+#if defined(FULL_SAFE_BROWSING) - #include "chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.h" - #include "chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router_factory.h" -+#endif - #include "chrome/browser/platform_util.h" - #include "chrome/browser/profiles/profile.h" -+#if defined(FULL_SAFE_BROWSING) - #include "chrome/browser/safe_browsing/safe_browsing_service.h" - #include "chrome/browser/ui/chrome_pages.h" - #include "chrome/browser/ui/scoped_tabbed_browser_displayer.h" - #include "chrome/common/buildflags.h" - #include "chrome/common/chrome_constants.h" -+#endif - #include "chrome/common/chrome_features.h" - #include "chrome/common/chrome_paths.h" - #include "chrome/common/pdf_util.h" -@@ -68,10 +72,12 @@ - #include "components/prefs/pref_member.h" - #include "components/prefs/pref_service.h" - #include "components/safe_browsing/buildflags.h" -+#if defined(FULL_SAFE_BROWSING) - #include "components/safe_browsing/content/browser/download/download_stats.h" - #include "components/safe_browsing/content/browser/web_ui/safe_browsing_ui.h" - #include "components/safe_browsing/content/common/file_type_policies.h" - #include "components/safe_search_api/safe_search_util.h" -+#endif - #include "components/services/quarantine/public/mojom/quarantine.mojom.h" - #include "components/services/quarantine/quarantine_impl.h" - #include "content/public/browser/browser_task_traits.h" -@@ -137,7 +143,9 @@ using content::DownloadManager; - using download::DownloadItem; - using download::DownloadPathReservationTracker; - using download::PathValidationResult; -+#if defined(FULL_SAFE_BROWSING) - using safe_browsing::DownloadFileType; -+#endif - using ConnectionType = net::NetworkChangeNotifier::ConnectionType; - - #if BUILDFLAG(FULL_SAFE_BROWSING) -@@ -360,12 +368,12 @@ void HandleInsecureDownloadInfoBarResult( - } - #endif - -+#if BUILDFLAG(FULL_SAFE_BROWSING) - void MaybeReportDangerousDownloadBlocked( - DownloadPrefs::DownloadRestriction download_restriction, - std::string danger_type, - std::string download_path, - download::DownloadItem* download) { --#if BUILDFLAG(FULL_SAFE_BROWSING) - if (download_restriction != - DownloadPrefs::DownloadRestriction::POTENTIALLY_DANGEROUS_FILES && - download_restriction != -@@ -405,8 +413,8 @@ void MaybeReportDangerousDownloadBlocked( - danger_type, download->GetMimeType(), /*scan_id*/ "", - download->GetTotalBytes(), safe_browsing::EventResult::BLOCKED); - } --#endif - } -+#endif - - #if BUILDFLAG(FULL_SAFE_BROWSING) - download::DownloadDangerType SavePackageDangerType( -@@ -464,13 +472,6 @@ void ChromeDownloadManagerDelegate::SetDownloadManager(DownloadManager* dm) { - - download_manager_ = dm; - -- safe_browsing::SafeBrowsingService* sb_service = -- g_browser_process->safe_browsing_service(); -- if (sb_service && !profile_->IsOffTheRecord()) { -- // Include this download manager in the set monitored by safe browsing. -- sb_service->AddDownloadManager(dm); -- } -- - if (download_manager_) { - download_manager_->AddObserver(this); - } -@@ -835,28 +836,10 @@ void ChromeDownloadManagerDelegate::ChooseSavePath( - void ChromeDownloadManagerDelegate::SanitizeSavePackageResourceName( - base::FilePath* filename, - const GURL& source_url) { -- safe_browsing::FileTypePolicies* file_type_policies = -- safe_browsing::FileTypePolicies::GetInstance(); -- -- const PrefService* prefs = profile_->GetPrefs(); -- if (file_type_policies->GetFileDangerLevel(*filename, source_url, prefs) == -- safe_browsing::DownloadFileType::NOT_DANGEROUS) -- return; -- -- base::FilePath default_filename = base::FilePath::FromUTF8Unsafe( -- l10n_util::GetStringUTF8(IDS_DEFAULT_DOWNLOAD_FILENAME)); -- *filename = filename->AddExtension(default_filename.BaseName().value()); - } - - void ChromeDownloadManagerDelegate::SanitizeDownloadParameters( - download::DownloadUrlParameters* params) { -- if (profile_->GetPrefs()->GetBoolean( -- policy::policy_prefs::kForceGoogleSafeSearch)) { -- GURL safe_url; -- safe_search_api::ForceGoogleSafeSearch(params->url(), &safe_url); -- if (!safe_url.is_empty()) -- params->set_url(std::move(safe_url)); -- } - } - - void ChromeDownloadManagerDelegate::OpenDownloadUsingPlatformHandler( -@@ -910,9 +893,6 @@ void ChromeDownloadManagerDelegate::OpenDownload(DownloadItem* download) { - chrome::ShowSettingsSubPage(browser, "certificates"); - else - browser->OpenURL(params); -- -- RecordDownloadOpen(DOWNLOAD_OPEN_METHOD_DEFAULT_BROWSER, -- download->GetMimeType()); - #endif // BUILDFLAG(IS_ANDROID) - } - -@@ -966,12 +946,6 @@ ChromeDownloadManagerDelegate::ApplicationClientIdForFileScanning() { - DownloadProtectionService* - ChromeDownloadManagerDelegate::GetDownloadProtectionService() { - DCHECK_CURRENTLY_ON(BrowserThread::UI); -- safe_browsing::SafeBrowsingService* sb_service = -- g_browser_process->safe_browsing_service(); -- if (sb_service && sb_service->download_protection_service()) { -- return sb_service->download_protection_service(); -- } -- - return nullptr; - } - #endif -@@ -1518,8 +1492,11 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined( - DownloadItemModel model(item); - model.DetermineAndSetShouldPreferOpeningInBrowser( - target_info->target_path, target_info->is_filetype_handled_safely); -+#if BUILDFLAG(FULL_SAFE_BROWSING) - model.SetDangerLevel(target_info->danger_level); -+#endif - } -+#if BUILDFLAG(FULL_SAFE_BROWSING) - if (ShouldBlockFile(item, target_info->danger_type)) { - MaybeReportDangerousDownloadBlocked( - download_prefs_->download_restriction(), "DANGEROUS_FILE_TYPE", -@@ -1528,6 +1505,7 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined( - // A dangerous type would take precedence over the blocking of the file. - target_info->danger_type = download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS; - } -+#endif - - base::FilePath target_path = target_info->target_path; - -@@ -1602,6 +1580,7 @@ bool ChromeDownloadManagerDelegate::ShouldBlockFile( - return false; - } - -+#if BUILDFLAG(FULL_SAFE_BROWSING) - DownloadPrefs::DownloadRestriction download_restriction = - download_prefs_->download_restriction(); - -@@ -1650,7 +1629,7 @@ bool ChromeDownloadManagerDelegate::ShouldBlockFile( - LOG(ERROR) << "Invalid download restruction value: " - << static_cast(download_restriction); - } -- -+#endif - return false; - } - -@@ -1664,7 +1643,6 @@ void ChromeDownloadManagerDelegate::MaybeSendDangerousDownloadOpenedReport( - service->MaybeSendDangerousDownloadOpenedReport(download, - show_download_in_folder); - } --#endif - if (!download->GetAutoOpened()) { - download::DownloadContent download_content = - download::DownloadContentFromMimeType(download->GetMimeType(), false); -@@ -1672,6 +1650,7 @@ void ChromeDownloadManagerDelegate::MaybeSendDangerousDownloadOpenedReport( - download->GetDangerType(), download_content, base::Time::Now(), - download->GetEndTime(), show_download_in_folder); - } -+#endif - } - - void ChromeDownloadManagerDelegate::CheckDownloadAllowed( -diff --git a/chrome/browser/download/chrome_download_manager_delegate.h b/chrome/browser/download/chrome_download_manager_delegate.h ---- a/chrome/browser/download/chrome_download_manager_delegate.h -+++ b/chrome/browser/download/chrome_download_manager_delegate.h -@@ -154,7 +154,7 @@ class ChromeDownloadManagerDelegate - - DownloadPrefs* download_prefs() { return download_prefs_.get(); } - --#if BUILDFLAG(FULL_SAFE_BROWSING) -+#if defined(FULL_SAFE_BROWSING) - // The state of a safebrowsing check. - class SafeBrowsingState : public DownloadCompletionBlocker { - public: -diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/download/download_item_model.cc ---- a/chrome/browser/download/download_item_model.cc -+++ b/chrome/browser/download/download_item_model.cc -@@ -33,7 +33,9 @@ - #include "chrome/browser/download/offline_item_utils.h" - #include "chrome/browser/enterprise/connectors/common.h" - #include "chrome/browser/enterprise/connectors/connectors_manager.h" -+#if BUILDFLAG(FULL_SAFE_BROWSING) - #include "chrome/browser/profiles/profile.h" -+#endif - #include "chrome/browser/safe_browsing/download_protection/download_protection_util.h" - #include "chrome/browser/safe_browsing/safe_browsing_service.h" - #include "chrome/browser/signin/identity_manager_factory.h" -@@ -44,8 +46,10 @@ - #include "components/download/public/common/download_item.h" - #include "components/safe_browsing/buildflags.h" - #include "components/safe_browsing/content/browser/web_ui/safe_browsing_ui.h" -+#if BUILDFLAG(FULL_SAFE_BROWSING) - #include "components/safe_browsing/content/common/file_type_policies.h" - #include "components/safe_browsing/content/common/proto/download_file_types.pb.h" -+#endif - #include "components/safe_browsing/core/common/features.h" - #include "components/signin/public/base/consent_level.h" - #include "components/signin/public/identity_manager/account_info.h" -@@ -71,7 +75,9 @@ - - using download::DownloadItem; - using InsecureDownloadStatus = download::DownloadItem::InsecureDownloadStatus; -+#if defined(FULL_SAFE_BROWSING) - using safe_browsing::DownloadFileType; -+#endif - using ReportThreatDetailsResult = - safe_browsing::PingManager::ReportThreatDetailsResult; - using TailoredVerdict = safe_browsing::ClientDownloadResponse::TailoredVerdict; -@@ -109,9 +115,11 @@ class DownloadItemModelData : public base::SupportsUserData::Data { - // for the file type. - absl::optional should_prefer_opening_in_browser_; - -+#if defined(FULL_SAFE_BROWSING) - // Danger level of the file determined based on the file type and whether - // there was a user action associated with the download. - DownloadFileType::DangerLevel danger_level_; -+#endif - - // Whether the download is currently being revived. - bool is_being_revived_; -@@ -161,7 +169,9 @@ DownloadItemModelData* DownloadItemModelData::GetOrCreate( - DownloadItemModelData::DownloadItemModelData() - : should_show_in_shelf_(true), - was_ui_notified_(false), -+#if defined(FULL_SAFE_BROWSING) - danger_level_(DownloadFileType::NOT_DANGEROUS), -+#endif - is_being_revived_(false) {} - - #if BUILDFLAG(FULL_SAFE_BROWSING) -@@ -544,6 +554,7 @@ void DownloadItemModel::SetShouldPreferOpeningInBrowser(bool preference) { - data->should_prefer_opening_in_browser_ = preference; - } - -+#if defined(FULL_SAFE_BROWSING) - DownloadFileType::DangerLevel DownloadItemModel::GetDangerLevel() const { - const DownloadItemModelData* data = DownloadItemModelData::Get(download_); - return data ? data->danger_level_ : DownloadFileType::NOT_DANGEROUS; -@@ -554,6 +565,7 @@ void DownloadItemModel::SetDangerLevel( - DownloadItemModelData* data = DownloadItemModelData::GetOrCreate(download_); - data->danger_level_ = danger_level; - } -+#endif - - download::DownloadItem::InsecureDownloadStatus - DownloadItemModel::GetInsecureDownloadStatus() const { -@@ -729,9 +741,6 @@ bool DownloadItemModel::IsCommandEnabled( - // filename. Don't base an "Always open" decision based on it. Also - // exclude extensions. - return download_->CanOpenDownload() && -- safe_browsing::FileTypePolicies::GetInstance() -- ->IsAllowedToOpenAutomatically( -- download_->GetTargetFilePath()) && - !download_crx_util::IsExtensionDownload(*download_); - case DownloadCommands::PAUSE: - return !download_->IsSavePackageDownload() && -diff --git a/chrome/browser/download/download_item_model.h b/chrome/browser/download/download_item_model.h ---- a/chrome/browser/download/download_item_model.h -+++ b/chrome/browser/download/download_item_model.h -@@ -14,7 +14,9 @@ - #include "chrome/browser/download/download_ui_model.h" - #include "components/download/public/common/download_item.h" - #include "components/safe_browsing/buildflags.h" -+#if defined(FULL_SAFE_BROWSING) - #include "components/safe_browsing/content/common/proto/download_file_types.pb.h" -+#endif - - namespace content { - class WebContents; -@@ -72,9 +74,11 @@ class DownloadItemModel : public DownloadUIModel, - void SetEphemeralWarningUiShownTime(absl::optional time) override; - bool ShouldPreferOpeningInBrowser() override; - void SetShouldPreferOpeningInBrowser(bool preference) override; -+#if defined(FULL_SAFE_BROWSING) - safe_browsing::DownloadFileType::DangerLevel GetDangerLevel() const override; - void SetDangerLevel( - safe_browsing::DownloadFileType::DangerLevel danger_level) override; -+#endif - download::DownloadItem::InsecureDownloadStatus GetInsecureDownloadStatus() - const override; - void OpenUsingPlatformHandler() override; -diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download/download_prefs.cc ---- a/chrome/browser/download/download_prefs.cc -+++ b/chrome/browser/download/download_prefs.cc -@@ -41,7 +41,9 @@ - #include "components/policy/core/browser/url_blocklist_manager.h" - #include "components/pref_registry/pref_registry_syncable.h" - #include "components/prefs/pref_service.h" -+#if defined(FULL_SAFE_BROWSING) - #include "components/safe_browsing/content/common/file_type_policies.h" -+#endif - #include "content/public/browser/browser_thread.h" - #include "content/public/browser/download_manager.h" - #include "content/public/browser/save_page_type.h" -@@ -67,7 +69,9 @@ - using content::BrowserContext; - using content::BrowserThread; - using content::DownloadManager; -+#if defined(FULL_SAFE_BROWSING) - using safe_browsing::FileTypePolicies; -+#endif - - namespace { - -@@ -268,14 +272,7 @@ DownloadPrefs::DownloadPrefs(Profile* profile) : profile_(profile) { - base::FilePath::StringType(1, base::FilePath::kExtensionSeparator) + - extension); - -- // Note that the list of file types that are not allowed to open -- // automatically can change in the future. When the list is tightened, it is -- // expected that some entries in the users' auto open list will get dropped -- // permanently as a result. -- if (FileTypePolicies::GetInstance()->IsAllowedToOpenAutomatically( -- filename_with_extension)) { -- auto_open_by_user_.insert(extension); -- } -+ auto_open_by_user_.insert(extension); - } - } - -@@ -460,10 +457,6 @@ bool DownloadPrefs::IsAutoOpenByPolicy(const GURL& url, - bool DownloadPrefs::EnableAutoOpenByUserBasedOnExtension( - const base::FilePath& file_name) { - base::FilePath::StringType extension = file_name.Extension(); -- if (!FileTypePolicies::GetInstance()->IsAllowedToOpenAutomatically( -- file_name)) { -- return false; -- } - - DCHECK(extension[0] == base::FilePath::kExtensionSeparator); - extension.erase(0, 1); -diff --git a/chrome/browser/download/download_stats.cc b/chrome/browser/download/download_stats.cc ---- a/chrome/browser/download/download_stats.cc -+++ b/chrome/browser/download/download_stats.cc -@@ -10,7 +10,9 @@ - #include "build/build_config.h" - #include "components/download/public/common/download_content.h" - #include "components/profile_metrics/browser_profile_type.h" -+#if defined(FULL_SAFE_BROWSING) - #include "components/safe_browsing/content/browser/download/download_stats.h" -+#endif - - void RecordDownloadSource(ChromeDownloadSource source) { - base::UmaHistogramEnumeration("Download.SourcesChrome", source, -@@ -24,8 +26,10 @@ void RecordDangerousDownloadWarningShown( - bool has_user_gesture) { - base::UmaHistogramEnumeration("Download.ShowedDownloadWarning", danger_type, - download::DOWNLOAD_DANGER_TYPE_MAX); -+#if defined(FULL_SAFE_BROWSING) - safe_browsing::RecordDangerousDownloadWarningShown( - danger_type, file_path, is_https, has_user_gesture); -+#endif - } - - void RecordDownloadOpen(ChromeDownloadOpenMethod open_method, -@@ -33,11 +37,13 @@ void RecordDownloadOpen(ChromeDownloadOpenMethod open_method, - base::RecordAction(base::UserMetricsAction("Download.Open")); - base::UmaHistogramEnumeration("Download.OpenMethod", open_method, - DOWNLOAD_OPEN_METHOD_LAST_ENTRY); -+#if defined(FULL_SAFE_BROWSING) - download::DownloadContent download_content = - download::DownloadContentFromMimeType( - mime_type_string, /*record_content_subcategory=*/false); - base::UmaHistogramEnumeration("Download.Open.ContentType", download_content, - download::DownloadContent::MAX); -+#endif - } - - void RecordDownloadOpenButtonPressed(bool is_download_completed) { -diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/browser/download/download_target_determiner.cc ---- a/chrome/browser/download/download_target_determiner.cc -+++ b/chrome/browser/download/download_target_determiner.cc -@@ -32,9 +32,11 @@ - #include "components/download/public/common/download_item.h" - #include "components/history/core/browser/history_service.h" - #include "components/prefs/pref_service.h" -+#if defined(FULL_SAFE_BROWSING) - #include "components/safe_browsing/content/browser/download/download_stats.h" - #include "components/safe_browsing/content/common/file_type_policies.h" - #include "components/safe_browsing/core/browser/safe_browsing_metrics_collector.h" -+#endif - #include "content/public/browser/browser_context.h" - #include "content/public/browser/browser_task_traits.h" - #include "content/public/browser/browser_thread.h" -@@ -75,13 +77,16 @@ - using content::BrowserThread; - using download::DownloadItem; - using download::DownloadPathReservationTracker; -+#if defined(FULL_SAFE_BROWSING) - using safe_browsing::DownloadFileType; -+#endif - - namespace { - - const base::FilePath::CharType kCrdownloadSuffix[] = - FILE_PATH_LITERAL(".crdownload"); - -+#if defined(FULL_SAFE_BROWSING) - // Condenses the results from HistoryService::GetVisibleVisitCountToHost() to a - // single bool. A host is considered visited before if prior visible visits were - // found in history and the first such visit was earlier than the most recent -@@ -92,6 +97,7 @@ void VisitCountsToVisitedBefore(base::OnceCallback callback, - result.success && result.count > 0 && - (result.first_visit.LocalMidnight() < base::Time::Now().LocalMidnight())); - } -+#endif - - #if BUILDFLAG(IS_WIN) - // Keeps track of whether Adobe Reader is up to date. -@@ -130,7 +136,9 @@ DownloadTargetDeterminer::DownloadTargetDeterminer( - create_target_directory_(false), - conflict_action_(conflict_action), - danger_type_(download->GetDangerType()), -+#if defined(FULL_SAFE_BROWSING) - danger_level_(DownloadFileType::NOT_DANGEROUS), -+#endif - virtual_path_(initial_virtual_path), - is_filetype_handled_safely_(false), - #if BUILDFLAG(IS_ANDROID) -@@ -322,12 +330,14 @@ base::FilePath DownloadTargetDeterminer::GenerateFileName() const { - download_->GetURL(), download_->GetContentDisposition(), referrer_charset, - suggested_filename, sniffed_mime_type, default_filename); - -- // We don't replace the file extension if sfafe browsing consider the file -+#if defined(FULL_SAFE_BROWSING) -+ // We don't replace the file extension if safe browsing consider the file - // extension to be unsafe. Just let safe browsing scan the generated file. - if (safe_browsing::FileTypePolicies::GetInstance()->IsCheckedBinaryFile( - generated_filename)) { - return generated_filename; - } -+#endif - - // If no mime type or explicitly specified a name, don't replace file - // extension. -@@ -959,6 +969,7 @@ DownloadTargetDeterminer::Result - return CONTINUE; - } - -+#if defined(FULL_SAFE_BROWSING) - // First determine the danger level assuming that the user doesn't have any - // prior visits to the referrer recoreded in history. The resulting danger - // level would be ALLOW_ON_USER_GESTURE if the level depends on the visit -@@ -995,6 +1006,7 @@ DownloadTargetDeterminer::Result - // invalid, then assume the referrer has not been visited before. - if (danger_type_ == download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS) - danger_type_ = download::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE; -+#endif - return CONTINUE; - } - -@@ -1002,6 +1014,7 @@ void DownloadTargetDeterminer::CheckVisitedReferrerBeforeDone( - bool visited_referrer_before) { - DCHECK_CURRENTLY_ON(BrowserThread::UI); - DCHECK_EQ(STATE_DETERMINE_INTERMEDIATE_PATH, next_state_); -+#if defined(FULL_SAFE_BROWSING) - safe_browsing::RecordDownloadFileTypeAttributes( - safe_browsing::FileTypePolicies::GetInstance()->GetFileDangerLevel( - virtual_path_.BaseName(), download_->GetURL(), -@@ -1013,6 +1026,7 @@ void DownloadTargetDeterminer::CheckVisitedReferrerBeforeDone( - if (danger_level_ != DownloadFileType::NOT_DANGEROUS && - danger_type_ == download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS) - danger_type_ = download::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE; -+#endif - DoLoop(); - } - -@@ -1111,7 +1125,9 @@ void DownloadTargetDeterminer::ScheduleCallbackAndDeleteSelf( - << " Intermediate:" << intermediate_path_.AsUTF8Unsafe() - << " Confirmation reason:" << static_cast(confirmation_reason_) - << " Danger type:" << danger_type_ -+#if defined(FULL_SAFE_BROWSING) - << " Danger level:" << danger_level_ -+#endif - << " Result:" << static_cast(result); - std::unique_ptr target_info(new DownloadTargetInfo); - -@@ -1123,7 +1139,9 @@ void DownloadTargetDeterminer::ScheduleCallbackAndDeleteSelf( - ? DownloadItem::TARGET_DISPOSITION_PROMPT - : DownloadItem::TARGET_DISPOSITION_OVERWRITE); - target_info->danger_type = danger_type_; -+#if defined(FULL_SAFE_BROWSING) - target_info->danger_level = danger_level_; -+#endif - target_info->intermediate_path = intermediate_path_; - target_info->mime_type = mime_type_; - target_info->is_filetype_handled_safely = is_filetype_handled_safely_; -@@ -1250,54 +1268,11 @@ bool DownloadTargetDeterminer::HasPromptedForPath() const { - DownloadItem::TARGET_DISPOSITION_PROMPT); - } - -+#if defined(FULL_SAFE_BROWSING) - DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel( - PriorVisitsToReferrer visits) const { - DCHECK_CURRENTLY_ON(BrowserThread::UI); -- -- // If the user has has been prompted or will be, assume that the user has -- // approved the download. A programmatic download is considered safe unless it -- // contains malware. -- if (HasPromptedForPath() || -- confirmation_reason_ != DownloadConfirmationReason::NONE || -- !download_->GetForcedFilePath().empty()) - return DownloadFileType::NOT_DANGEROUS; -- -- // User-initiated extension downloads from pref-whitelisted sources are not -- // considered dangerous. -- if (download_->HasUserGesture() && -- download_crx_util::IsTrustedExtensionDownload(GetProfile(), *download_)) { -- return DownloadFileType::NOT_DANGEROUS; -- } -- -- // Anything the user has marked auto-open is OK if it's user-initiated. -- if (download_prefs_->IsAutoOpenEnabled(download_->GetURL(), virtual_path_) && -- download_->HasUserGesture()) -- return DownloadFileType::NOT_DANGEROUS; -- -- DownloadFileType::DangerLevel danger_level = -- safe_browsing::FileTypePolicies::GetInstance()->GetFileDangerLevel( -- virtual_path_.BaseName(), download_->GetURL(), -- GetProfile()->GetPrefs()); -- -- // A danger level of ALLOW_ON_USER_GESTURE is used to label potentially -- // dangerous file types that have a high frequency of legitimate use. We would -- // like to avoid prompting for the legitimate cases as much as possible. To -- // that end, we consider a download to be legitimate if one of the following -- // is true, and avoid prompting: -- // -- // * The user navigated to the download URL via the omnibox (either by typing -- // the URL, pasting it, or using search). -- // -- // * The navigation that initiated the download has a user gesture associated -- // with it AND the user the user is familiar with the referring origin. A -- // user is considered familiar with a referring origin if a visit for a page -- // from the same origin was recorded on the previous day or earlier. -- if (danger_level == DownloadFileType::ALLOW_ON_USER_GESTURE && -- ((download_->GetTransitionType() & -- ui::PAGE_TRANSITION_FROM_ADDRESS_BAR) != 0 || -- (download_->HasUserGesture() && visits == VISITED_REFERRER))) -- return DownloadFileType::NOT_DANGEROUS; -- return danger_level; - } - - absl::optional -@@ -1311,6 +1286,7 @@ DownloadTargetDeterminer::GetLastDownloadBypassTimestamp() const { - EventType::DANGEROUS_DOWNLOAD_BYPASS) - : absl::nullopt; - } -+#endif - - void DownloadTargetDeterminer::OnDownloadDestroyed( - DownloadItem* download) { -diff --git a/chrome/browser/download/download_target_determiner.h b/chrome/browser/download/download_target_determiner.h ---- a/chrome/browser/download/download_target_determiner.h -+++ b/chrome/browser/download/download_target_determiner.h -@@ -19,7 +19,9 @@ - #include "components/download/public/common/download_danger_type.h" - #include "components/download/public/common/download_item.h" - #include "components/download/public/common/download_path_reservation_tracker.h" -+#if defined(FULL_SAFE_BROWSING) - #include "components/safe_browsing/content/common/proto/download_file_types.pb.h" -+#endif - #include "content/public/browser/download_manager_delegate.h" - #include "ppapi/buildflags/buildflags.h" - -@@ -345,6 +347,7 @@ class DownloadTargetDeterminer : public download::DownloadItem::Observer { - // operation. - bool HasPromptedForPath() const; - -+#if defined(FULL_SAFE_BROWSING) - // Returns true if this download should show the "dangerous file" warning. - // Various factors are considered, such as the type of the file, whether a - // user action initiated the download, and whether the user has explicitly -@@ -354,6 +357,7 @@ class DownloadTargetDeterminer : public download::DownloadItem::Observer { - // to true if the download requires explicit user consent. - safe_browsing::DownloadFileType::DangerLevel GetDangerLevel( - PriorVisitsToReferrer visits) const; -+#endif - - // Returns the timestamp of the last download bypass. - absl::optional GetLastDownloadBypassTimestamp() const; -@@ -373,7 +377,9 @@ class DownloadTargetDeterminer : public download::DownloadItem::Observer { - download::DownloadPathReservationTracker::FilenameConflictAction - conflict_action_; - download::DownloadDangerType danger_type_; -+#if defined(FULL_SAFE_BROWSING) - safe_browsing::DownloadFileType::DangerLevel danger_level_; -+#endif - base::FilePath virtual_path_; - base::FilePath local_path_; - base::FilePath intermediate_path_; -diff --git a/chrome/browser/download/download_target_info.cc b/chrome/browser/download/download_target_info.cc ---- a/chrome/browser/download/download_target_info.cc -+++ b/chrome/browser/download/download_target_info.cc -@@ -4,12 +4,16 @@ - - #include "chrome/browser/download/download_target_info.h" - -+#if defined(FULL_SAFE_BROWSING) - #include "components/safe_browsing/content/common/file_type_policies.h" -+#endif - - DownloadTargetInfo::DownloadTargetInfo() - : target_disposition(download::DownloadItem::TARGET_DISPOSITION_OVERWRITE), - danger_type(download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS), -+#if defined(FULL_SAFE_BROWSING) - danger_level(safe_browsing::DownloadFileType::NOT_DANGEROUS), -+#endif - is_filetype_handled_safely(false), - result(download::DOWNLOAD_INTERRUPT_REASON_NONE) {} - -diff --git a/chrome/browser/download/download_target_info.h b/chrome/browser/download/download_target_info.h ---- a/chrome/browser/download/download_target_info.h -+++ b/chrome/browser/download/download_target_info.h -@@ -11,7 +11,9 @@ - #include "components/download/public/common/download_danger_type.h" - #include "components/download/public/common/download_interrupt_reasons.h" - #include "components/download/public/common/download_item.h" -+#if defined(FULL_SAFE_BROWSING) - #include "components/safe_browsing/content/common/proto/download_file_types.pb.h" -+#endif - #include "third_party/abseil-cpp/absl/types/optional.h" - - struct DownloadTargetInfo { -@@ -33,6 +35,7 @@ struct DownloadTargetInfo { - // Danger type of the download. - download::DownloadDangerType danger_type; - -+#if defined(FULL_SAFE_BROWSING) - // The danger type of the download could be set to MAYBE_DANGEROUS_CONTENT if - // the file type is handled by SafeBrowsing. However, if the SafeBrowsing - // service is unable to verify whether the file is safe or not, we are on our -@@ -58,6 +61,7 @@ struct DownloadTargetInfo { - // SafeBrowsing may flag the file as being malicious, in which case the - // malicious classification should take precedence. - safe_browsing::DownloadFileType::DangerLevel danger_level; -+#endif - - // Suggested intermediate path. The downloaded bytes should be written to this - // path until all the bytes are available and the user has accepted a -diff --git a/chrome/browser/download/download_ui_model.cc b/chrome/browser/download/download_ui_model.cc ---- a/chrome/browser/download/download_ui_model.cc -+++ b/chrome/browser/download/download_ui_model.cc -@@ -41,7 +41,9 @@ - - using download::DownloadItem; - using offline_items_collection::FailState; -+#if defined(FULL_SAFE_BROWSING) - using safe_browsing::DownloadFileType; -+#endif - - namespace { - -@@ -472,12 +474,14 @@ bool DownloadUIModel::ShouldPreferOpeningInBrowser() { - - void DownloadUIModel::SetShouldPreferOpeningInBrowser(bool preference) {} - -+#if defined(FULL_SAFE_BROWSING) - DownloadFileType::DangerLevel DownloadUIModel::GetDangerLevel() const { - return DownloadFileType::NOT_DANGEROUS; - } - - void DownloadUIModel::SetDangerLevel( - DownloadFileType::DangerLevel danger_level) {} -+#endif - - download::DownloadItem::InsecureDownloadStatus - DownloadUIModel::GetInsecureDownloadStatus() const { -diff --git a/chrome/browser/download/download_ui_model.h b/chrome/browser/download/download_ui_model.h ---- a/chrome/browser/download/download_ui_model.h -+++ b/chrome/browser/download/download_ui_model.h -@@ -18,8 +18,10 @@ - #include "components/download/public/common/download_item.h" - #include "components/offline_items_collection/core/offline_item.h" - #include "components/safe_browsing/buildflags.h" -+#if defined(FULL_SAFE_BROWSING) - #include "components/safe_browsing/content/common/proto/download_file_types.pb.h" - #include "third_party/abseil-cpp/absl/types/optional.h" -+#endif - #include "ui/base/models/image_model.h" - #include "ui/color/color_id.h" - #include "ui/gfx/vector_icon_types.h" -@@ -362,6 +364,7 @@ class DownloadUIModel { - // Change what's returned by ShouldPreferOpeningInBrowser to |preference|. - virtual void SetShouldPreferOpeningInBrowser(bool preference); - -+#if defined(FULL_SAFE_BROWSING) - // Return the danger level determined during download target determination. - // The value returned here is independent of the danger level as determined by - // the Safe Browsing. -@@ -370,6 +373,7 @@ class DownloadUIModel { - // Change what's returned by GetDangerLevel(). - virtual void SetDangerLevel( - safe_browsing::DownloadFileType::DangerLevel danger_level); -+#endif - - // Return the mixed content status determined during download target - // determination. -diff --git a/chrome/browser/extensions/api/downloads/downloads_api.cc b/chrome/browser/extensions/api/downloads/downloads_api.cc ---- a/chrome/browser/extensions/api/downloads/downloads_api.cc -+++ b/chrome/browser/extensions/api/downloads/downloads_api.cc -@@ -37,7 +37,6 @@ - #include "chrome/browser/download/bubble/download_bubble_ui_controller.h" - #include "chrome/browser/download/download_core_service.h" - #include "chrome/browser/download/download_core_service_factory.h" --#include "chrome/browser/download/download_danger_prompt.h" - #include "chrome/browser/download/download_file_icon_extractor.h" - #include "chrome/browser/download/download_open_prompt.h" - #include "chrome/browser/download/download_prefs.h" -@@ -1361,9 +1360,6 @@ DownloadsAcceptDangerFunction::DownloadsAcceptDangerFunction() {} - - DownloadsAcceptDangerFunction::~DownloadsAcceptDangerFunction() {} - --DownloadsAcceptDangerFunction::OnPromptCreatedCallback* -- DownloadsAcceptDangerFunction::on_prompt_created_ = nullptr; -- - ExtensionFunction::ResponseAction DownloadsAcceptDangerFunction::Run() { - absl::optional params = - downloads::AcceptDanger::Params::Create(args()); -@@ -1401,42 +1397,7 @@ void DownloadsAcceptDangerFunction::PromptOrWait(int download_id, int retries) { - return; - } - RecordApiFunctions(DOWNLOADS_FUNCTION_ACCEPT_DANGER); -- // DownloadDangerPrompt displays a modal dialog using native widgets that the -- // user must either accept or cancel. It cannot be scripted. -- DownloadDangerPrompt* prompt = DownloadDangerPrompt::Create( -- download_item, web_contents, true, -- base::BindOnce(&DownloadsAcceptDangerFunction::DangerPromptCallback, this, -- download_id)); -- // DownloadDangerPrompt deletes itself -- if (on_prompt_created_ && !on_prompt_created_->is_null()) -- std::move(*on_prompt_created_).Run(prompt); -- // Function finishes in DangerPromptCallback(). --} -- --void DownloadsAcceptDangerFunction::DangerPromptCallback( -- int download_id, -- DownloadDangerPrompt::Action action) { -- DCHECK_CURRENTLY_ON(BrowserThread::UI); -- DownloadItem* download_item = GetDownload( -- browser_context(), include_incognito_information(), download_id); -- std::string error; -- if (InvalidId(download_item, &error) || -- Fault(download_item->GetState() != DownloadItem::IN_PROGRESS, -- download_extension_errors::kNotInProgress, &error)) { -- Respond(Error(std::move(error))); -- return; -- } -- switch (action) { -- case DownloadDangerPrompt::ACCEPT: -- download_item->ValidateDangerousDownload(); -- break; -- case DownloadDangerPrompt::CANCEL: -- download_item->Remove(); -- break; -- case DownloadDangerPrompt::DISMISS: -- break; -- } -- Respond(NoArguments()); -+ download_item->ValidateDangerousDownload(); - } - - DownloadsShowFunction::DownloadsShowFunction() {} -diff --git a/chrome/browser/extensions/api/downloads/downloads_api.h b/chrome/browser/extensions/api/downloads/downloads_api.h ---- a/chrome/browser/extensions/api/downloads/downloads_api.h -+++ b/chrome/browser/extensions/api/downloads/downloads_api.h -@@ -13,7 +13,6 @@ - #include "base/memory/raw_ptr.h" - #include "base/scoped_observation.h" - #include "base/time/time.h" --#include "chrome/browser/download/download_danger_prompt.h" - #include "chrome/common/extensions/api/downloads.h" - #include "components/download/content/public/all_download_item_notifier.h" - #include "components/download/public/common/download_path_reservation_tracker.h" -@@ -201,13 +200,6 @@ class DownloadsRemoveFileFunction : public ExtensionFunction { - - class DownloadsAcceptDangerFunction : public ExtensionFunction { - public: -- using OnPromptCreatedCallback = -- base::OnceCallback; -- static void OnPromptCreatedForTesting( -- OnPromptCreatedCallback* callback) { -- on_prompt_created_ = callback; -- } -- - DECLARE_EXTENSION_FUNCTION("downloads.acceptDanger", DOWNLOADS_ACCEPTDANGER) - DownloadsAcceptDangerFunction(); - -@@ -219,13 +211,9 @@ class DownloadsAcceptDangerFunction : public ExtensionFunction { - - protected: - ~DownloadsAcceptDangerFunction() override; -- void DangerPromptCallback(int download_id, -- DownloadDangerPrompt::Action action); - - private: - void PromptOrWait(int download_id, int retries); -- -- static OnPromptCreatedCallback* on_prompt_created_; - }; - - class DownloadsShowFunction : public ExtensionFunction { -diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc ---- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc -+++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc -@@ -1288,21 +1288,9 @@ WebstorePrivateGetExtensionStatusFunction::Run() { - GetExtensionStatus::Params::Create(args()); - EXTENSION_FUNCTION_VALIDATE(params); - -- const ExtensionId& extension_id = params->id; -- -- if (!crx_file::id_util::IdIsValid(extension_id)) { -- return RespondNow(Error(kWebstoreInvalidIdError)); -- } -- -- if (!params->manifest) -- return RespondNow(BuildResponseWithoutManifest(extension_id)); -- -- data_decoder::DataDecoder::ParseJsonIsolated( -- *(params->manifest), -- base::BindOnce( -- &WebstorePrivateGetExtensionStatusFunction::OnManifestParsed, this, -- extension_id)); -- return RespondLater(); -+ return RespondNow(ErrorWithArguments( -+ api::webstore_private::GetReferrerChain::Results::Create(""), -+ kWebstoreUserCancelledError)); - } - - ExtensionFunction::ResponseValue -diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc ---- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc -+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc -@@ -32,7 +32,10 @@ - #include "chrome/browser/download/download_prefs.h" - #include "chrome/browser/file_system_access/file_system_access_permission_request_manager.h" - #include "chrome/browser/profiles/profile.h" -+#if defined(FULL_SAFE_BROWSING) - #include "chrome/browser/safe_browsing/download_protection/download_protection_util.h" -+#include "components/safe_browsing/content/common/file_type_policies.h" -+#endif - #include "chrome/browser/ui/file_system_access_dialogs.h" - #include "chrome/common/chrome_paths.h" - #include "chrome/common/pdf_util.h" -@@ -41,7 +44,6 @@ - #include "components/content_settings/core/common/content_settings.h" - #include "components/permissions/permission_util.h" - #include "components/safe_browsing/buildflags.h" --#include "components/safe_browsing/content/common/file_type_policies.h" - #include "content/public/browser/browser_task_traits.h" - #include "content/public/browser/browser_thread.h" - #include "content/public/browser/disallow_activation_reason.h" -@@ -119,6 +121,7 @@ const char kPathKey[] = "path"; - const char kPathTypeKey[] = "path-type"; - const char kTimestampKey[] = "timestamp"; - -+#if defined(FULL_SAFE_BROWSING) - void ShowFileSystemAccessRestrictedDirectoryDialogOnUIThread( - content::GlobalRenderFrameHostId frame_id, - const url::Origin& origin, -@@ -176,6 +179,7 @@ void ShowFileSystemAccessDangerousFileDialogOnUIThread( - ShowFileSystemAccessDangerousFileDialog(origin, path, std::move(callback), - web_contents); - } -+#endif - - #if BUILDFLAG(IS_WIN) - bool ContainsInvalidDNSCharacter(base::FilePath::StringType hostname) { -@@ -398,6 +402,7 @@ bool ShouldBlockAccessToPath(const base::FilePath& check_path, - return true; - } - -+#if defined(FULL_SAFE_BROWSING) - void DoSafeBrowsingCheckOnUIThread( - content::GlobalRenderFrameHostId frame_id, - std::unique_ptr item, -@@ -476,6 +481,7 @@ InterpretSafeBrowsingResult(safe_browsing::DownloadCheckResult result) { - NOTREACHED(); - return ChromeFileSystemAccessPermissionContext::AfterWriteCheckResult::kBlock; - } -+#endif - - std::string GenerateLastPickedDirectoryKey(const std::string& id) { - return id.empty() ? kDefaultLastPickedDirectoryKey -@@ -493,6 +499,7 @@ base::StringPiece GetGrantKeyFromGrantType(GrantType type) { - : kPermissionReadableKey; - } - -+#if defined(FULL_SAFE_BROWSING) - bool FileHasDangerousExtension(const url::Origin& origin, - const base::FilePath& path, - Profile* profile) { -@@ -504,6 +511,7 @@ bool FileHasDangerousExtension(const url::Origin& origin, - return danger_level == safe_browsing::DownloadFileType::DANGEROUS || - danger_level == safe_browsing::DownloadFileType::ALLOW_ON_USER_GESTURE; - } -+#endif - - } // namespace - -@@ -1334,6 +1342,7 @@ void ChromeFileSystemAccessPermissionContext::CheckPathAgainstBlocklist( - std::move(callback)); - } - -+#if defined(FULL_SAFE_BROWSING) - void ChromeFileSystemAccessPermissionContext::PerformAfterWriteChecks( - std::unique_ptr item, - content::GlobalRenderFrameHostId frame_id, -@@ -1356,6 +1365,7 @@ void ChromeFileSystemAccessPermissionContext::PerformAfterWriteChecks( - base::SequencedTaskRunner::GetCurrentDefault(), - std::move(callback)))); - } -+#endif - - void ChromeFileSystemAccessPermissionContext::DidCheckPathAgainstBlocklist( - const url::Origin& origin, -@@ -1366,7 +1376,7 @@ void ChromeFileSystemAccessPermissionContext::DidCheckPathAgainstBlocklist( - base::OnceCallback callback, - bool should_block) { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -- -+#if defined(FULL_SAFE_BROWSING) - if (user_action == UserAction::kNone) { - std::move(callback).Run(should_block ? SensitiveEntryResult::kAbort - : SensitiveEntryResult::kAllowed); -@@ -1397,7 +1407,7 @@ void ChromeFileSystemAccessPermissionContext::DidCheckPathAgainstBlocklist( - frame_id, origin, path, std::move(result_callback))); - return; - } -- -+#endif - std::move(callback).Run(SensitiveEntryResult::kAllowed); - } - -diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h ---- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h -+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h -@@ -16,6 +16,7 @@ - #include "base/time/default_clock.h" - #include "base/timer/timer.h" - #include "components/permissions/object_permission_context_base.h" -+#include "components/safe_browsing/buildflags.h" - #include "content/public/browser/file_system_access_permission_context.h" - #include "third_party/blink/public/mojom/file_system_access/file_system_access_manager.mojom-forward.h" - #include "third_party/blink/public/mojom/permissions/permission_status.mojom.h" -@@ -90,10 +91,6 @@ class ChromeFileSystemAccessPermissionContext - UserAction user_action, - content::GlobalRenderFrameHostId frame_id, - base::OnceCallback callback) override; -- void PerformAfterWriteChecks( -- std::unique_ptr item, -- content::GlobalRenderFrameHostId frame_id, -- base::OnceCallback callback) override; - bool CanObtainReadPermission(const url::Origin& origin) override; - bool CanObtainWritePermission(const url::Origin& origin) override; - -diff --git a/chrome/browser/lookalikes/lookalike_url_controller_client.cc b/chrome/browser/lookalikes/lookalike_url_controller_client.cc ---- a/chrome/browser/lookalikes/lookalike_url_controller_client.cc -+++ b/chrome/browser/lookalikes/lookalike_url_controller_client.cc -@@ -56,8 +56,5 @@ void LookalikeUrlControllerClient::GoBack() { - } - - void LookalikeUrlControllerClient::Proceed() { -- LookalikeUrlService::Get( -- Profile::FromBrowserContext(web_contents_->GetBrowserContext())) -- ->SetUserIgnore(request_url_); - Reload(); - } -diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc ---- a/chrome/browser/metrics/chrome_metrics_service_client.cc -+++ b/chrome/browser/metrics/chrome_metrics_service_client.cc -@@ -949,7 +949,6 @@ void ChromeMetricsServiceClient::RegisterMetricsServiceProviders() { - metrics_service_->RegisterMetricsProvider( - std::make_unique()); - #endif -- - #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH) - metrics_service_->RegisterMetricsProvider( - std::make_unique()); -diff --git a/chrome/browser/net/trial_comparison_cert_verifier_controller.cc b/chrome/browser/net/trial_comparison_cert_verifier_controller.cc ---- a/chrome/browser/net/trial_comparison_cert_verifier_controller.cc -+++ b/chrome/browser/net/trial_comparison_cert_verifier_controller.cc -@@ -137,9 +137,6 @@ void TrialComparisonCertVerifierController::SendTrialReport( - std::string serialized_report; - if (!report.Serialize(&serialized_report)) - return; -- -- CertificateReportingServiceFactory::GetForBrowserContext(profile_)->Send( -- serialized_report); - } - - // static -diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc ---- a/chrome/browser/password_manager/chrome_password_manager_client.cc -+++ b/chrome/browser/password_manager/chrome_password_manager_client.cc -@@ -124,10 +124,10 @@ - #include "ui/base/data_transfer_policy/data_transfer_endpoint.h" - #include "url/url_constants.h" - -+#include "third_party/blink/public/mojom/clipboard/clipboard.mojom.h" - #if BUILDFLAG(SAFE_BROWSING_AVAILABLE) - #include "chrome/browser/safe_browsing/advanced_protection_status_manager.h" - #include "chrome/browser/safe_browsing/advanced_protection_status_manager_factory.h" --#include "third_party/blink/public/mojom/clipboard/clipboard.mojom.h" - #endif - - #if BUILDFLAG(IS_ANDROID) -@@ -883,21 +883,13 @@ autofill::LanguageCode ChromePasswordManagerClient::GetPageLanguage() const { - - safe_browsing::PasswordProtectionService* - ChromePasswordManagerClient::GetPasswordProtectionService() const { -- return safe_browsing::ChromePasswordProtectionService:: -- GetPasswordProtectionService(profile_); -+ return nullptr; - } - - #if defined(ON_FOCUS_PING_ENABLED) - void ChromePasswordManagerClient::CheckSafeBrowsingReputation( - const GURL& form_action, - const GURL& frame_url) { -- safe_browsing::PasswordProtectionService* pps = -- GetPasswordProtectionService(); -- if (pps) { -- pps->MaybeStartPasswordFieldOnFocusRequest( -- web_contents(), web_contents()->GetLastCommittedURL(), form_action, -- frame_url, pps->GetAccountInfo().hosted_domain); -- } - } - #endif // defined(ON_FOCUS_PING_ENABLED) - -@@ -909,15 +901,6 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry( - bool password_field_exists, - uint64_t reused_password_hash, - const std::string& domain) { -- safe_browsing::PasswordProtectionService* pps = -- GetPasswordProtectionService(); -- if (!pps) -- return; -- -- pps->MaybeStartProtectedPasswordEntryRequest( -- web_contents(), web_contents()->GetLastCommittedURL(), username, -- password_type, matching_reused_credentials, password_field_exists); -- - #if !BUILDFLAG(IS_ANDROID) - // If the webpage is not an extension page, do nothing. - if (!GURL(domain).SchemeIs(kExtensionScheme)) { -@@ -956,11 +939,6 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry( - } - - void ChromePasswordManagerClient::LogPasswordReuseDetectedEvent() { -- safe_browsing::PasswordProtectionService* pps = -- GetPasswordProtectionService(); -- if (pps) { -- pps->MaybeLogPasswordReuseDetectedEvent(web_contents()); -- } - } - - #if !BUILDFLAG(IS_ANDROID) -@@ -1582,6 +1560,7 @@ bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage( - is_enabled = false; - } - -+#if BUILDFLAG(FULL_SAFE_BROWSING) - // SafeBrowsing Delayed Warnings experiment can delay some SafeBrowsing - // warnings until user interaction. If the current page has a delayed warning, - // it'll have a user interaction observer attached. Disable password -@@ -1592,6 +1571,7 @@ bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage( - observer->OnPasswordSaveOrAutofillDenied(); - is_enabled = false; - } -+#endif - - if (log_manager_->IsLoggingActive()) { - password_manager::BrowserSavePasswordProgressLogger logger( -diff --git a/chrome/browser/permissions/chrome_permissions_client.cc b/chrome/browser/permissions/chrome_permissions_client.cc ---- a/chrome/browser/permissions/chrome_permissions_client.cc -+++ b/chrome/browser/permissions/chrome_permissions_client.cc -@@ -20,7 +20,6 @@ - #include "chrome/browser/engagement/important_sites_util.h" - #include "chrome/browser/metrics/ukm_background_recorder_service.h" - #include "chrome/browser/permissions/adaptive_quiet_notification_permission_ui_enabler.h" --#include "chrome/browser/permissions/contextual_notification_permission_ui_selector.h" - #include "chrome/browser/permissions/origin_keyed_permission_action_service_factory.h" - #include "chrome/browser/permissions/permission_actions_history_factory.h" - #include "chrome/browser/permissions/permission_decision_auto_blocker_factory.h" -@@ -313,19 +312,6 @@ ChromePermissionsClient::DetermineIgnoreReason( - } - #endif - --std::vector> --ChromePermissionsClient::CreatePermissionUiSelectors( -- content::BrowserContext* browser_context) { -- std::vector> selectors; -- selectors.emplace_back( -- std::make_unique()); -- selectors.emplace_back(std::make_unique( -- Profile::FromBrowserContext(browser_context))); -- selectors.emplace_back(std::make_unique( -- Profile::FromBrowserContext(browser_context))); -- return selectors; --} -- - void ChromePermissionsClient::OnPromptResolved( - permissions::RequestType request_type, - permissions::PermissionAction action, -diff --git a/chrome/browser/permissions/chrome_permissions_client.h b/chrome/browser/permissions/chrome_permissions_client.h ---- a/chrome/browser/permissions/chrome_permissions_client.h -+++ b/chrome/browser/permissions/chrome_permissions_client.h -@@ -52,9 +52,6 @@ class ChromePermissionsClient : public permissions::PermissionsClient { - GetUkmSourceIdCallback callback) override; - permissions::IconId GetOverrideIconId( - permissions::RequestType request_type) override; -- std::vector> -- CreatePermissionUiSelectors( -- content::BrowserContext* browser_context) override; - - #if !BUILDFLAG(IS_ANDROID) - void TriggerPromptHatsSurveyIfEnabled( -diff --git a/chrome/browser/permissions/permission_revocation_request.cc b/chrome/browser/permissions/permission_revocation_request.cc ---- a/chrome/browser/permissions/permission_revocation_request.cc -+++ b/chrome/browser/permissions/permission_revocation_request.cc -@@ -145,6 +145,7 @@ void PermissionRevocationRequest::CheckAndRevokeIfBlocklisted() { - return; - } - -+#if BUILDFLAG(FULL_SAFE_BROWSING) - CrowdDenyPreloadData* crowd_deny = CrowdDenyPreloadData::GetInstance(); - permissions::PermissionUmaUtil::RecordCrowdDenyVersionAtAbuseCheckTime( - crowd_deny->version_on_disk()); -@@ -156,10 +157,14 @@ void PermissionRevocationRequest::CheckAndRevokeIfBlocklisted() { - url::Origin::Create(origin_), - base::BindOnce(&PermissionRevocationRequest::OnSiteReputationReady, - weak_factory_.GetWeakPtr())); -+#else -+ NotifyCallback(Outcome::PERMISSION_NOT_REVOKED); -+#endif - } - - void PermissionRevocationRequest::OnSiteReputationReady( - const CrowdDenyPreloadData::SiteReputation* site_reputation) { -+#if BUILDFLAG(FULL_SAFE_BROWSING) - if (crowd_deny_request_start_time_.has_value()) { - crowd_deny_request_duration_ = - base::TimeTicks::Now() - crowd_deny_request_start_time_.value(); -@@ -192,6 +197,7 @@ void PermissionRevocationRequest::OnSiteReputationReady( - return; - } - } -+#endif - NotifyCallback(Outcome::PERMISSION_NOT_REVOKED); - } - -diff --git a/chrome/browser/permissions/quiet_notification_permission_ui_config.cc b/chrome/browser/permissions/quiet_notification_permission_ui_config.cc ---- a/chrome/browser/permissions/quiet_notification_permission_ui_config.cc -+++ b/chrome/browser/permissions/quiet_notification_permission_ui_config.cc -@@ -89,8 +89,8 @@ bool QuietNotificationPermissionUiConfig::IsCrowdDenyTriggeringEnabled() { - return false; - - return base::GetFieldTrialParamByFeatureAsBool( -- features::kQuietNotificationPrompts, kEnableCrowdDenyTriggering, -- true /* default */); -+ features::kQuietNotificationPrompts, kEnableCrowdDenyTriggering, // disabled by default in Bromite -+ false /* default */); - } - - // static -diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc ---- a/chrome/browser/prefs/browser_prefs.cc -+++ b/chrome/browser/prefs/browser_prefs.cc -@@ -10,6 +10,7 @@ - #include "base/trace_event/trace_event.h" - #include "build/branding_buildflags.h" - #include "build/build_config.h" -+#include "components/safe_browsing/buildflags.h" - #include "build/chromecast_buildflags.h" - #include "build/chromeos_buildflags.h" - #include "chrome/browser/about_flags.h" -@@ -1430,7 +1431,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, - PushMessagingAppIdentifier::RegisterProfilePrefs(registry); - QuietNotificationPermissionUiState::RegisterProfilePrefs(registry); - RegisterBrowserUserPrefs(registry); -+#if BUILDFLAG(SAFE_BROWSING_AVAILABLE) - safe_browsing::file_type::RegisterProfilePrefs(registry); -+#endif - safe_browsing::RegisterProfilePrefs(registry); - SearchPrefetchService::RegisterProfilePrefs(registry); - blocked_content::SafeBrowsingTriggeredPopupBlocker::RegisterProfilePrefs( -diff --git a/chrome/browser/privacy_guide/android/BUILD.gn b/chrome/browser/privacy_guide/android/BUILD.gn ---- a/chrome/browser/privacy_guide/android/BUILD.gn -+++ b/chrome/browser/privacy_guide/android/BUILD.gn -@@ -18,7 +18,6 @@ android_library("java") { - "java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideMetricsDelegate.java", - "java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuidePagerAdapter.java", - "java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideUtils.java", -- "java/src/org/chromium/chrome/browser/privacy_guide/SafeBrowsingFragment.java", - "java/src/org/chromium/chrome/browser/privacy_guide/StepDisplayHandler.java", - "java/src/org/chromium/chrome/browser/privacy_guide/StepDisplayHandlerImpl.java", - "java/src/org/chromium/chrome/browser/privacy_guide/WelcomeFragment.java", -@@ -63,7 +62,6 @@ robolectric_library("junit") { - "junit/src/org/chromium/chrome/browser/privacy_guide/NavbarVisibilityDelegateTest.java", - "junit/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideMetricsDelegateTest.java", - "junit/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuidePagerAdapterTest.java", -- "junit/src/org/chromium/chrome/browser/privacy_guide/SafeBrowsingFragmentTest.java", - "junit/src/org/chromium/chrome/browser/privacy_guide/StepDisplayHandlerImplTest.java", - ] - deps = [ -diff --git a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideFragment.java b/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideFragment.java ---- a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideFragment.java -+++ b/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideFragment.java -@@ -178,9 +178,6 @@ public class PrivacyGuideFragment extends Fragment { - - @Override - public void onAttachFragment(@NonNull Fragment childFragment) { -- if (childFragment instanceof SafeBrowsingFragment) { -- ((SafeBrowsingFragment) childFragment).setBottomSheetController(mBottomSheetController); -- } - if (childFragment instanceof DoneFragment) { - DoneFragment doneFragment = (DoneFragment) childFragment; - doneFragment.setCustomTabIntentHelper(mCustomTabHelper); -diff --git a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuidePagerAdapter.java b/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuidePagerAdapter.java ---- a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuidePagerAdapter.java -+++ b/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuidePagerAdapter.java -@@ -70,8 +70,6 @@ public class PrivacyGuidePagerAdapter extends FragmentStateAdapter { - return new MSBBFragment(); - case PrivacyGuideFragment.FragmentType.HISTORY_SYNC: - return new HistorySyncFragment(); -- case PrivacyGuideFragment.FragmentType.SAFE_BROWSING: -- return new SafeBrowsingFragment(); - case PrivacyGuideFragment.FragmentType.COOKIES: - return new CookiesFragment(); - case PrivacyGuideFragment.FragmentType.DONE: -diff --git a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideUtils.java b/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideUtils.java ---- a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideUtils.java -+++ b/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideUtils.java -@@ -11,7 +11,6 @@ import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.safe_browsing.SafeBrowsingBridge; - import org.chromium.chrome.browser.safe_browsing.SafeBrowsingState; - import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; --import org.chromium.chrome.browser.signin.services.UnifiedConsentServiceBridge; - import org.chromium.chrome.browser.sync.SyncService; - import org.chromium.components.content_settings.CookieControlsMode; - import org.chromium.components.content_settings.PrefNames; -@@ -28,8 +27,7 @@ import java.util.Set; - */ - class PrivacyGuideUtils { - static boolean isMsbbEnabled() { -- return UnifiedConsentServiceBridge.isUrlKeyedAnonymizedDataCollectionEnabled( -- Profile.getLastUsedRegularProfile()); -+ return false; - } - - static boolean isHistorySyncEnabled() { -@@ -44,7 +42,7 @@ class PrivacyGuideUtils { - } - - static @SafeBrowsingState int getSafeBrowsingState() { -- return SafeBrowsingBridge.getSafeBrowsingState(); -+ return SafeBrowsingState.NO_SAFE_BROWSING; - } - - static @CookieControlsMode int getCookieControlsMode() { -diff --git a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/StepDisplayHandlerImpl.java b/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/StepDisplayHandlerImpl.java ---- a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/StepDisplayHandlerImpl.java -+++ b/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/StepDisplayHandlerImpl.java -@@ -23,7 +23,7 @@ class StepDisplayHandlerImpl implements StepDisplayHandler { - - @Override - public boolean shouldDisplaySafeBrowsing() { -- return PrivacyGuideUtils.getSafeBrowsingState() != SafeBrowsingState.NO_SAFE_BROWSING; -+ return false; - } - - @Override -diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc ---- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -125,7 +125,6 @@ - #include "chrome/browser/push_messaging/push_messaging_service_factory.h" - #include "chrome/browser/reading_list/reading_list_model_factory.h" - #include "chrome/browser/reduce_accept_language/reduce_accept_language_factory.h" --#include "chrome/browser/safe_browsing/certificate_reporting_service_factory.h" - #include "chrome/browser/safe_browsing/chrome_password_protection_service_factory.h" - #include "chrome/browser/safe_browsing/chrome_ping_manager_factory.h" - #include "chrome/browser/safe_browsing/client_side_detection_service_factory.h" -@@ -563,7 +562,6 @@ void ChromeBrowserMainExtraPartsProfiles:: - CertDbInitializerFactory::GetInstance(); - #endif - #if BUILDFLAG(SAFE_BROWSING_AVAILABLE) -- CertificateReportingServiceFactory::GetInstance(); - #endif - #if BUILDFLAG(ENABLE_SUPERVISED_USERS) - ChildAccountServiceFactory::GetInstance(); -@@ -897,13 +895,6 @@ void ChromeBrowserMainExtraPartsProfiles:: - safe_browsing::ExtensionTelemetryServiceFactory::GetInstance(); - safe_browsing::HashRealTimeServiceFactory::GetInstance(); - #endif -- safe_browsing::ChromePasswordProtectionServiceFactory::GetInstance(); -- safe_browsing::ChromePingManagerFactory::GetInstance(); -- safe_browsing::ClientSideDetectionServiceFactory::GetInstance(); -- safe_browsing::RealTimeUrlLookupServiceFactory::GetInstance(); -- safe_browsing::SafeBrowsingMetricsCollectorFactory::GetInstance(); -- safe_browsing::SafeBrowsingNavigationObserverManagerFactory::GetInstance(); -- safe_browsing::VerdictCacheManagerFactory::GetInstance(); - #if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE) - screen_ai::AXScreenAIAnnotatorFactory::EnsureFactoryBuilt(); - screen_ai::PdfOcrControllerFactory::GetInstance(); -@@ -957,7 +948,9 @@ void ChromeBrowserMainExtraPartsProfiles:: - } - #endif - TabRestoreServiceFactory::GetInstance(); -+#if BUILDFLAG(FULL_SAFE_BROWSING) - safe_browsing::TailoredSecurityServiceFactory::GetInstance(); -+#endif - TemplateURLFetcherFactory::GetInstance(); - TemplateURLServiceFactory::GetInstance(); - #if !BUILDFLAG(IS_ANDROID) -diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc ---- a/chrome/browser/profiles/profile_impl.cc -+++ b/chrome/browser/profiles/profile_impl.cc -@@ -93,7 +93,6 @@ - #include "chrome/browser/push_messaging/push_messaging_service_factory.h" - #include "chrome/browser/push_messaging/push_messaging_service_impl.h" - #include "chrome/browser/reduce_accept_language/reduce_accept_language_factory.h" --#include "chrome/browser/safe_browsing/safe_browsing_service.h" - #include "chrome/browser/sessions/exit_type_service.h" - #include "chrome/browser/sharing/sharing_service_factory.h" - #include "chrome/browser/signin/identity_manager_factory.h" -@@ -632,6 +631,7 @@ void ProfileImpl::LoadPrefsForNormalStartup(bool async_prefs) { - - mojo::PendingRemote - pref_validation_delegate; -+#if defined(FULL_SAFE_BROWSING) - scoped_refptr safe_browsing_service( - g_browser_process->safe_browsing_service()); - if (safe_browsing_service.get()) { -@@ -643,7 +643,7 @@ void ProfileImpl::LoadPrefsForNormalStartup(bool async_prefs) { - pref_validation_delegate.InitWithNewPipeAndPassReceiver()); - } - } -- -+#endif - prefs_ = - CreatePrefService(pref_registry_, CreateExtensionPrefStore(this, false), - profile_policy_connector_->policy_service(), -diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn ---- a/chrome/browser/safe_browsing/BUILD.gn -+++ b/chrome/browser/safe_browsing/BUILD.gn -@@ -7,6 +7,7 @@ import("//components/safe_browsing/buildflags.gni") - import("//extensions/buildflags/buildflags.gni") - - static_library("safe_browsing") { -+ if (false) { - sources = [ - "chrome_controller_client.cc", - "chrome_controller_client.h", -@@ -43,7 +44,6 @@ static_library("safe_browsing") { - "//components/resources:components_resources_grit", - "//components/safe_browsing:buildflags", - "//components/safe_browsing/content/browser", -- "//components/safe_browsing/content/browser:client_side_detection", - "//components/safe_browsing/content/browser/triggers:suspicious_site_trigger", - "//components/safe_browsing/content/browser/web_ui", - "//components/safe_browsing/core/browser", -@@ -96,6 +96,7 @@ static_library("safe_browsing") { - "//extensions/browser", - ] - } -+ } - - if (safe_browsing_mode != 0) { - # "Safe Browsing Basic" files used for safe browsing in full mode -@@ -182,7 +183,6 @@ static_library("safe_browsing") { - "//components/safe_browsing/content/browser/triggers:ad_sampler_trigger", - "//components/safe_browsing/content/browser/triggers:suspicious_site_trigger", - "//components/safe_browsing/content/browser/triggers:trigger_throttler", -- "//components/safe_browsing/content/common:file_type_policies", - "//components/safe_browsing/core/browser", - "//components/safe_browsing/core/browser:token_fetcher", - "//components/safe_browsing/core/browser:verdict_cache_manager", -diff --git a/chrome/browser/safe_browsing/android/BUILD.gn b/chrome/browser/safe_browsing/android/BUILD.gn ---- a/chrome/browser/safe_browsing/android/BUILD.gn -+++ b/chrome/browser/safe_browsing/android/BUILD.gn -@@ -17,7 +17,6 @@ source_set("android") { - deps = [ - ":jni_headers", - "//chrome/browser/profiles:profile", -- "//chrome/browser/safe_browsing:advanced_protection", - "//components/password_manager/core/browser/leak_detection", - "//components/password_manager/core/common", - "//components/prefs", -@@ -41,12 +40,8 @@ source_set("android") { - android_library("java") { - sources = [ - "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingBridge.java", -- "java/src/org/chromium/chrome/browser/safe_browsing/settings/EnhancedProtectionSettingsFragment.java", - "java/src/org/chromium/chrome/browser/safe_browsing/settings/NoProtectionConfirmationDialog.java", - "java/src/org/chromium/chrome/browser/safe_browsing/settings/RadioButtonGroupSafeBrowsingPreference.java", -- "java/src/org/chromium/chrome/browser/safe_browsing/settings/SafeBrowsingSettingsFragment.java", -- "java/src/org/chromium/chrome/browser/safe_browsing/settings/SafeBrowsingSettingsFragmentBase.java", -- "java/src/org/chromium/chrome/browser/safe_browsing/settings/StandardProtectionSettingsFragment.java", - ] - deps = [ - ":java_resources", -diff --git a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingBridge.java b/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingBridge.java ---- a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingBridge.java -+++ b/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingBridge.java -@@ -14,95 +14,4 @@ import org.chromium.base.annotations.NativeMethods; - */ - @JNINamespace("safe_browsing") - public final class SafeBrowsingBridge { -- /** -- * Reports UMA values based on files' extensions. -- * -- * @param path The file path. -- * @return The UMA value for the file. -- */ -- public static int umaValueForFile(String path) { -- return SafeBrowsingBridgeJni.get().umaValueForFile(path); -- } -- -- /** -- * @return Whether Safe Browsing Extended Reporting is currently enabled. -- */ -- public static boolean isSafeBrowsingExtendedReportingEnabled() { -- return SafeBrowsingBridgeJni.get().getSafeBrowsingExtendedReportingEnabled(); -- } -- -- /** -- * @param enabled Whether Safe Browsing Extended Reporting should be enabled. -- */ -- public static void setSafeBrowsingExtendedReportingEnabled(boolean enabled) { -- SafeBrowsingBridgeJni.get().setSafeBrowsingExtendedReportingEnabled(enabled); -- } -- -- /** -- * @return Whether Safe Browsing Extended Reporting is managed -- */ -- public static boolean isSafeBrowsingExtendedReportingManaged() { -- return SafeBrowsingBridgeJni.get().getSafeBrowsingExtendedReportingManaged(); -- } -- -- /** -- * @return The Safe Browsing state. It can be Enhanced Protection, Standard Protection, or No -- * Protection. -- */ -- public static @SafeBrowsingState int getSafeBrowsingState() { -- return SafeBrowsingBridgeJni.get().getSafeBrowsingState(); -- } -- -- /** -- * @param state Set the Safe Browsing state. It can be Enhanced Protection, Standard Protection, -- * or No Protection. -- */ -- public static void setSafeBrowsingState(@SafeBrowsingState int state) { -- SafeBrowsingBridgeJni.get().setSafeBrowsingState(state); -- } -- -- /** -- * @return Whether the Safe Browsing preference is managed. It can be managed by either -- * the SafeBrowsingEnabled policy(legacy) or the SafeBrowsingProtectionLevel policy(new). -- */ -- public static boolean isSafeBrowsingManaged() { -- return SafeBrowsingBridgeJni.get().isSafeBrowsingManaged(); -- } -- -- /** -- * @return Whether there is a Google account to use for the leak detection check. -- */ -- public static boolean hasAccountForLeakCheckRequest() { -- return SafeBrowsingBridgeJni.get().hasAccountForLeakCheckRequest(); -- } -- -- /** -- * @return Whether the Leak Detection for signed out users feature is enabled. -- */ -- public static boolean isLeakDetectionUnauthenticatedEnabled() { -- return SafeBrowsingBridgeJni.get().isLeakDetectionUnauthenticatedEnabled(); -- } -- -- /** -- * @return Whether the user is under Advanced Protection. -- */ -- public static boolean isUnderAdvancedProtection() { -- return SafeBrowsingBridgeJni.get().isUnderAdvancedProtection(); -- } -- -- @NativeMethods -- @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) -- public interface Natives { -- int umaValueForFile(String path); -- boolean getSafeBrowsingExtendedReportingEnabled(); -- void setSafeBrowsingExtendedReportingEnabled(boolean enabled); -- boolean getSafeBrowsingExtendedReportingManaged(); -- @SafeBrowsingState -- int getSafeBrowsingState(); -- void setSafeBrowsingState(@SafeBrowsingState int state); -- boolean isSafeBrowsingManaged(); -- boolean hasAccountForLeakCheckRequest(); -- boolean isLeakDetectionUnauthenticatedEnabled(); -- boolean isUnderAdvancedProtection(); -- } - } -diff --git a/chrome/browser/safe_browsing/android/safe_browsing_bridge.cc b/chrome/browser/safe_browsing/android/safe_browsing_bridge.cc ---- a/chrome/browser/safe_browsing/android/safe_browsing_bridge.cc -+++ b/chrome/browser/safe_browsing/android/safe_browsing_bridge.cc -@@ -36,65 +36,6 @@ PrefService* GetPrefService() { - - namespace safe_browsing { - --static jint JNI_SafeBrowsingBridge_UmaValueForFile( -- JNIEnv* env, -- const base::android::JavaParamRef& path) { -- base::FilePath file_path(ConvertJavaStringToUTF8(env, path)); -- return safe_browsing::FileTypePolicies::GetInstance()->UmaValueForFile( -- file_path); --} -- --static jboolean JNI_SafeBrowsingBridge_GetSafeBrowsingExtendedReportingEnabled( -- JNIEnv* env) { -- return safe_browsing::IsExtendedReportingEnabled(*GetPrefService()); --} -- --static void JNI_SafeBrowsingBridge_SetSafeBrowsingExtendedReportingEnabled( -- JNIEnv* env, -- jboolean enabled) { -- safe_browsing::SetExtendedReportingPrefAndMetric( -- GetPrefService(), enabled, -- safe_browsing::SBER_OPTIN_SITE_ANDROID_SETTINGS); --} -- --static jboolean JNI_SafeBrowsingBridge_GetSafeBrowsingExtendedReportingManaged( -- JNIEnv* env) { -- PrefService* pref_service = GetPrefService(); -- return pref_service->IsManagedPreference( -- prefs::kSafeBrowsingScoutReportingEnabled); --} -- --static jint JNI_SafeBrowsingBridge_GetSafeBrowsingState(JNIEnv* env) { -- return static_cast( -- safe_browsing::GetSafeBrowsingState(*GetPrefService())); --} -- --static void JNI_SafeBrowsingBridge_SetSafeBrowsingState(JNIEnv* env, -- jint state) { -- return safe_browsing::SetSafeBrowsingState( -- GetPrefService(), static_cast(state), -- /*is_esb_enabled_in_sync=*/false); --} -- --static jboolean JNI_SafeBrowsingBridge_IsSafeBrowsingManaged(JNIEnv* env) { -- return safe_browsing::IsSafeBrowsingPolicyManaged(*GetPrefService()); --} -- --static jboolean JNI_SafeBrowsingBridge_HasAccountForLeakCheckRequest( -- JNIEnv* env) { -- signin::IdentityManager* identity_manager = -- IdentityManagerFactory::GetForProfile( -- ProfileManager::GetLastUsedProfile()); -- return password_manager::LeakDetectionCheckImpl::HasAccountForRequest( -- identity_manager); --} -- --static jboolean JNI_SafeBrowsingBridge_IsLeakDetectionUnauthenticatedEnabled( -- JNIEnv* env) { -- return base::FeatureList::IsEnabled( -- password_manager::features::kLeakDetectionUnauthenticated); --} -- - static jboolean JNI_SafeBrowsingBridge_IsUnderAdvancedProtection(JNIEnv* env) { - Profile* profile = - ProfileManager::GetActiveUserProfile()->GetOriginalProfile(); -diff --git a/chrome/browser/safe_browsing/download_protection/download_protection_service.cc b/chrome/browser/safe_browsing/download_protection/download_protection_service.cc ---- a/chrome/browser/safe_browsing/download_protection/download_protection_service.cc -+++ b/chrome/browser/safe_browsing/download_protection/download_protection_service.cc -@@ -811,11 +811,13 @@ void DownloadProtectionService::RequestFinished(DeepScanningRequest* request) { - deep_scanning_requests_.erase(it); - } - -+#if BUILDFLAG(FULL_SAFE_BROWSING) - BinaryUploadService* DownloadProtectionService::GetBinaryUploadService( - Profile* profile, - const enterprise_connectors::AnalysisSettings& settings) { - return BinaryUploadService::GetForProfile(profile, settings); - } -+#endif - - SafeBrowsingNavigationObserverManager* - DownloadProtectionService::GetNavigationObserverManager( -diff --git a/chrome/browser/safe_browsing/download_protection/download_protection_service.h b/chrome/browser/safe_browsing/download_protection/download_protection_service.h ---- a/chrome/browser/safe_browsing/download_protection/download_protection_service.h -+++ b/chrome/browser/safe_browsing/download_protection/download_protection_service.h -@@ -25,7 +25,6 @@ - #include "base/supports_user_data.h" - #include "chrome/browser/download/download_commands.h" - #include "chrome/browser/enterprise/connectors/common.h" --#include "chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.h" - #include "chrome/browser/safe_browsing/download_protection/deep_scanning_request.h" - #include "chrome/browser/safe_browsing/download_protection/download_protection_observer.h" - #include "chrome/browser/safe_browsing/download_protection/download_protection_util.h" -@@ -332,11 +331,13 @@ class DownloadProtectionService { - void OnDangerousDownloadOpened(const download::DownloadItem* item, - Profile* profile); - -+#if BUILDFLAG(FULL_SAFE_BROWSING) - // Get the BinaryUploadService for the given |profile|. Virtual so it can be - // overridden in tests. - virtual BinaryUploadService* GetBinaryUploadService( - Profile* profile, - const enterprise_connectors::AnalysisSettings& settings); -+#endif - - // Get the SafeBrowsingNavigationObserverManager for the given |web_contents|. - SafeBrowsingNavigationObserverManager* GetNavigationObserverManager( -diff --git a/chrome/browser/safe_browsing/url_lookup_service_factory.cc b/chrome/browser/safe_browsing/url_lookup_service_factory.cc ---- a/chrome/browser/safe_browsing/url_lookup_service_factory.cc -+++ b/chrome/browser/safe_browsing/url_lookup_service_factory.cc -@@ -63,6 +63,7 @@ RealTimeUrlLookupServiceFactory::RealTimeUrlLookupServiceFactory() - - KeyedService* RealTimeUrlLookupServiceFactory::BuildServiceInstanceFor( - content::BrowserContext* context) const { -+#if BUILDFLAG(FULL_SAFE_BROWSING) - if (!g_browser_process->safe_browsing_service()) { - return nullptr; - } -@@ -85,6 +86,9 @@ KeyedService* RealTimeUrlLookupServiceFactory::BuildServiceInstanceFor( - profile->IsOffTheRecord(), g_browser_process->variations_service(), - SafeBrowsingNavigationObserverManagerFactory::GetForBrowserContext( - profile)); -+#else -+ return nullptr; -+#endif - } - - } // namespace safe_browsing -diff --git a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc b/chrome/browser/ssl/chrome_security_blocking_page_factory.cc ---- a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc -+++ b/chrome/browser/ssl/chrome_security_blocking_page_factory.cc -@@ -312,13 +312,7 @@ ChromeSecurityBlockingPageFactory::CreateHttpsOnlyModeBlockingPage( - std::make_unique(web_contents, - request_url); - -- Profile* profile = -- Profile::FromBrowserContext(web_contents->GetBrowserContext()); -- bool is_under_advanced_protection = -- profile && -- safe_browsing::AdvancedProtectionStatusManagerFactory::GetForProfile( -- profile) -- ->IsUnderAdvancedProtection(); -+ bool is_under_advanced_protection = false; - auto page = - std::make_unique( - web_contents, request_url, std::move(client), -diff --git a/chrome/browser/ssl/generated_https_first_mode_pref.cc b/chrome/browser/ssl/generated_https_first_mode_pref.cc ---- a/chrome/browser/ssl/generated_https_first_mode_pref.cc -+++ b/chrome/browser/ssl/generated_https_first_mode_pref.cc -@@ -27,20 +27,6 @@ GeneratedHttpsFirstModePref::GeneratedHttpsFirstModePref(Profile* profile) - base::BindRepeating( - &GeneratedHttpsFirstModePref::OnSourcePreferencesChanged, - base::Unretained(this))); -- -- // Track Advanced Protection status. -- if (base::FeatureList::IsEnabled( -- features::kHttpsFirstModeForAdvancedProtectionUsers)) { -- obs_.Observe( -- safe_browsing::AdvancedProtectionStatusManagerFactory::GetForProfile( -- profile_)); -- // On startup, AdvancedProtectionStatusManager runs before this class so we -- // don't get called back. Run the callback to get the AP setting. -- OnAdvancedProtectionStatusChanged( -- safe_browsing::AdvancedProtectionStatusManagerFactory::GetForProfile( -- profile_) -- ->IsUnderAdvancedProtection()); -- } - } - - GeneratedHttpsFirstModePref::~GeneratedHttpsFirstModePref() = default; -@@ -49,13 +35,6 @@ void GeneratedHttpsFirstModePref::OnSourcePreferencesChanged() { - NotifyObservers(kGeneratedHttpsFirstModePref); - } - --void GeneratedHttpsFirstModePref::OnAdvancedProtectionStatusChanged( -- bool enabled) { -- DCHECK(base::FeatureList::IsEnabled( -- features::kHttpsFirstModeForAdvancedProtectionUsers)); -- NotifyObservers(kGeneratedHttpsFirstModePref); --} -- - extensions::settings_private::SetPrefResult - GeneratedHttpsFirstModePref::SetPref(const base::Value* value) { - if (!value->is_bool()) { -@@ -74,10 +53,7 @@ GeneratedHttpsFirstModePref::SetPref(const base::Value* value) { - } - - settings_api::PrefObject GeneratedHttpsFirstModePref::GetPrefObject() const { -- bool is_advanced_protection_enabled = -- safe_browsing::AdvancedProtectionStatusManagerFactory::GetForProfile( -- profile_) -- ->IsUnderAdvancedProtection(); -+ bool is_advanced_protection_enabled = false; - - auto* backing_preference = - profile_->GetPrefs()->FindPreference(prefs::kHttpsOnlyModeEnabled); -diff --git a/chrome/browser/ssl/generated_https_first_mode_pref.h b/chrome/browser/ssl/generated_https_first_mode_pref.h ---- a/chrome/browser/ssl/generated_https_first_mode_pref.h -+++ b/chrome/browser/ssl/generated_https_first_mode_pref.h -@@ -18,9 +18,7 @@ - extern const char kGeneratedHttpsFirstModePref[]; - - class GeneratedHttpsFirstModePref -- : public extensions::settings_private::GeneratedPref, -- public safe_browsing::AdvancedProtectionStatusManager:: -- StatusChangedObserver { -+ : public extensions::settings_private::GeneratedPref { - public: - explicit GeneratedHttpsFirstModePref(Profile* profile); - ~GeneratedHttpsFirstModePref() override; -@@ -33,18 +31,10 @@ class GeneratedHttpsFirstModePref - // Fired when preferences used to generate this preference are changed. - void OnSourcePreferencesChanged(); - -- // safe_browsing::AdvancedProtectionStatusManager::StatusChangedObserver: -- void OnAdvancedProtectionStatusChanged(bool enabled) override; -- - private: - // Non-owning pointer to the profile this preference is generated for. - const raw_ptr profile_; - PrefChangeRegistrar user_prefs_registrar_; -- -- base::ScopedObservation< -- safe_browsing::AdvancedProtectionStatusManager, -- safe_browsing::AdvancedProtectionStatusManager::StatusChangedObserver> -- obs_{this}; - }; - - #endif // CHROME_BROWSER_SSL_GENERATED_HTTPS_FIRST_MODE_PREF_H_ -diff --git a/chrome/browser/ssl/https_first_mode_settings_tracker.cc b/chrome/browser/ssl/https_first_mode_settings_tracker.cc ---- a/chrome/browser/ssl/https_first_mode_settings_tracker.cc -+++ b/chrome/browser/ssl/https_first_mode_settings_tracker.cc -@@ -38,20 +38,6 @@ HttpsFirstModeService::HttpsFirstModeService(Profile* profile) - base::BindRepeating(&HttpsFirstModeService::OnHttpsFirstModePrefChanged, - base::Unretained(this))); - -- // Track Advanced Protection status. -- if (base::FeatureList::IsEnabled( -- features::kHttpsFirstModeForAdvancedProtectionUsers)) { -- obs_.Observe( -- safe_browsing::AdvancedProtectionStatusManagerFactory::GetForProfile( -- profile_)); -- // On startup, AdvancedProtectionStatusManager runs before this class so we -- // don't get called back. Run the callback to get the AP setting. -- OnAdvancedProtectionStatusChanged( -- safe_browsing::AdvancedProtectionStatusManagerFactory::GetForProfile( -- profile_) -- ->IsUnderAdvancedProtection()); -- } -- - // Make sure the pref state is logged and the synthetic field trial state is - // created at startup (as the pref may never change over the session). - bool enabled = profile_->GetPrefs()->GetBoolean(prefs::kHttpsOnlyModeEnabled); -@@ -106,8 +92,6 @@ HttpsFirstModeServiceFactory::HttpsFirstModeServiceFactory() - // Incognito (which uses the settings of the main profile) and Guest - // Mode. - ProfileSelections::BuildForRegularProfile()) { -- DependsOn( -- safe_browsing::AdvancedProtectionStatusManagerFactory::GetInstance()); - } - - HttpsFirstModeServiceFactory::~HttpsFirstModeServiceFactory() = default; -diff --git a/chrome/browser/ssl/https_first_mode_settings_tracker.h b/chrome/browser/ssl/https_first_mode_settings_tracker.h ---- a/chrome/browser/ssl/https_first_mode_settings_tracker.h -+++ b/chrome/browser/ssl/https_first_mode_settings_tracker.h -@@ -21,9 +21,7 @@ class Profile; - // field trial based on that state. - // - Changing the pref based on user's Advanced Protection status. - class HttpsFirstModeService -- : public KeyedService, -- public safe_browsing::AdvancedProtectionStatusManager:: -- StatusChangedObserver { -+ : public KeyedService { - public: - explicit HttpsFirstModeService(Profile* profile); - ~HttpsFirstModeService() override; -@@ -32,17 +30,13 @@ class HttpsFirstModeService - HttpsFirstModeService& operator=(const HttpsFirstModeService&) = delete; - - // safe_browsing::AdvancedProtectionStatusManager::StatusChangedObserver: -- void OnAdvancedProtectionStatusChanged(bool enabled) override; -+ void OnAdvancedProtectionStatusChanged(bool enabled); - - private: - void OnHttpsFirstModePrefChanged(); - - raw_ptr profile_; - PrefChangeRegistrar pref_change_registrar_; -- base::ScopedObservation< -- safe_browsing::AdvancedProtectionStatusManager, -- safe_browsing::AdvancedProtectionStatusManager::StatusChangedObserver> -- obs_{this}; - }; - - // Factory boilerplate for creating the `HttpsFirstModeService` for each browser -diff --git a/chrome/browser/ssl/sct_reporting_service_factory.cc b/chrome/browser/ssl/sct_reporting_service_factory.cc ---- a/chrome/browser/ssl/sct_reporting_service_factory.cc -+++ b/chrome/browser/ssl/sct_reporting_service_factory.cc -@@ -7,7 +7,6 @@ - #include "base/functional/callback_helpers.h" - #include "chrome/browser/browser_process.h" - #include "chrome/browser/profiles/profile.h" --#include "chrome/browser/safe_browsing/safe_browsing_service.h" - #include "chrome/browser/ssl/sct_reporting_service.h" - - // static -@@ -31,15 +30,7 @@ SCTReportingServiceFactory::~SCTReportingServiceFactory() = default; - - KeyedService* SCTReportingServiceFactory::BuildServiceInstanceFor( - content::BrowserContext* profile) const { -- safe_browsing::SafeBrowsingService* safe_browsing_service = -- g_browser_process->safe_browsing_service(); -- // In unit tests the safe browsing service can be null, if this happens, -- // return null instead of crashing. -- if (!safe_browsing_service) -- return nullptr; -- -- return new SCTReportingService(safe_browsing_service, -- static_cast(profile)); -+ return nullptr; - } - - // Force this to be created during BrowserContext creation, since we can't -diff --git a/chrome/browser/ssl/security_state_tab_helper.cc b/chrome/browser/ssl/security_state_tab_helper.cc ---- a/chrome/browser/ssl/security_state_tab_helper.cc -+++ b/chrome/browser/ssl/security_state_tab_helper.cc -@@ -86,13 +86,8 @@ SecurityStateTabHelper::GetVisibleSecurityState() { - // information is still being initialized, thus no need to check for that. - state->malicious_content_status = GetMaliciousContentStatus(); - -- SafetyTipWebContentsObserver* safety_tip_web_contents_observer = -- SafetyTipWebContentsObserver::FromWebContents(web_contents()); - state->safety_tip_info = -- safety_tip_web_contents_observer -- ? safety_tip_web_contents_observer -- ->GetSafetyTipInfoForVisibleNavigation() -- : security_state::SafetyTipInfo( -+ security_state::SafetyTipInfo( - {security_state::SafetyTipStatus::kUnknown, GURL()}); - - // If both the mixed form warnings are not disabled by policy we don't degrade -@@ -174,6 +169,7 @@ bool SecurityStateTabHelper::UsedPolicyInstalledCertificate() const { - - security_state::MaliciousContentStatus - SecurityStateTabHelper::GetMaliciousContentStatus() const { -+#if defined(FULL_SAFE_BROWSING) - content::NavigationEntry* entry = - web_contents()->GetController().GetVisibleEntry(); - if (!entry) -@@ -260,6 +256,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const { - break; - } - } -+#endif - return security_state::MALICIOUS_CONTENT_STATUS_NONE; - } - -diff --git a/chrome/browser/subresource_filter/chrome_content_subresource_filter_web_contents_helper_factory.cc b/chrome/browser/subresource_filter/chrome_content_subresource_filter_web_contents_helper_factory.cc ---- a/chrome/browser/subresource_filter/chrome_content_subresource_filter_web_contents_helper_factory.cc -+++ b/chrome/browser/subresource_filter/chrome_content_subresource_filter_web_contents_helper_factory.cc -@@ -18,10 +18,14 @@ namespace { - // available. Otherwise returns nullptr. - const scoped_refptr - GetDatabaseManagerFromSafeBrowsingService() { -+#if defined(FULL_SAFE_BROWSING) - safe_browsing::SafeBrowsingService* safe_browsing_service = - g_browser_process->safe_browsing_service(); - return safe_browsing_service ? safe_browsing_service->database_manager() - : nullptr; -+#else -+ return nullptr; -+#endif - } - - } // namespace -diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn ---- a/chrome/browser/ui/BUILD.gn -+++ b/chrome/browser/ui/BUILD.gn -@@ -560,7 +560,6 @@ static_library("ui") { - "//components/renderer_context_menu", - "//components/resources", - "//components/safe_browsing/content/browser", -- "//components/safe_browsing/content/browser:client_side_detection", - "//components/safe_browsing/content/browser/password_protection", - "//components/safe_browsing/content/browser/web_ui", - "//components/safe_browsing/core/browser/db:database_manager", -@@ -4592,7 +4591,6 @@ static_library("ui") { - "views/download/bubble/download_dialog_view.h", - "views/download/bubble/download_toolbar_button_view.cc", - "views/download/bubble/download_toolbar_button_view.h", -- "views/download/download_danger_prompt_views.cc", - "views/download/download_in_progress_dialog_view.cc", - "views/download/download_in_progress_dialog_view.h", - "views/download/download_item_view.cc", -diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd ---- a/chrome/browser/ui/android/strings/android_chrome_strings.grd -+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -414,9 +414,6 @@ CHAR_LIMIT guidelines: - - Help improve Chrome\u2019s features and performance - -- -- Automatically sends usage statistics and crash reports to Google -- - - - -@@ -4945,9 +4942,6 @@ To change this setting, <resetlink>reset sync

- -- -- Show your Chrome activity in Digital Wellbeing? -- - - You can see sites you visit in Chrome and set timers for them.\n\nGoogle gets info about the sites you set timers for and how long you visit them. This info is used to make Digital Wellbeing better. - -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 -@@ -37,7 +37,6 @@ - #include "chrome/browser/history_clusters/history_clusters_tab_helper.h" - #include "chrome/browser/image_fetcher/image_fetcher_service_factory.h" - #include "chrome/browser/login_detection/login_detection_tab_helper.h" --#include "chrome/browser/lookalikes/safety_tip_web_contents_observer.h" - #include "chrome/browser/media/history/media_history_contents_observer.h" - #include "chrome/browser/media/media_engagement_service.h" - #include "chrome/browser/metrics/desktop_session_duration/desktop_session_duration_observer.h" -@@ -61,12 +60,14 @@ - #include "chrome/browser/profiles/profile.h" - #include "chrome/browser/profiles/profile_key.h" - #include "chrome/browser/resource_coordinator/tab_helper.h" -+#if defined(FULL_SAFE_BROWSING) - #include "chrome/browser/safe_browsing/chrome_safe_browsing_tab_observer_delegate.h" - #include "chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager_factory.h" - #include "chrome/browser/safe_browsing/safe_browsing_service.h" - #include "chrome/browser/safe_browsing/tailored_security/tailored_security_service_factory.h" - #include "chrome/browser/safe_browsing/tailored_security/tailored_security_url_observer.h" - #include "chrome/browser/safe_browsing/trigger_creator.h" -+#endif - #include "chrome/browser/search_engines/template_url_service_factory.h" - #include "chrome/browser/sessions/session_tab_helper_factory.h" - #include "chrome/browser/ssl/chrome_security_blocking_page_factory.h" -@@ -131,9 +132,11 @@ - #include "components/permissions/permission_recovery_success_rate_tracker.h" - #include "components/permissions/permission_request_manager.h" - #include "components/permissions/unused_site_permissions_service.h" -+#if defined(FULL_SAFE_BROWSING) - #include "components/safe_browsing/content/browser/safe_browsing_navigation_observer.h" - #include "components/safe_browsing/content/browser/safe_browsing_tab_observer.h" - #include "components/safe_browsing/core/common/features.h" -+#endif - #include "components/search/ntp_features.h" - #include "components/site_engagement/content/site_engagement_helper.h" - #include "components/site_engagement/content/site_engagement_service.h" -@@ -398,6 +401,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { - // See https://crbug.com/910288. - resource_coordinator::ResourceCoordinatorTabHelper::CreateForWebContents( - web_contents); -+#if defined(FULL_SAFE_BROWSING) - safe_browsing::SafeBrowsingNavigationObserver::MaybeCreateForWebContents( - web_contents, HostContentSettingsMapFactory::GetForProfile(profile), - safe_browsing::SafeBrowsingNavigationObserverManagerFactory:: -@@ -415,6 +419,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { - safe_browsing::TriggerCreator::MaybeCreateTriggersForWebContents( - profile, web_contents); - SafetyTipWebContentsObserver::CreateForWebContents(web_contents); -+#endif - SearchEngineTabHelper::CreateForWebContents(web_contents); - SecurityStateTabHelper::CreateForWebContents(web_contents); - if (site_engagement::SiteEngagementService::IsEnabled()) { -diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc ---- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc -+++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc -@@ -279,6 +279,7 @@ CreateHttpsOnlyModePage(content::WebContents* web_contents) { - /*is_under_advanced_protection=*/false); - } - -+#if 0 - std::unique_ptr - CreateSafeBrowsingBlockingPage(content::WebContents* web_contents) { - safe_browsing::SBThreatType threat_type = -@@ -337,7 +338,9 @@ CreateSafeBrowsingBlockingPage(content::WebContents* web_contents) { - ui_manager->blocking_page_factory()->CreateSafeBrowsingPage( - ui_manager, web_contents, main_frame_url, {resource}, true)); - } -+#endif - -+#if 0 - std::unique_ptr CreateEnterpriseBlockPage( - content::WebContents* web_contents) { - const GURL kRequestUrl("https://enterprise-block.example.net"); -@@ -428,6 +431,7 @@ CreateSafeBrowsingQuietBlockingPage(content::WebContents* web_contents) { - g_browser_process->safe_browsing_service()->ui_manager().get(), - web_contents, main_frame_url, resource, is_giant_webview)); - } -+#endif - - #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION) - std::unique_ptr CreateCaptivePortalBlockingPage( -@@ -535,12 +539,6 @@ void InterstitialHTMLSource::StartDataRequest( - interstitial_delegate = CreateMITMSoftwareBlockingPage(web_contents); - } else if (path_without_query == "/blocked-interception") { - interstitial_delegate = CreateBlockedInterceptionBlockingPage(web_contents); -- } else if (path_without_query == "/safebrowsing") { -- interstitial_delegate = CreateSafeBrowsingBlockingPage(web_contents); -- } else if (path_without_query == "/enterprise-block") { -- interstitial_delegate = CreateEnterpriseBlockPage(web_contents); -- } else if (path_without_query == "/enterprise-warn") { -- interstitial_delegate = CreateEnterpriseWarnPage(web_contents); - } else if (path_without_query == "/clock") { - interstitial_delegate = CreateBadClockBlockingPage(web_contents); - } else if (path_without_query == "/lookalike") { -@@ -553,13 +551,7 @@ void InterstitialHTMLSource::StartDataRequest( - interstitial_delegate = CreateInsecureFormPage(web_contents); - } else if (path_without_query == "/https_only") { - interstitial_delegate = CreateHttpsOnlyModePage(web_contents); -- } - -- if (path_without_query == "/quietsafebrowsing") { -- std::unique_ptr blocking_page = -- CreateSafeBrowsingQuietBlockingPage(web_contents); -- html = blocking_page->GetHTML(); -- interstitial_delegate = std::move(blocking_page); - #if BUILDFLAG(ENABLE_SUPERVISED_USERS) - } else if (path_without_query == "/supervised_user") { - html = GetSupervisedUserInterstitialHTML(path); -diff --git a/chrome/common/safe_browsing/BUILD.gn b/chrome/common/safe_browsing/BUILD.gn ---- a/chrome/common/safe_browsing/BUILD.gn -+++ b/chrome/common/safe_browsing/BUILD.gn -@@ -21,7 +21,6 @@ if (safe_browsing_mode == 1) { - ":download_type_util", - "//base", - "//base:i18n", -- "//components/safe_browsing/content/common:file_type_policies", - "//crypto", - ] - if (is_mac) { -@@ -52,7 +51,6 @@ if (safe_browsing_mode == 1) { - ] - deps = [ - "//base", -- "//components/safe_browsing/content/common:file_type_policies", - "//components/safe_browsing/core/common", - ] - public_deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ] -@@ -132,10 +130,6 @@ if (safe_browsing_mode == 1) { - source_set("safe_browsing") { - deps = [] - -- if (safe_browsing_mode != 0) { -- deps += [ "//components/safe_browsing/content/common:file_type_policies" ] -- } -- - if (safe_browsing_mode == 1) { - sources = [ - "ipc_protobuf_message_macros.h", -@@ -157,7 +151,6 @@ source_set("safe_browsing") { - ":download_type_util", - "//base", - "//base:i18n", -- "//components/safe_browsing/content/common:file_type_policies", - "//components/safe_browsing/core/common", - "//third_party/lzma_sdk/google:seven_zip_reader", - "//third_party/unrar:unrar", -diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn ---- a/chrome/renderer/BUILD.gn -+++ b/chrome/renderer/BUILD.gn -@@ -297,11 +297,6 @@ static_library("renderer") { - ] - } - -- if (safe_browsing_mode != 0) { -- deps += -- [ "//components/safe_browsing/content/renderer/phishing_classifier" ] -- } -- - if (enable_feed_v2) { - deps += [ "//components/feed/content/renderer:feed_renderer" ] - } -diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc ---- a/chrome/renderer/chrome_content_renderer_client.cc -+++ b/chrome/renderer/chrome_content_renderer_client.cc -@@ -97,7 +97,9 @@ - #include "components/paint_preview/buildflags/buildflags.h" - #include "components/password_manager/core/common/password_manager_features.h" - #include "components/safe_browsing/buildflags.h" -+#if defined(FULL_SAFE_BROWSING) - #include "components/safe_browsing/content/renderer/threat_dom_details.h" -+#endif - #include "components/spellcheck/spellcheck_buildflags.h" - #include "components/subresource_filter/content/renderer/subresource_filter_agent.h" - #include "components/subresource_filter/content/renderer/unverified_ruleset_dealer.h" -@@ -459,12 +461,8 @@ void ChromeContentRendererClient::RenderThreadStarted() { - subresource_filter_ruleset_dealer_ = - std::make_unique(); - -- phishing_model_setter_ = -- std::make_unique(); -- - thread->AddObserver(chrome_observer_.get()); - thread->AddObserver(subresource_filter_ruleset_dealer_.get()); -- thread->AddObserver(phishing_model_setter_.get()); - - blink::WebScriptController::RegisterExtension( - extensions_v8::LoadTimesExtension::Get()); -diff --git a/chrome/renderer/chrome_content_renderer_client.h b/chrome/renderer/chrome_content_renderer_client.h ---- a/chrome/renderer/chrome_content_renderer_client.h -+++ b/chrome/renderer/chrome_content_renderer_client.h -@@ -20,7 +20,6 @@ - #include "chrome/common/media/webrtc_logging.mojom.h" - #include "chrome/services/speech/buildflags/buildflags.h" - #include "components/nacl/common/buildflags.h" --#include "components/safe_browsing/content/renderer/phishing_classifier/phishing_model_setter_impl.h" - #include "components/spellcheck/spellcheck_buildflags.h" - #include "content/public/renderer/content_renderer_client.h" - #include "content/public/renderer/render_thread.h" -@@ -278,8 +277,6 @@ class ChromeContentRendererClient - #if BUILDFLAG(ENABLE_PLUGINS) - std::set allowed_camera_device_origins_; - #endif -- std::unique_ptr -- phishing_model_setter_; - - scoped_refptr - browser_interface_broker_; -diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn ---- a/chrome/test/BUILD.gn -+++ b/chrome/test/BUILD.gn -@@ -1042,7 +1042,6 @@ if (is_android) { - "//components/password_manager/content/browser:browser", - "//components/policy:chrome_settings_proto_generated_compile", - "//components/policy/core/browser:test_support", -- "//components/safe_browsing/content/browser:client_side_detection", - "//components/safe_browsing/content/common:interfaces", - "//components/safe_browsing/content/renderer/phishing_classifier:phishing_classifier", - "//components/safe_browsing/core/common/fbs:client_model", -@@ -1356,8 +1355,6 @@ if (!is_android) { - "//chrome/browser/profiling_host:profiling_browsertests", - "//chrome/browser/resource_coordinator:mojo_bindings", - "//chrome/browser/resource_coordinator:tab_manager_features", -- "//chrome/browser/safe_browsing:advanced_protection", -- "//chrome/browser/safe_browsing:verdict_cache_manager_factory", - "//chrome/browser/segmentation_platform:test_utils", - "//chrome/browser/sharing/proto", - "//chrome/browser/storage_access_api:permissions", -@@ -1501,7 +1498,6 @@ if (!is_android) { - "//components/resources", - "//components/safe_browsing:buildflags", - "//components/safe_browsing/content/browser", -- "//components/safe_browsing/content/browser:client_side_detection", - "//components/safe_browsing/content/browser:safe_browsing_service", - "//components/safe_browsing/content/browser/password_protection", - "//components/safe_browsing/content/browser/password_protection:test_support", -@@ -6165,7 +6161,6 @@ test("unit_tests") { - "//components/resources", - "//components/safe_browsing:buildflags", - "//components/safe_browsing/content/browser", -- "//components/safe_browsing/content/browser:client_side_detection", - "//components/safe_browsing/content/browser/password_protection", - "//components/safe_browsing/content/browser/password_protection:mock_password_protection", - "//components/safe_browsing/content/browser/web_ui", -diff --git a/components/BUILD.gn b/components/BUILD.gn ---- a/components/BUILD.gn -+++ b/components/BUILD.gn -@@ -661,7 +661,6 @@ test("components_unittests") { - if (safe_browsing_mode == 1) { - deps += [ - "//components/safe_browsing/content/browser:unit_tests", -- "//components/safe_browsing/content/renderer/phishing_classifier:unit_tests", - ] - } else if (safe_browsing_mode == 2) { - deps += [ "//components/safe_browsing/content/browser:unit_tests" ] -diff --git a/components/component_updater/installer_policies/BUILD.gn b/components/component_updater/installer_policies/BUILD.gn ---- a/components/component_updater/installer_policies/BUILD.gn -+++ b/components/component_updater/installer_policies/BUILD.gn -@@ -20,8 +20,6 @@ static_library("installer_policies_no_content_deps") { - "client_side_phishing_component_installer_policy.h", - "origin_trials_component_installer.cc", - "origin_trials_component_installer.h", -- "safety_tips_component_installer.cc", -- "safety_tips_component_installer.h", - "trust_token_key_commitments_component_installer_policy.cc", - "trust_token_key_commitments_component_installer_policy.h", - ] -diff --git a/components/permissions/permission_request_manager.cc b/components/permissions/permission_request_manager.cc ---- a/components/permissions/permission_request_manager.cc -+++ b/components/permissions/permission_request_manager.cc -@@ -727,10 +727,7 @@ PermissionRequestManager::PermissionRequestManager( - view_factory_(base::BindRepeating(&PermissionPrompt::Create)), - tab_is_hidden_(web_contents->GetVisibility() == - content::Visibility::HIDDEN), -- auto_response_for_test_(NONE), -- permission_ui_selectors_( -- PermissionsClient::Get()->CreatePermissionUiSelectors( -- web_contents->GetBrowserContext())) {} -+ auto_response_for_test_(NONE) {} - - void PermissionRequestManager::DequeueRequestIfNeeded() { - // TODO(olesiamarukhno): Media requests block other media requests from -diff --git a/components/safe_browsing/content/browser/BUILD.gn b/components/safe_browsing/content/browser/BUILD.gn ---- a/components/safe_browsing/content/browser/BUILD.gn -+++ b/components/safe_browsing/content/browser/BUILD.gn -@@ -149,7 +149,6 @@ source_set("unit_tests") { - ] - - deps = [ -- ":client_side_detection", - "//base:base", - "//base/test:test_support", - "//components/optimization_guide/core:model_executor", -diff --git a/components/safe_browsing/content/common/file_type_policies.cc b/components/safe_browsing/content/common/file_type_policies.cc ---- a/components/safe_browsing/content/common/file_type_policies.cc -+++ b/components/safe_browsing/content/common/file_type_policies.cc -@@ -87,8 +87,7 @@ FileTypePolicies::~FileTypePolicies() { - } - - std::string FileTypePolicies::ReadResourceBundle() { -- ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); -- return bundle.LoadDataResourceString(IDR_DOWNLOAD_FILE_TYPES_PB); -+ return nullptr; - } - - void FileTypePolicies::RecordUpdateMetrics(UpdateResult result, -diff --git a/components/safe_browsing/core/common/features.cc b/components/safe_browsing/core/common/features.cc ---- a/components/safe_browsing/core/common/features.cc -+++ b/components/safe_browsing/core/common/features.cc -@@ -227,8 +227,8 @@ constexpr base::FeatureParam kStrictDownloadTimeoutMilliseconds{ - /*default_value=*/7000}; - - BASE_FEATURE(kSuspiciousSiteTriggerQuotaFeature, -- "SafeBrowsingSuspiciousSiteTriggerQuota", -- base::FEATURE_ENABLED_BY_DEFAULT); -+ "SafeBrowsingSuspiciousSiteTriggerQuota", // disabled by default -+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite - - BASE_FEATURE(kTailoredSecurityRetryForSyncUsers, - "TailoredSecurityRetryForSyncUsers", -diff --git a/components/security_interstitials/content/captive_portal_blocking_page.cc b/components/security_interstitials/content/captive_portal_blocking_page.cc ---- a/components/security_interstitials/content/captive_portal_blocking_page.cc -+++ b/components/security_interstitials/content/captive_portal_blocking_page.cc -@@ -15,6 +15,7 @@ - #include "build/build_config.h" - #include "components/captive_portal/core/captive_portal_detector.h" - #include "components/captive_portal/core/captive_portal_metrics.h" -+#include "components/safe_browsing/buildflags.h" - #include "components/safe_browsing/core/common/safe_browsing_prefs.h" - #include "components/security_interstitials/content/cert_report_helper.h" - #include "components/security_interstitials/content/security_interstitial_controller_client.h" -@@ -192,6 +193,7 @@ void CaptivePortalBlockingPage::PopulateInterstitialStrings( - load_time_data.Set("recurrentErrorParagraph", ""); - load_time_data.Set("show_recurrent_error_paragraph", false); - -+#if BUILDFLAG(FULL_SAFE_BROWSING) - if (cert_report_helper()) { - cert_report_helper()->PopulateExtendedReportingOption(load_time_data); - cert_report_helper()->PopulateEnhancedProtectionMessage(load_time_data); -@@ -200,6 +202,11 @@ void CaptivePortalBlockingPage::PopulateInterstitialStrings( - load_time_data.Set( - security_interstitials::kDisplayEnhancedProtectionMessage, false); - } -+#else -+ load_time_data.Set(security_interstitials::kDisplayCheckBox, false); -+ load_time_data.Set( -+ security_interstitials::kDisplayEnhancedProtectionMessage, false); -+#endif - } - - void CaptivePortalBlockingPage::CommandReceived(const std::string& command) { -@@ -214,8 +221,6 @@ void CaptivePortalBlockingPage::CommandReceived(const std::string& command) { - security_interstitials::SecurityInterstitialCommand cmd = - static_cast( - command_num); -- cert_report_helper()->HandleReportingCommands(cmd, -- controller()->GetPrefService()); - switch (cmd) { - case security_interstitials::CMD_OPEN_LOGIN: - captive_portal::CaptivePortalMetrics::LogCaptivePortalBlockingPageEvent( -diff --git a/components/security_interstitials/content/cert_report_helper.cc b/components/security_interstitials/content/cert_report_helper.cc ---- a/components/security_interstitials/content/cert_report_helper.cc -+++ b/components/security_interstitials/content/cert_report_helper.cc -@@ -62,8 +62,7 @@ CertReportHelper::CertReportHelper( - interstitial_reason_(interstitial_reason), - overridable_(overridable), - interstitial_time_(interstitial_time), -- can_show_enhanced_protection_message_( -- can_show_enhanced_protection_message), -+ can_show_enhanced_protection_message_(false), // always disabled in Bromite - metrics_helper_(metrics_helper) {} - - CertReportHelper::~CertReportHelper() = default; -@@ -176,8 +175,6 @@ void CertReportHelper::FinishCertCollection() { - LOG(ERROR) << "Failed to serialize certificate report."; - return; - } -- -- ssl_cert_reporter_->ReportInvalidCertificateChain(serialized_report); - } - - bool CertReportHelper::ShouldShowCertificateReporterCheckbox() { -diff --git a/components/unified_consent/unified_consent_service.cc b/components/unified_consent/unified_consent_service.cc ---- a/components/unified_consent/unified_consent_service.cc -+++ b/components/unified_consent/unified_consent_service.cc -@@ -56,7 +56,7 @@ void UnifiedConsentService::SetUrlKeyedAnonymizedDataCollectionEnabled( - SetMigrationState(MigrationState::kCompleted); - - pref_service_->SetBoolean(prefs::kUrlKeyedAnonymizedDataCollectionEnabled, -- enabled); -+ false); - } - - void UnifiedConsentService::Shutdown() { -diff --git a/content/browser/file_system_access/file_system_access_file_writer_impl.cc b/content/browser/file_system_access/file_system_access_file_writer_impl.cc ---- a/content/browser/file_system_access/file_system_access_file_writer_impl.cc -+++ b/content/browser/file_system_access/file_system_access_file_writer_impl.cc -@@ -44,7 +44,6 @@ FileSystemAccessFileWriterImpl::FileSystemAccessFileWriterImpl( - lock_(std::move(lock)), - quarantine_connection_callback_( - std::move(quarantine_connection_callback)), -- has_transient_user_activation_(has_transient_user_activation), - auto_close_(auto_close) { - DCHECK_EQ(swap_url.type(), url.type()); - DCHECK_EQ(lock_->type(), -@@ -253,7 +252,7 @@ void FileSystemAccessFileWriterImpl::CloseImpl(CloseCallback callback) { - FileSystemOperation::CopyOrMoveOption:: - kPreserveDestinationPermissions), - std::move(quarantine_connection_callback_), -- has_transient_user_activation_); -+ false); - // Allows the unique pointer to be bound to the callback so the helper stays - // alive until the operation completes. - FileSystemAccessSafeMoveHelper* raw_helper = -diff --git a/content/browser/file_system_access/file_system_access_file_writer_impl.h b/content/browser/file_system_access/file_system_access_file_writer_impl.h ---- a/content/browser/file_system_access/file_system_access_file_writer_impl.h -+++ b/content/browser/file_system_access/file_system_access_file_writer_impl.h -@@ -123,11 +123,6 @@ class CONTENT_EXPORT FileSystemAccessFileWriterImpl - download::QuarantineConnectionCallback quarantine_connection_callback_ - GUARDED_BY_CONTEXT(sequence_checker_); - -- // Keeps track of user activation state at creation time for after write -- // checks. -- bool has_transient_user_activation_ GUARDED_BY_CONTEXT(sequence_checker_) = -- false; -- - // Changes will be written to the target file even if the stream isn't - // explicitly closed. - bool auto_close_ GUARDED_BY_CONTEXT(sequence_checker_) = false; -diff --git a/content/browser/file_system_access/file_system_access_safe_move_helper.cc b/content/browser/file_system_access/file_system_access_safe_move_helper.cc ---- a/content/browser/file_system_access/file_system_access_safe_move_helper.cc -+++ b/content/browser/file_system_access/file_system_access_safe_move_helper.cc -@@ -152,8 +152,7 @@ FileSystemAccessSafeMoveHelper::FileSystemAccessSafeMoveHelper( - dest_url_(dest_url), - options_(options), - quarantine_connection_callback_( -- std::move(quarantine_connection_callback)), -- has_transient_user_activation_(has_transient_user_activation) {} -+ std::move(quarantine_connection_callback)) {} - - FileSystemAccessSafeMoveHelper::~FileSystemAccessSafeMoveHelper() = default; - -@@ -168,15 +167,8 @@ void FileSystemAccessSafeMoveHelper::Start( - return; - } - -- if (!RequireAfterWriteChecks() || !manager_->permission_context()) { - DidAfterWriteCheck( - FileSystemAccessPermissionContext::AfterWriteCheckResult::kAllow); -- return; -- } -- -- ComputeHashForSourceFile( -- base::BindOnce(&FileSystemAccessSafeMoveHelper::DoAfterWriteCheck, -- weak_factory_.GetWeakPtr())); - } - - void FileSystemAccessSafeMoveHelper::ComputeHashForSourceFile( -@@ -198,6 +190,7 @@ void FileSystemAccessSafeMoveHelper::ComputeHashForSourceFile( - } - - bool FileSystemAccessSafeMoveHelper::RequireAfterWriteChecks() const { -+ if ((true)) return false; - if (dest_url().type() == storage::kFileSystemTypeTemporary) - return false; - -@@ -221,7 +214,7 @@ bool FileSystemAccessSafeMoveHelper::RequireQuarantine() const { - return dest_url().type() != storage::kFileSystemTypeTemporary; - } - --void FileSystemAccessSafeMoveHelper::DoAfterWriteCheck( -+/*void FileSystemAccessSafeMoveHelper::DoAfterWriteCheck( - base::File::Error hash_result, - const std::string& hash, - int64_t size) { -@@ -258,7 +251,7 @@ void FileSystemAccessSafeMoveHelper::DoAfterWriteCheck( - std::move(item), context_.frame_id, - base::BindOnce(&FileSystemAccessSafeMoveHelper::DidAfterWriteCheck, - weak_factory_.GetWeakPtr())); --} -+}*/ - - void FileSystemAccessSafeMoveHelper::DidAfterWriteCheck( - FileSystemAccessPermissionContext::AfterWriteCheckResult result) { -diff --git a/content/browser/file_system_access/file_system_access_safe_move_helper.h b/content/browser/file_system_access/file_system_access_safe_move_helper.h ---- a/content/browser/file_system_access/file_system_access_safe_move_helper.h -+++ b/content/browser/file_system_access/file_system_access_safe_move_helper.h -@@ -60,9 +60,6 @@ class CONTENT_EXPORT FileSystemAccessSafeMoveHelper { - private: - SEQUENCE_CHECKER(sequence_checker_); - -- void DoAfterWriteCheck(base::File::Error hash_result, -- const std::string& hash, -- int64_t size); - void DidAfterWriteCheck( - FileSystemAccessPermissionContext::AfterWriteCheckResult result); - void DidFileSkipQuarantine(base::File::Error result); -@@ -98,9 +95,6 @@ class CONTENT_EXPORT FileSystemAccessSafeMoveHelper { - download::QuarantineConnectionCallback quarantine_connection_callback_ - GUARDED_BY_CONTEXT(sequence_checker_); - -- bool has_transient_user_activation_ GUARDED_BY_CONTEXT(sequence_checker_) = -- false; -- - FileSystemAccessSafeMoveHelperCallback callback_ - GUARDED_BY_CONTEXT(sequence_checker_); - -diff --git a/content/public/browser/file_system_access_permission_context.h b/content/public/browser/file_system_access_permission_context.h ---- a/content/public/browser/file_system_access_permission_context.h -+++ b/content/public/browser/file_system_access_permission_context.h -@@ -116,12 +116,6 @@ class FileSystemAccessPermissionContext { - base::OnceCallback callback) = 0; - - enum class AfterWriteCheckResult { kAllow, kBlock }; -- // Runs a recently finished write operation through checks such as malware -- // or other security checks to determine if the write should be allowed. -- virtual void PerformAfterWriteChecks( -- std::unique_ptr item, -- GlobalRenderFrameHostId frame_id, -- base::OnceCallback callback) = 0; - - // Returns whether the give |origin| already allows read permission, or it is - // possible to request one. This is used to block file dialogs from being -diff --git a/weblayer/BUILD.gn b/weblayer/BUILD.gn ---- a/weblayer/BUILD.gn -+++ b/weblayer/BUILD.gn -@@ -462,11 +462,9 @@ source_set("weblayer_lib_base") { - "//components/profile_metrics", - "//components/reduce_accept_language/browser", - "//components/safe_browsing/content/browser", -- "//components/safe_browsing/content/browser:client_side_detection", - "//components/safe_browsing/content/browser/web_ui", - "//components/safe_browsing/content/common:interfaces", - "//components/safe_browsing/content/renderer:throttles", -- "//components/safe_browsing/content/renderer/phishing_classifier", - "//components/safe_browsing/core/browser:safe_browsing_metrics_collector", - "//components/safe_browsing/core/browser/db:database_manager", - "//components/safe_browsing/core/common", -@@ -601,8 +599,6 @@ source_set("weblayer_lib_base") { - "browser/bluetooth/weblayer_bluetooth_scanning_prompt_android_delegate.h", - "browser/browser_list_proxy.cc", - "browser/browser_list_proxy.h", -- "browser/component_updater/client_side_phishing_component_loader_policy.cc", -- "browser/component_updater/client_side_phishing_component_loader_policy.h", - "browser/component_updater/registration.cc", - "browser/component_updater/registration.h", - "browser/content_view_render_view.cc", -diff --git a/weblayer/test/BUILD.gn b/weblayer/test/BUILD.gn ---- a/weblayer/test/BUILD.gn -+++ b/weblayer/test/BUILD.gn -@@ -243,7 +243,6 @@ test("weblayer_browsertests") { - "//components/page_info/android", - "//components/safe_browsing/android:safe_browsing_api_handler", - "//components/safe_browsing/content/browser", -- "//components/safe_browsing/content/browser:client_side_detection", - "//components/safe_browsing/content/browser/web_ui", - "//components/safe_browsing/content/common:interfaces", - "//components/safe_browsing/core/browser:token_fetcher", --- -2.25.1 diff --git a/build/patches/Remove-contextual-search-manager.patch b/build/patches/Remove-contextual-search-manager.patch deleted file mode 100644 index acd5430e..00000000 --- a/build/patches/Remove-contextual-search-manager.patch +++ /dev/null @@ -1,1378 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 9 Mar 2022 19:22:02 +0100 -Subject: Remove contextual search manager - -License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ---- - chrome/android/BUILD.gn | 5 -- - chrome/android/chrome_java_resources.gni | 8 -- - chrome/android/chrome_java_sources.gni | 44 ---------- - .../ManualFillingMediator.java | 9 -- - .../layout/contextual_search_caption_view.xml | 16 ---- - .../contextual_search_card_icon_view.xml | 14 --- - .../layout/contextual_search_context_view.xml | 27 ------ - .../layout/contextual_search_promo_view.xml | 88 ------------------- - ...ntextual_search_quick_action_icon_view.xml | 14 --- - ...ontextual_search_related_searches_view.xml | 23 ----- - .../layout/contextual_search_term_view.xml | 21 ----- - .../res/xml/contextual_search_preferences.xml | 27 ------ - .../res/xml/google_services_preferences.xml | 8 -- - .../java/res/xml/privacy_preferences.xml | 4 - - .../chrome/browser/ChromeTabbedActivity.java | 4 +- - .../chrome/browser/app/ChromeActivity.java | 50 +---------- - .../bottombar/OverlayPanelContent.java | 1 - - .../compositor/layouts/LayoutManagerImpl.java | 4 +- - .../customtabs/BaseCustomTabActivity.java | 2 +- - .../BaseCustomTabRootUiCoordinator.java | 16 +--- - .../browser/customtabs/CustomTabActivity.java | 6 -- - .../modaldialog/ChromeTabModalPresenter.java | 12 +-- - .../modaldialog/TabModalLifetimeHandler.java | 7 +- - .../privacy/settings/PrivacySettings.java | 9 -- - .../chrome/browser/tab/TabHelpers.java | 2 - - .../tabbed_mode/TabbedRootUiCoordinator.java | 5 +- - .../chrome/browser/ui/RootUiCoordinator.java | 39 +------- - chrome/browser/BUILD.gn | 17 ---- - chrome/browser/about_flags.cc | 33 ------- - .../flags/android/chrome_feature_list.cc | 27 ------ - .../flags/android/chrome_feature_list.h | 5 -- - ...nfiguration_policy_handler_list_factory.cc | 6 +- - .../strings/android_chrome_strings.grd | 59 ------------- - content/browser/browser_interface_binders.cc | 1 - - third_party/blink/public/mojom/BUILD.gn | 2 +- - third_party/blink/public/public_features.gni | 2 +- - 36 files changed, 17 insertions(+), 600 deletions(-) - delete mode 100644 chrome/android/java/res/layout/contextual_search_caption_view.xml - delete mode 100644 chrome/android/java/res/layout/contextual_search_card_icon_view.xml - delete mode 100644 chrome/android/java/res/layout/contextual_search_context_view.xml - delete mode 100644 chrome/android/java/res/layout/contextual_search_promo_view.xml - delete mode 100644 chrome/android/java/res/layout/contextual_search_quick_action_icon_view.xml - delete mode 100644 chrome/android/java/res/layout/contextual_search_related_searches_view.xml - delete mode 100644 chrome/android/java/res/layout/contextual_search_term_view.xml - delete mode 100644 chrome/android/java/res/xml/contextual_search_preferences.xml - -diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn ---- a/chrome/android/BUILD.gn -+++ b/chrome/android/BUILD.gn -@@ -588,7 +588,6 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser:sharing_send_message_result_generated_enum", - "//chrome/browser/notifications/scheduler/public:jni_enums", - "//chrome/browser/ui:duplicate_download_enums_java", -- "//components/contextual_search/core/browser:quick_action_category_enum_javagen", - "//components/dom_distiller/core:distiller_type_java", - "//components/ntp_tiles:ntp_tiles_enums_java", - "//components/offline_pages/core:offline_page_model_enums_java", -@@ -3482,16 +3481,12 @@ generate_jni("chrome_jni_headers") { - "java/src/org/chromium/chrome/browser/compositor/LayerTitleCache.java", - "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java", - "java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java", -- "java/src/org/chromium/chrome/browser/compositor/scene_layer/ContextualSearchSceneLayer.java", - "java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java", - "java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java", - "java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java", - "java/src/org/chromium/chrome/browser/compositor/scene_layer/ToolbarSwipeSceneLayer.java", - "java/src/org/chromium/chrome/browser/content/ContentUtils.java", - "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuHelper.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchContext.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper.java", - "java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java", - "java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java", - "java/src/org/chromium/chrome/browser/customtabs/CustomTabsOpenTimeRecorder.java", -diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni ---- a/chrome/android/chrome_java_resources.gni -+++ b/chrome/android/chrome_java_resources.gni -@@ -490,13 +490,6 @@ chrome_java_resources = [ - "java/res/layout/context_menu_header.xml", - "java/res/layout/context_menu_row.xml", - "java/res/layout/context_menu_share_row.xml", -- "java/res/layout/contextual_search_caption_view.xml", -- "java/res/layout/contextual_search_card_icon_view.xml", -- "java/res/layout/contextual_search_context_view.xml", -- "java/res/layout/contextual_search_promo_view.xml", -- "java/res/layout/contextual_search_quick_action_icon_view.xml", -- "java/res/layout/contextual_search_related_searches_view.xml", -- "java/res/layout/contextual_search_term_view.xml", - "java/res/layout/custom_tabs_bottombar.xml", - "java/res/layout/custom_tabs_bottombar_item.xml", - "java/res/layout/custom_tabs_control_container.xml", -@@ -637,7 +630,6 @@ chrome_java_resources = [ - "java/res/xml/account_management_preferences_legacy.xml", - "java/res/xml/bookmark_widget_info.xml", - "java/res/xml/clear_browsing_data_preferences_tab.xml", -- "java/res/xml/contextual_search_preferences.xml", - "java/res/xml/developer_preferences.xml", - "java/res/xml/do_not_track_preferences.xml", - "java/res/xml/google_services_preferences.xml", -diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni ---- a/chrome/android/chrome_java_sources.gni -+++ b/chrome/android/chrome_java_sources.gni -@@ -310,21 +310,6 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManager.java", - "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelRepaddingTextView.java", - "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelTextViewInflater.java", -- "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchBarControl.java", -- "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchCaptionControl.java", -- "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchCardIconControl.java", -- "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchContextControl.java", -- "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchImageControl.java", -- "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java", -- "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanelCoordinator.java", -- "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanelInterface.java", -- "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanelMetrics.java", -- "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPromoControl.java", -- "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchQuickActionControl.java", -- "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchSheetContent.java", -- "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchTermControl.java", -- "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/NoSystemGestureFrameLayout.java", -- "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/RelatedSearchesControl.java", - "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabCoordinator.java", - "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabMediator.java", - "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabObserver.java", -@@ -365,7 +350,6 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabLoadTracker.java", - "java/src/org/chromium/chrome/browser/compositor/resources/StaticResourcePreloads.java", - "java/src/org/chromium/chrome/browser/compositor/resources/SystemResourcePreloads.java", -- "java/src/org/chromium/chrome/browser/compositor/scene_layer/ContextualSearchSceneLayer.java", - "java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java", - "java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java", - "java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java", -@@ -391,34 +375,6 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuUi.java", - "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuUtils.java", - "java/src/org/chromium/chrome/browser/contextmenu/LensChipDelegate.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchContext.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchFieldTrial.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchHeuristic.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchHeuristics.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchInternalStateController.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchInternalStateHandler.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManagementDelegate.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchNetworkCommunicator.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchObserver.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchPolicy.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchPreferenceFragment.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchRequest.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionController.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionHandler.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTapState.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTranslation.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTranslationImpl.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchUma.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/DisableablePromoTapCounter.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/RelatedSearchesList.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/RelatedSearchesStamp.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/RelatedSearchesUma.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/ResolvedSearchTerm.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/TapFarFromPreviousSuppression.java", -- "java/src/org/chromium/chrome/browser/contextualsearch/TapSuppressionHeuristics.java", - "java/src/org/chromium/chrome/browser/crash/ChromeMinidumpUploadJobServiceImpl.java", - "java/src/org/chromium/chrome/browser/crash/ChromeMinidumpUploaderDelegate.java", - "java/src/org/chromium/chrome/browser/crash/ChromePureJavaExceptionReporter.java", -diff --git a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java ---- a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java -+++ b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java -@@ -38,7 +38,6 @@ import org.chromium.base.supplier.Supplier; - import org.chromium.chrome.browser.app.ChromeActivity; - import org.chromium.chrome.browser.back_press.BackPressManager; - import org.chromium.chrome.browser.compositor.CompositorViewHolder; --import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; - import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.fullscreen.FullscreenManager; - import org.chromium.chrome.browser.fullscreen.FullscreenOptions; -@@ -559,14 +558,6 @@ class ManualFillingMediator - private boolean canExtendKeyboard() { - if (!mModel.get(SHOW_WHEN_VISIBLE)) return false; - -- // Don't open the accessory inside the contextual search panel. -- ObservableSupplier contextualSearchSupplier = -- mActivity.getContextualSearchManagerSupplier(); -- if (contextualSearchSupplier != null && contextualSearchSupplier.hasValue() -- && contextualSearchSupplier.get().isSearchPanelOpened()) { -- return false; -- } -- - // If an accessory sheet was opened, the accessory bar must be visible. - if (mAccessorySheet.isShown()) return true; - -diff --git a/chrome/android/java/res/layout/contextual_search_caption_view.xml b/chrome/android/java/res/layout/contextual_search_caption_view.xml -deleted file mode 100644 ---- a/chrome/android/java/res/layout/contextual_search_caption_view.xml -+++ /dev/null -@@ -1,16 +0,0 @@ -- -- -- -- -- -- -- -\ No newline at end of file -diff --git a/chrome/android/java/res/layout/contextual_search_card_icon_view.xml b/chrome/android/java/res/layout/contextual_search_card_icon_view.xml -deleted file mode 100644 ---- a/chrome/android/java/res/layout/contextual_search_card_icon_view.xml -+++ /dev/null -@@ -1,14 +0,0 @@ -- -- -- -- -- -diff --git a/chrome/android/java/res/layout/contextual_search_context_view.xml b/chrome/android/java/res/layout/contextual_search_context_view.xml -deleted file mode 100644 ---- a/chrome/android/java/res/layout/contextual_search_context_view.xml -+++ /dev/null -@@ -1,27 +0,0 @@ -- -- -- -- -- -- -- -- -- -diff --git a/chrome/android/java/res/layout/contextual_search_promo_view.xml b/chrome/android/java/res/layout/contextual_search_promo_view.xml -deleted file mode 100644 ---- a/chrome/android/java/res/layout/contextual_search_promo_view.xml -+++ /dev/null -@@ -1,88 +0,0 @@ -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -\ No newline at end of file -diff --git a/chrome/android/java/res/layout/contextual_search_quick_action_icon_view.xml b/chrome/android/java/res/layout/contextual_search_quick_action_icon_view.xml -deleted file mode 100644 ---- a/chrome/android/java/res/layout/contextual_search_quick_action_icon_view.xml -+++ /dev/null -@@ -1,14 +0,0 @@ -- -- -- -- -- -\ No newline at end of file -diff --git a/chrome/android/java/res/layout/contextual_search_related_searches_view.xml b/chrome/android/java/res/layout/contextual_search_related_searches_view.xml -deleted file mode 100644 ---- a/chrome/android/java/res/layout/contextual_search_related_searches_view.xml -+++ /dev/null -@@ -1,23 +0,0 @@ -- -- -- -- -- -- -- -- -- -diff --git a/chrome/android/java/res/layout/contextual_search_term_view.xml b/chrome/android/java/res/layout/contextual_search_term_view.xml -deleted file mode 100644 ---- a/chrome/android/java/res/layout/contextual_search_term_view.xml -+++ /dev/null -@@ -1,21 +0,0 @@ -- -- -- -- -- -- -- -diff --git a/chrome/android/java/res/xml/contextual_search_preferences.xml b/chrome/android/java/res/xml/contextual_search_preferences.xml -deleted file mode 100644 ---- a/chrome/android/java/res/xml/contextual_search_preferences.xml -+++ /dev/null -@@ -1,27 +0,0 @@ -- -- -- -- -- -- -- -- -- -- -- -- -diff --git a/chrome/android/java/res/xml/google_services_preferences.xml b/chrome/android/java/res/xml/google_services_preferences.xml ---- a/chrome/android/java/res/xml/google_services_preferences.xml -+++ b/chrome/android/java/res/xml/google_services_preferences.xml -@@ -32,12 +32,4 @@ found in the LICENSE file. - android:summary="@string/price_notifications_settings_description" - android:fragment="org.chromium.chrome.browser.commerce.PriceNotificationPreferenceFragment" - app:isPreferenceVisible="false"/> -- -- - -diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml ---- a/chrome/android/java/res/xml/privacy_preferences.xml -+++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -57,10 +57,6 @@ found in the LICENSE file. - android:title="@string/improve_search_suggestions_title" - android:summary="@string/improve_search_suggestions_summary" - android:persistent="false"/> -- - - - extends AsyncInitializationActivity -- implements TabCreatorManager, PolicyChangeListener, ContextualSearchTabPromotionDelegate, -+ implements TabCreatorManager, PolicyChangeListener, - SnackbarManageable, SceneChangeObserver, - StatusBarColorController.StatusBarColorProvider, AppMenuDelegate, AppMenuBlocker, - MenuOrKeyboardActionController, CompositorViewHolder.Initializer, -@@ -320,8 +317,6 @@ public abstract class ChromeActivity - new ObservableSupplierImpl<>(); - protected final UnownedUserDataSupplier mInsetObserverViewSupplier = - new InsetObserverViewSupplier(); -- private final ObservableSupplierImpl mContextualSearchManagerSupplier = -- new ObservableSupplierImpl<>(); - - private SnackbarManager mSnackbarManager; - -@@ -511,7 +506,7 @@ public abstract class ChromeActivity - // clang-format off - return new RootUiCoordinator(this, null, getShareDelegateSupplier(), - getActivityTabProvider(), mTabModelProfileSupplier, mBookmarkModelSupplier, -- mTabBookmarkerSupplier, getContextualSearchManagerSupplier(), -+ mTabBookmarkerSupplier, null, - getTabModelSelectorSupplier(), new OneshotSupplierImpl<>(), - new OneshotSupplierImpl<>(), new OneshotSupplierImpl<>(), - new OneshotSupplierImpl<>(), () -> null, mBrowserControlsManagerSupplier.get(), -@@ -947,14 +942,6 @@ public abstract class ChromeActivity - mCompositorViewHolderSupplier.get().onNativeLibraryReady( - getWindowAndroid(), getTabContentManager(), getPrefService()); - -- // TODO(1107916): Move contextual search initialization to the RootUiCoordinator. -- if (ContextualSearchFieldTrial.isEnabled()) { -- mContextualSearchManagerSupplier.set(new ContextualSearchManager(this, this, -- mRootUiCoordinator.getScrimCoordinator(), getActivityTabProvider(), -- getFullscreenManager(), getBrowserControlsManager(), getWindowAndroid(), -- getTabModelSelectorSupplier().get(), () -> getLastUserInteractionTime())); -- } -- - TraceEvent.end("ChromeActivity:CompositorInitialization"); - } - -@@ -1428,11 +1415,6 @@ public abstract class ChromeActivity - @SuppressLint("NewApi") - @Override - protected final void onDestroy() { -- if (mContextualSearchManagerSupplier.hasValue()) { -- mContextualSearchManagerSupplier.get().destroy(); -- mContextualSearchManagerSupplier.set(null); -- } -- - if (mSnackbarManager != null) { - SnackbarManagerProvider.detach(mSnackbarManager); - } -@@ -1920,13 +1902,6 @@ public abstract class ChromeActivity - return mCompositorViewHolderSupplier.get(); - } - -- /** -- * @return The {@code ContextualSearchManager} or {@code null} if none; -- */ -- public ObservableSupplier getContextualSearchManagerSupplier() { -- return mContextualSearchManagerSupplier; -- } -- - /** - * Exits the fullscreen mode, if any. Does nothing if no fullscreen is present. - * @return Whether the fullscreen mode is currently showing. -@@ -1975,15 +1950,6 @@ public abstract class ChromeActivity - } - - mActivityTabProvider.setLayoutStateProvider(layoutManager); -- -- if (mContextualSearchManagerSupplier.hasValue()) { -- mContextualSearchManagerSupplier.get().initialize(contentContainer, layoutManager, -- mRootUiCoordinator.getBottomSheetController(), compositorViewHolder, -- getControlContainerHeightResource() == ActivityUtils.NO_RESOURCE_ID -- ? 0f -- : getResources().getDimension(getControlContainerHeightResource()), -- getToolbarManager(), getActivityType(), getIntentRequestTracker()); -- } - } - - /** -@@ -2255,18 +2221,6 @@ public abstract class ChromeActivity - return webContents != null ? SelectionPopupController.fromWebContents(webContents) : null; - } - -- @Override -- public void createContextualSearchTab(String searchUrl) { -- Tab currentTab = getActivityTab(); -- if (currentTab == null) return; -- -- TabCreator tabCreator = getTabCreator(currentTab.isIncognito()); -- if (tabCreator == null) return; -- -- tabCreator.createNewTab(new LoadUrlParams(searchUrl, PageTransition.LINK), -- TabLaunchType.FROM_LINK, getActivityTab()); -- } -- - /** Opens the chrome://management page on a new tab. */ - private void openChromeManagementPage() { - Tab currentTab = getActivityTab(); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java -@@ -19,7 +19,6 @@ import org.chromium.base.annotations.NativeMethods; - import org.chromium.base.supplier.Supplier; - import org.chromium.chrome.browser.WebContentsFactory; - import org.chromium.chrome.browser.content.ContentUtils; --import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; - import org.chromium.chrome.browser.externalnav.ExternalNavigationDelegateImpl; - import org.chromium.chrome.browser.incognito.IncognitoUtils; - import org.chromium.chrome.browser.profiles.Profile; -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java -@@ -26,7 +26,6 @@ import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider - import org.chromium.chrome.browser.browser_controls.BrowserControlsUtils; - import org.chromium.chrome.browser.browser_controls.BrowserControlsVisibilityManager; - import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelManager; --import org.chromium.chrome.browser.compositor.bottombar.contextualsearch.ContextualSearchPanel; - import org.chromium.chrome.browser.compositor.layouts.Layout.Orientation; - import org.chromium.chrome.browser.compositor.layouts.components.LayoutTab; - import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; -@@ -323,8 +322,7 @@ public class LayoutManagerImpl - // it causes relocation tab strip scene layer. - StripLayoutHelperManager.class, - ScrollingBottomViewSceneLayer.class, -- StatusIndicatorCoordinator.getSceneOverlayClass(), -- ContextualSearchPanel.class}; -+ StatusIndicatorCoordinator.getSceneOverlayClass()}; - // clang-format on - - for (int i = 0; i < overlayOrder.length; i++) mOverlayOrderMap.put(overlayOrder[i], i); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java -@@ -158,7 +158,7 @@ public abstract class BaseCustomTabActivity extends ChromeActivity profileSupplier, - @NonNull ObservableSupplier bookmarkModelSupplier, - @NonNull ObservableSupplier tabBookmarkerSupplier, -- @NonNull Supplier contextualSearchManagerSupplier, -+ Object ignored, - @NonNull ObservableSupplier tabModelSelectorSupplier, - @NonNull BrowserControlsManager browserControlsManager, - @NonNull ActivityWindowAndroid windowAndroid, -@@ -166,7 +164,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { - // clang-format off - super(activity, null, shareDelegateSupplier, tabProvider, - profileSupplier, bookmarkModelSupplier, tabBookmarkerSupplier, -- contextualSearchManagerSupplier, tabModelSelectorSupplier, -+ null, tabModelSelectorSupplier, - new OneshotSupplierImpl<>(), new OneshotSupplierImpl<>(), - new OneshotSupplierImpl<>(), new OneshotSupplierImpl<>(), () -> null, - browserControlsManager, windowAndroid, new DummyJankTracker(), -@@ -226,16 +224,6 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { - - mTabController.get().registerTabObserver( - new PartialCustomTabTabObserver(softInputCallback)); -- mTabController.get().registerTabObserver(new EmptyTabObserver() { -- @Override -- public void didFirstVisuallyNonEmptyPaint(Tab tab) { -- BaseCustomTabActivity baseActivity = (BaseCustomTabActivity) mActivity; -- assert baseActivity != null; -- baseActivity.getContextualSearchManagerSupplier() -- .get() -- .setCanHideAndroidBrowserControls(false); -- } -- }); - } - } - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java -@@ -187,12 +187,6 @@ public class CustomTabActivity extends BaseCustomTabActivity { - mIntentDataProvider.getSession(), webContents); - } - -- @Override -- public void createContextualSearchTab(String searchUrl) { -- if (getActivityTab() == null) return; -- getActivityTab().loadUrl(new LoadUrlParams(searchUrl)); -- } -- - @Override - public String getPackageName() { - if (mShouldOverridePackage && mIntentDataProvider instanceof CustomTabIntentDataProvider) { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter.java b/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter.java -@@ -20,7 +20,6 @@ import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider - import org.chromium.chrome.browser.browser_controls.BrowserControlsUtils; - import org.chromium.chrome.browser.browser_controls.BrowserControlsVisibilityManager; - import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel; --import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; - import org.chromium.chrome.browser.fullscreen.FullscreenManager; - import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; - import org.chromium.chrome.browser.tab.Tab; -@@ -48,7 +47,6 @@ public class ChromeTabModalPresenter - private final Activity mActivity; - private final Supplier mTabObscuringHandlerSupplier; - private final Supplier mToolbarManagerSupplier; -- private final Supplier mContextualSearchManagerSupplier; - private final FullscreenManager mFullscreenManager; - private final BrowserControlsVisibilityManager mBrowserControlsVisibilityManager; - private final TabModalBrowserControlsVisibilityDelegate mVisibilityDelegate; -@@ -95,7 +93,7 @@ public class ChromeTabModalPresenter - public ChromeTabModalPresenter(Activity activity, - Supplier tabObscuringHandlerSupplier, - Supplier toolbarManagerSupplier, -- Supplier contextualSearchManagerSupplier, -+ Object ignored, - FullscreenManager fullscreenManager, - BrowserControlsVisibilityManager browserControlsVisibilityManager, - TabModelSelector tabModelSelector) { -@@ -107,7 +105,6 @@ public class ChromeTabModalPresenter - mBrowserControlsVisibilityManager = browserControlsVisibilityManager; - mBrowserControlsVisibilityManager.addObserver(this); - mVisibilityDelegate = new TabModalBrowserControlsVisibilityDelegate(); -- mContextualSearchManagerSupplier = contextualSearchManagerSupplier; - mTabModelSelector = tabModelSelector; - } - -@@ -195,13 +192,6 @@ public class ChromeTabModalPresenter - assert mActiveTab - != null : "Tab modal dialogs should be shown on top of an active tab."; - -- // Hide contextual search panel so that bottom toolbar will not be -- // obscured and back press is not overridden. -- if (mContextualSearchManagerSupplier.hasValue()) { -- mContextualSearchManagerSupplier.get().hideContextualSearch( -- OverlayPanel.StateChangeReason.UNKNOWN); -- } -- - // Dismiss the action bar that obscures the dialogs but preserve the text selection. - WebContents webContents = mActiveTab.getWebContents(); - if (webContents != null) { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler.java -@@ -11,7 +11,6 @@ import org.chromium.base.supplier.ObservableSupplierImpl; - import org.chromium.base.supplier.Supplier; - import org.chromium.chrome.browser.back_press.BackPressManager; - import org.chromium.chrome.browser.browser_controls.BrowserControlsVisibilityManager; --import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; - import org.chromium.chrome.browser.fullscreen.FullscreenManager; - import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; - import org.chromium.chrome.browser.lifecycle.DestroyObserver; -@@ -72,7 +71,6 @@ public class TabModalLifetimeHandler implements NativeInitObserver, DestroyObser - mAppVisibilityDelegateSupplier; - private final Supplier mTabObscuringHandlerSupplier; - private final Supplier mToolbarManagerSupplier; -- private final Supplier mContextualSearchManagerSupplier; - private final Supplier mTabModelSelectorSupplier; - private final Supplier - mBrowserControlsVisibilityManagerSupplier; -@@ -107,7 +105,7 @@ public class TabModalLifetimeHandler implements NativeInitObserver, DestroyObser - Supplier appVisibilityDelegateSupplier, - Supplier tabObscuringHandlerSupplier, - Supplier toolbarManagerSupplier, -- Supplier contextualSearchManagerSupplier, -+ Object ignored, - Supplier tabModelSelectorSupplier, - Supplier browserControlsVisibilityManagerSupplier, - Supplier fullscreenManagerSupplier, -@@ -123,7 +121,6 @@ public class TabModalLifetimeHandler implements NativeInitObserver, DestroyObser - mFullscreenManagerSupplier = fullscreenManagerSupplier; - mBrowserControlsVisibilityManagerSupplier = browserControlsVisibilityManagerSupplier; - mVisibilityDelegate = new TabModalBrowserControlsVisibilityDelegate(); -- mContextualSearchManagerSupplier = contextualSearchManagerSupplier; - mTabModelSelectorSupplier = tabModelSelectorSupplier; - mBackPressManager = backPressManager; - if (BackPressManager.isEnabled()) { -@@ -180,7 +177,7 @@ public class TabModalLifetimeHandler implements NativeInitObserver, DestroyObser - assert mBrowserControlsVisibilityManagerSupplier.hasValue(); - assert mFullscreenManagerSupplier.hasValue(); - mPresenter = new ChromeTabModalPresenter(mActivity, mTabObscuringHandlerSupplier, -- mToolbarManagerSupplier, mContextualSearchManagerSupplier, -+ mToolbarManagerSupplier, null, - mFullscreenManagerSupplier.get(), mBrowserControlsVisibilityManagerSupplier.get(), - tabModelSelector); - assert mAppVisibilityDelegateSupplier.hasValue(); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -47,7 +47,6 @@ import org.chromium.ui.text.SpanApplier; - - import androidx.annotation.Nullable; - import androidx.preference.PreferenceCategory; --import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; - import org.chromium.chrome.browser.preferences.SharedPreferencesManager; - import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; - import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; -@@ -71,9 +70,7 @@ public class PrivacySettings extends PreferenceFragmentCompat - // moved from SyncAndServicesSettings.java - private static final String PREF_SERVICES_CATEGORY = "services_category"; - private static final String PREF_SEARCH_SUGGESTIONS = "search_suggestions"; -- private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search"; - private ChromeSwitchPreference mSearchSuggestions; -- private @Nullable Preference mContextualSearch; - private final SharedPreferencesManager mSharedPreferencesManager = - SharedPreferencesManager.getInstance(); - private final PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile()); -@@ -131,12 +128,6 @@ public class PrivacySettings extends PreferenceFragmentCompat - mSearchSuggestions.setOnPreferenceChangeListener(this); - mSearchSuggestions.setManagedPreferenceDelegate(mManagedPreferenceDelegate); - -- mContextualSearch = findPreference(PREF_CONTEXTUAL_SEARCH); -- boolean isContextualSearchEnabled = -- !ContextualSearchManager.isContextualSearchDisabled(); -- mContextualSearch.setSummary( -- isContextualSearchEnabled ? R.string.text_on : R.string.text_off); -- - ChromeSwitchPreference canMakePaymentPref = - (ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT); - canMakePaymentPref.setOnPreferenceChangeListener(this); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java -@@ -7,7 +7,6 @@ package org.chromium.chrome.browser.tab; - import org.chromium.chrome.browser.SwipeRefreshHandler; - import org.chromium.chrome.browser.accessibility.AccessibilityTabHelper; - import org.chromium.chrome.browser.complex_tasks.TaskTabHelper; --import org.chromium.chrome.browser.contextualsearch.ContextualSearchTabHelper; - import org.chromium.chrome.browser.crypto.CipherFactory; - import org.chromium.chrome.browser.dom_distiller.ReaderModeManager; - import org.chromium.chrome.browser.dom_distiller.TabDistillabilityProvider; -@@ -33,7 +32,6 @@ public final class TabHelpers { - TabStateAttributes.createForTab(tab, ((TabImpl) tab).getCreationState()); - TabDistillabilityProvider.createForTab(tab); - InterceptNavigationDelegateTabHelper.createForTab(tab); -- ContextualSearchTabHelper.createForTab(tab); - MediaSessionTabHelper.createForTab(tab); - TaskTabHelper.createForTab(tab, parentTab); - TabBrowserControlsConstraintsHelper.createForTab(tab); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -38,7 +38,6 @@ import org.chromium.chrome.browser.compositor.CompositorViewHolder; - import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator; - import org.chromium.chrome.browser.compositor.layouts.LayoutManagerImpl; - import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; --import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; - import org.chromium.chrome.browser.desktop_site.DesktopSiteSettingsIPHController; - import org.chromium.chrome.browser.feature_guide.notifications.FeatureNotificationUtils; - import org.chromium.chrome.browser.feature_guide.notifications.FeatureType; -@@ -261,7 +260,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { - @NonNull ObservableSupplier profileSupplier, - @NonNull ObservableSupplier bookmarkModelSupplier, - @NonNull ObservableSupplier tabBookmarkerSupplier, -- @NonNull Supplier contextualSearchManagerSupplier, -+ Object ignored, - @NonNull ObservableSupplier tabModelSelectorSupplier, - @NonNull OneshotSupplier startSurfaceSupplier, - @NonNull OneshotSupplier tabSwitcherSupplier, -@@ -296,7 +295,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { - boolean initializeUiWithIncognitoColors, @NonNull BackPressManager backPressManager) { - super(activity, onOmniboxFocusChangedListener, shareDelegateSupplier, tabProvider, - profileSupplier, bookmarkModelSupplier, tabBookmarkerSupplier, -- contextualSearchManagerSupplier, tabModelSelectorSupplier, startSurfaceSupplier, -+ null, tabModelSelectorSupplier, startSurfaceSupplier, - tabSwitcherSupplier, intentMetadataOneshotSupplier, - layoutStateProviderOneshotSupplier, startSurfaceParentTabSupplier, - browserControlsManager, windowAndroid, jankTracker, activityLifecycleDispatcher, -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -53,7 +53,6 @@ import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelManager; - import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator; - import org.chromium.chrome.browser.compositor.layouts.LayoutManagerImpl; - import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; --import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; - import org.chromium.chrome.browser.crash.ChromePureJavaExceptionReporter; - import org.chromium.chrome.browser.directactions.DirectActionInitializer; - import org.chromium.chrome.browser.dom_distiller.ReaderModeToolbarButtonController; -@@ -97,7 +96,6 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager; - import org.chromium.chrome.browser.price_tracking.PriceTrackingButtonController; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; --import org.chromium.chrome.browser.segmentation_platform.ContextualPageActionController; - import org.chromium.chrome.browser.settings.SettingsLauncherImpl; - import org.chromium.chrome.browser.share.ShareButtonController; - import org.chromium.chrome.browser.share.ShareDelegate; -@@ -243,7 +241,6 @@ public class RootUiCoordinator - private List mButtonDataProviders; - @Nullable - private AdaptiveToolbarButtonController mAdaptiveToolbarButtonController; -- private ContextualPageActionController mContextualPageActionController; - private IdentityDiscController mIdentityDiscController; - private ChromeActionModeHandler mChromeActionModeHandler; - private final ToolbarActionModeCallback mActionModeControllerCallback; -@@ -256,7 +253,6 @@ public class RootUiCoordinator - private final ObservableSupplier mTabBookmarkerSupplier; - private final OneshotSupplierImpl mAppMenuSupplier; - private BottomSheetObserver mBottomSheetObserver; -- private final Supplier mContextualSearchManagerSupplier; - protected final CallbackController mCallbackController; - protected final BrowserControlsManager mBrowserControlsManager; - private BrowserControlsStateProvider.Observer mBrowserControlsObserver; -@@ -361,7 +357,7 @@ public class RootUiCoordinator - @NonNull ObservableSupplier profileSupplier, - @NonNull ObservableSupplier bookmarkModelSupplier, - @NonNull ObservableSupplier tabBookmarkerSupplier, -- @NonNull Supplier contextualSearchManagerSupplier, -+ Object ignored, - @NonNull ObservableSupplier tabModelSelectorSupplier, - @NonNull OneshotSupplier startSurfaceSupplier, - @NonNull OneshotSupplier tabSwitcherSupplier, -@@ -454,7 +450,6 @@ public class RootUiCoordinator - mBookmarkModelSupplier = bookmarkModelSupplier; - mTabBookmarkerSupplier = tabBookmarkerSupplier; - mAppMenuSupplier = new OneshotSupplierImpl<>(); -- mContextualSearchManagerSupplier = contextualSearchManagerSupplier; - mActionModeControllerCallback = new ToolbarActionModeCallback(); - - mTabModelSelectorSupplier = tabModelSelectorSupplier; -@@ -566,11 +561,6 @@ public class RootUiCoordinator - mToolbarManager = null; - } - -- if (mContextualPageActionController != null) { -- mContextualPageActionController.destroy(); -- mContextualPageActionController = null; -- } -- - if (mAdaptiveToolbarButtonController != null) { - mAdaptiveToolbarButtonController.destroy(); - mAdaptiveToolbarButtonController = null; -@@ -985,15 +975,6 @@ public class RootUiCoordinator - - @Override - public boolean canShowAppMenu() { -- // TODO(https:crbug.com/931496): Eventually the ContextualSearchManager, -- // EphemeralTabCoordinator, and FindToolbarManager will all be owned by this class. -- -- // Do not show the menu if Contextual Search panel is opened. -- if (mContextualSearchManagerSupplier.get() != null -- && mContextualSearchManagerSupplier.get().isSearchPanelOpened()) { -- return false; -- } -- - // Do not show the menu if we are in find in page view. - if (mFindToolbarManager != null && mFindToolbarManager.isShowing() - && !DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity)) { -@@ -1160,11 +1141,6 @@ public class RootUiCoordinator - AdaptiveToolbarButtonVariant.PRICE_TRACKING, priceTrackingButtonController); - adaptiveToolbarButtonController.addButtonVariant( - AdaptiveToolbarButtonVariant.READER_MODE, readerModeToolbarButtonController); -- mContextualPageActionController = new ContextualPageActionController(mProfileSupplier, -- mActivityTabProvider, adaptiveToolbarButtonController, -- () -- -> ShoppingServiceFactory.getForProfile(mProfileSupplier.get()), -- mBookmarkModelSupplier); - mButtonDataProviders = - Arrays.asList(mIdentityDiscController, adaptiveToolbarButtonController); - -@@ -1233,10 +1209,6 @@ public class RootUiCoordinator - public void onStartedShowing(int layoutType, boolean showToolbar) { - if (layoutType != LayoutType.BROWSING - && layoutType != LayoutType.SIMPLE_ANIMATION) { -- // Hide contextual search. -- if (mContextualSearchManagerSupplier.get() != null) { -- mContextualSearchManagerSupplier.get().dismissContextualSearchBar(); -- } - } - - if (layoutType == LayoutType.TAB_SWITCHER) { -@@ -1357,10 +1329,6 @@ public class RootUiCoordinator - * cross-feature interaction, e.g. hide other features when this feature is shown. - */ - protected void onFindToolbarShown() { -- if (mContextualSearchManagerSupplier.get() != null) { -- mContextualSearchManagerSupplier.get().hideContextualSearch( -- OverlayPanel.StateChangeReason.UNKNOWN); -- } - } - - /** -@@ -1517,9 +1485,6 @@ public class RootUiCoordinator - case SheetState.FULL: - if (!mOpened) { - mOpened = true; -- ContextualSearchManager manager = -- mContextualSearchManagerSupplier.get(); -- if (manager != null) manager.onBottomSheetVisible(true); - } - - // On visible bottom sheet, hide page zoom dialog -@@ -1527,8 +1492,6 @@ public class RootUiCoordinator - break; - case SheetState.HIDDEN: - mOpened = false; -- ContextualSearchManager manager = mContextualSearchManagerSupplier.get(); -- if (manager != null) manager.onBottomSheetVisible(false); - break; - } - } -diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn ---- a/chrome/browser/BUILD.gn -+++ b/chrome/browser/BUILD.gn -@@ -2049,7 +2049,6 @@ static_library("browser") { - "//components/content_settings/common:mojom", - "//components/content_settings/core/browser", - "//components/content_settings/core/common", -- "//components/contextual_search/core/browser", - "//components/cookie_config", - "//components/country_codes", - "//components/crash/core/browser", -@@ -2546,8 +2545,6 @@ static_library("browser") { - "android/compositor/decoration_title.h", - "android/compositor/layer/content_layer.cc", - "android/compositor/layer/content_layer.h", -- "android/compositor/layer/contextual_search_layer.cc", -- "android/compositor/layer/contextual_search_layer.h", - "android/compositor/layer/layer.h", - "android/compositor/layer/overlay_panel_layer.cc", - "android/compositor/layer/overlay_panel_layer.h", -@@ -2568,8 +2565,6 @@ static_library("browser") { - "android/compositor/resources/resource_factory.cc", - "android/compositor/resources/toolbar_resource.cc", - "android/compositor/resources/toolbar_resource.h", -- "android/compositor/scene_layer/contextual_search_scene_layer.cc", -- "android/compositor/scene_layer/contextual_search_scene_layer.h", - "android/compositor/scene_layer/overscroll_scene_layer.cc", - "android/compositor/scene_layer/overscroll_scene_layer.h", - "android/compositor/scene_layer/scrolling_bottom_view_scene_layer.cc", -@@ -2592,16 +2587,6 @@ static_library("browser") { - "android/content/content_utils.cc", - "android/context_menu/context_menu_native_delegate_impl.cc", - "android/context_menu/context_menu_native_delegate_impl.h", -- "android/contextualsearch/contextual_search_manager.cc", -- "android/contextualsearch/contextual_search_manager.h", -- "android/contextualsearch/contextual_search_tab_helper.cc", -- "android/contextualsearch/contextual_search_tab_helper.h", -- "android/contextualsearch/native_contextual_search_context.cc", -- "android/contextualsearch/native_contextual_search_context.h", -- "android/contextualsearch/unhandled_tap_notifier_impl.cc", -- "android/contextualsearch/unhandled_tap_notifier_impl.h", -- "android/contextualsearch/unhandled_tap_web_contents_observer.cc", -- "android/contextualsearch/unhandled_tap_web_contents_observer.h", - "android/cookies/cookies_fetcher_util.cc", - "android/customtabs/chrome_origin_verifier.cc", - "android/customtabs/chrome_origin_verifier.h", -@@ -3139,8 +3124,6 @@ static_library("browser") { - "safe_browsing/android/safe_browsing_referring_app_bridge_android.h", - "safe_browsing/android/safe_browsing_settings_launcher_android.cc", - "safe_browsing/android/safe_browsing_settings_launcher_android.h", -- "search/contextual_search_policy_handler_android.cc", -- "search/contextual_search_policy_handler_android.h", - "search_engines/template_url_service_factory_android.cc", - "search_engines/ui_thread_search_terms_data_android.cc", - "search_engines/ui_thread_search_terms_data_android.h", -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 -@@ -2152,27 +2152,6 @@ const FeatureEntry::FeatureVariation kRelatedSearchesVariations[] = { - {"from content", &kRelatedSearchesContent, 1, nullptr}, - {"support all languages", &kRelatedSearchesAllLanguages, 1, nullptr}, - }; -- --const FeatureEntry::FeatureParam kContextualSearchSuppressShortViewWith300Dp[] = -- {{"contextual_search_minimum_page_height_dp", "300"}}; --const FeatureEntry::FeatureParam kContextualSearchSuppressShortViewWith400Dp[] = -- {{"contextual_search_minimum_page_height_dp", "400"}}; --const FeatureEntry::FeatureParam kContextualSearchSuppressShortViewWith500Dp[] = -- {{"contextual_search_minimum_page_height_dp", "500"}}; --const FeatureEntry::FeatureParam kContextualSearchSuppressShortViewWith600Dp[] = -- {{"contextual_search_minimum_page_height_dp", "600"}}; --const FeatureEntry::FeatureVariation -- kContextualSearchSuppressShortViewVariations[] = { -- {"(300 dp)", kContextualSearchSuppressShortViewWith300Dp, -- std::size(kContextualSearchSuppressShortViewWith300Dp), nullptr}, -- {"(400 dp)", kContextualSearchSuppressShortViewWith400Dp, -- std::size(kContextualSearchSuppressShortViewWith400Dp), nullptr}, -- {"(500 dp)", kContextualSearchSuppressShortViewWith500Dp, -- std::size(kContextualSearchSuppressShortViewWith500Dp), nullptr}, -- {"(600 dp)", kContextualSearchSuppressShortViewWith600Dp, -- std::size(kContextualSearchSuppressShortViewWith600Dp), nullptr}, --}; -- - #endif // BUILDFLAG(IS_ANDROID) - - const FeatureEntry::FeatureParam -@@ -3582,18 +3561,6 @@ const FeatureEntry kFeatureEntries[] = { - SINGLE_VALUE_TYPE(extensions::switches::kExtensionsOnChromeURLs)}, - #endif // ENABLE_EXTENSIONS - #if BUILDFLAG(IS_ANDROID) -- {"contextual-search-force-caption", -- flag_descriptions::kContextualSearchForceCaptionName, -- flag_descriptions::kContextualSearchForceCaptionDescription, kOsAndroid, -- FEATURE_VALUE_TYPE(chrome::android::kContextualSearchForceCaption)}, -- {"contextual-search-suppress-short-view", -- flag_descriptions::kContextualSearchSuppressShortViewName, -- flag_descriptions::kContextualSearchSuppressShortViewDescription, -- kOsAndroid, -- FEATURE_WITH_PARAMS_VALUE_TYPE( -- chrome::android::kContextualSearchSuppressShortView, -- kContextualSearchSuppressShortViewVariations, -- "ContextualSearchSuppressShortView")}, - {"related-searches", flag_descriptions::kRelatedSearchesName, - flag_descriptions::kRelatedSearchesDescription, kOsAndroid, - FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kRelatedSearches, -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 -@@ -35,7 +35,6 @@ - #include "components/commerce/core/commerce_feature_list.h" - #include "components/content_creation/notes/core/note_features.h" - #include "components/content_settings/core/common/features.h" --#include "components/contextual_search/core/browser/contextual_search_field_trial.h" - #include "components/download/public/common/download_features.h" - #include "components/embedder_support/android/util/cdn_utils.h" - #include "components/feature_engagement/public/feature_list.h" -@@ -225,11 +224,6 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kContextMenuSearchAndShopWithGoogleLens, - &kContextMenuTranslateWithGoogleLens, - &kContextMenuPopupForAllScreenSizes, -- &kContextualSearchDelayedIntelligence, -- &kContextualSearchDisableOnlineDetection, -- &kContextualSearchForceCaption, -- &kContextualSearchSuppressShortView, -- &kContextualSearchThinWebViewImplementation, - &kDeferKeepScreenOnDuringGesture, - &kDeferNotifyInMotion, - &kDelayTransitionsForAnimation, -@@ -700,26 +694,6 @@ BASE_FEATURE(kLensOnQuickActionSearchWidget, - "LensOnQuickActionSearchWidget", - base::FEATURE_ENABLED_BY_DEFAULT); - --BASE_FEATURE(kContextualSearchDelayedIntelligence, -- "ContextualSearchDelayedIntelligence", -- base::FEATURE_DISABLED_BY_DEFAULT); -- --BASE_FEATURE(kContextualSearchDisableOnlineDetection, -- "ContextualSearchDisableOnlineDetection", -- base::FEATURE_DISABLED_BY_DEFAULT); -- --BASE_FEATURE(kContextualSearchForceCaption, -- "ContextualSearchForceCaption", -- base::FEATURE_ENABLED_BY_DEFAULT); -- --BASE_FEATURE(kContextualSearchSuppressShortView, -- "ContextualSearchSuppressShortView", -- base::FEATURE_DISABLED_BY_DEFAULT); -- --BASE_FEATURE(kContextualSearchThinWebViewImplementation, -- "ContextualSearchThinWebViewImplementation", -- base::FEATURE_DISABLED_BY_DEFAULT); -- - BASE_FEATURE(kDeferKeepScreenOnDuringGesture, - "DeferKeepScreenOnDuringGesture", - base::FEATURE_DISABLED_BY_DEFAULT); -@@ -739,7 +713,6 @@ BASE_FEATURE(kDownloadAutoResumptionThrottling, - BASE_FEATURE(kDownloadHomeForExternalApp, - "DownloadHomeForExternalApp", - base::FEATURE_ENABLED_BY_DEFAULT); -- - BASE_FEATURE(kExperimentsForAgsa, - "ExperimentsForAgsa", - base::FEATURE_ENABLED_BY_DEFAULT); -diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h ---- a/chrome/browser/flags/android/chrome_feature_list.h -+++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -83,11 +83,6 @@ BASE_DECLARE_FEATURE(kContextMenuSearchWithGoogleLens); - BASE_DECLARE_FEATURE(kContextMenuShopWithGoogleLens); - BASE_DECLARE_FEATURE(kContextMenuSearchAndShopWithGoogleLens); - BASE_DECLARE_FEATURE(kContextMenuTranslateWithGoogleLens); --BASE_DECLARE_FEATURE(kContextualSearchDelayedIntelligence); --BASE_DECLARE_FEATURE(kContextualSearchDisableOnlineDetection); --BASE_DECLARE_FEATURE(kContextualSearchForceCaption); --BASE_DECLARE_FEATURE(kContextualSearchSuppressShortView); --BASE_DECLARE_FEATURE(kContextualSearchThinWebViewImplementation); - BASE_DECLARE_FEATURE(kDeferKeepScreenOnDuringGesture); - BASE_DECLARE_FEATURE(kDeferNotifyInMotion); - BASE_DECLARE_FEATURE(kDelayTransitionsForAnimation); -diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc ---- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc -+++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc -@@ -121,7 +121,6 @@ - #if BUILDFLAG(IS_ANDROID) - #include "chrome/browser/first_run/android/first_run_prefs.h" - #include "chrome/browser/lens/android/lens_prefs.h" --#include "chrome/browser/search/contextual_search_policy_handler_android.h" - #else // BUILDFLAG(IS_ANDROID) - #include "chrome/browser/download/default_download_dir_policy_handler.h" - #include "chrome/browser/download/download_auto_open_policy_handler.h" -@@ -1977,10 +1976,7 @@ std::unique_ptr BuildHandlerList( - std::make_unique(key::kURLBlocklist)); - // Policies for all platforms - End - --#if BUILDFLAG(IS_ANDROID) -- handlers->AddHandler( -- std::make_unique()); --#else // !BUILDFLAG(IS_ANDROID) -+#if !BUILDFLAG(IS_ANDROID) - handlers->AddHandler(std::make_unique()); - handlers->AddHandler(std::make_unique( - key::kClearBrowsingDataOnExitList, -diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd ---- a/chrome/browser/ui/android/strings/android_chrome_strings.grd -+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -803,33 +803,6 @@ CHAR_LIMIT guidelines: - - Customize the info used by sites to show you ads - -- -- Touch to Search -- -- -- Learn about topics on websites without leaving the page. Select one or more words on the page to search for them. -- -- -- Include surrounding text in Google searches? -- -- -- By including more of a page’s text, you might see better results when using Touch to Search. You can always visit <link>settings</link> to change this. -- -- -- Include -- -- -- No thanks -- -- -- Tap to see search results -- -- -- Include surrounding text in Google searches -- -- -- By including more of a page’s text, you might see better results -- - - “Do Not Track” - -@@ -4135,38 +4108,6 @@ To change this setting, <resetlink>reset sync

- -- -- -- Unable to access the network -- -- -- Error: %1$s404 -- -- -- Open in %1$sMaps -- -- -- Open in maps app -- -- -- Create email in %1$sGmail -- -- -- Create email -- -- -- Create event in %1$sCalendar -- -- -- Create event -- -- -- Call -- -- -- Go to page -- -- - - - Web App -diff --git a/content/browser/browser_interface_binders.cc b/content/browser/browser_interface_binders.cc ---- a/content/browser/browser_interface_binders.cc -+++ b/content/browser/browser_interface_binders.cc -@@ -180,7 +180,6 @@ - #include "content/browser/renderer_host/render_widget_host_view_android.h" - #include "services/device/public/mojom/nfc.mojom.h" - #include "third_party/blink/public/mojom/hid/hid.mojom.h" --#include "third_party/blink/public/mojom/unhandled_tap_notifier/unhandled_tap_notifier.mojom.h" - #else // BUILDFLAG(IS_ANDROID) - #include "content/browser/direct_sockets/direct_sockets_service_impl.h" - #include "media/mojo/mojom/renderer_extensions.mojom.h" -diff --git a/third_party/blink/public/mojom/BUILD.gn b/third_party/blink/public/mojom/BUILD.gn ---- a/third_party/blink/public/mojom/BUILD.gn -+++ b/third_party/blink/public/mojom/BUILD.gn -@@ -1049,8 +1049,8 @@ mojom("android_mojo_bindings") { - # This Android unhandled-tap feature uses another mojo source, add it in. - if (enable_unhandled_tap) { - sources += [ "unhandled_tap_notifier/unhandled_tap_notifier.mojom" ] -- public_deps += [ "//ui/gfx/geometry/mojom" ] - } -+ public_deps += [ "//ui/gfx/geometry/mojom" ] - - cpp_typemaps = [ - { -diff --git a/third_party/blink/public/public_features.gni b/third_party/blink/public/public_features.gni ---- a/third_party/blink/public/public_features.gni -+++ b/third_party/blink/public/public_features.gni -@@ -7,7 +7,7 @@ import("//build/config/ui.gni") - # Unhandled Tap enable means Contextual Search aka Touch to Search. - # TODO(donnd): remove all unhandled-tap handling after the Long-press experiment - # is fully launched. --enable_unhandled_tap = is_android -+enable_unhandled_tap = false - - # Use Minikin hyphenation engine. - use_minikin_hyphenation = !is_apple --- -2.25.1 diff --git a/build/patches/Remove-price-shopping-commerce-integrations.patch b/build/patches/Remove-price-shopping-commerce-integrations.patch deleted file mode 100644 index 65b8ac97..00000000 --- a/build/patches/Remove-price-shopping-commerce-integrations.patch +++ /dev/null @@ -1,2849 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sun, 19 Jun 2022 11:00:12 +0200 -Subject: Remove price/shopping/commerce integrations - -License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ---- - chrome/android/BUILD.gn | 33 -- - chrome/android/chrome_java_sources.gni | 5 - - chrome/android/features/tab_ui/BUILD.gn | 5 - - .../res/layout/large_message_card_item.xml | 9 - - .../java/res/layout/tab_grid_card_item.xml | 8 - - .../tab_management/LargeMessageCardView.java | 30 -- - .../LargeMessageCardViewBinder.java | 1 - - .../MessageCardProviderMediator.java | 6 +- - .../TabGridDialogCoordinator.java | 2 +- - .../tab_management/TabGridViewBinder.java | 36 --- - .../tab_management/TabGroupUiCoordinator.java | 2 +- - .../tab_management/TabListCoordinator.java | 25 +- - .../tasks/tab_management/TabListMediator.java | 169 +--------- - .../tasks/tab_management/TabProperties.java | 5 +- - .../TabSelectionEditorCoordinator.java | 2 +- - .../TabSwitcherCoordinator.java | 95 +----- - .../tab_management/TabSwitcherMediator.java | 57 ---- - .../chrome/browser/app/ChromeActivity.java | 10 +- - .../AppMenuPropertiesDelegateImpl.java | 11 +- - .../browser/bookmarks/BookmarkBridge.java | 11 - - .../bookmarks/BookmarkItemsAdapter.java | 1 + - .../browser/bookmarks/BookmarkListEntry.java | 30 +- - .../bookmarks/BookmarkManagerCoordinator.java | 23 -- - .../bookmarks/BookmarkManagerMediator.java | 13 +- - .../bookmarks/BookmarkManagerViewBinder.java | 11 - - .../BookmarkSaveFlowCoordinator.java | 6 +- - .../bookmarks/BookmarkSaveFlowMediator.java | 77 +---- - .../browser/bookmarks/BookmarkToolbar.java | 4 +- - .../browser/bookmarks/BookmarkUiState.java | 13 - - .../browser/bookmarks/BookmarkUtils.java | 5 +- - .../browser/customtabs/CustomTabActivity.java | 2 +- - .../init/ProcessInitializationHandler.java | 5 - - .../ChromePageInfoControllerDelegate.java | 8 - - .../ContextualPageActionController.java | 4 - - .../chrome/browser/tab/TabHelpers.java | 9 - - .../tabbed_mode/TabbedRootUiCoordinator.java | 21 -- - .../ToolbarButtonInProductHelpController.java | 27 -- - .../browser/toolbar/ToolbarManager.java | 19 +- - .../chrome/browser/ui/RootUiCoordinator.java | 20 -- - chrome/android/java_sources.gni | 7 - - chrome/browser/BUILD.gn | 4 - - .../browsing_data_history_observer_service.cc | 15 - - .../commerce/merchant_viewer/android/BUILD.gn | 34 +- - .../MerchantTrustSignalsCoordinator.java | 303 +----------------- - .../PageInfoStoreInfoController.java | 6 - - .../price_tracking/PriceTrackingFeatures.java | 2 +- - .../commerce/subscriptions/android/BUILD.gn | 1 - - .../CommerceSubscriptionsService.java | 34 +- - .../optimization_guide_keyed_service.cc | 4 - - chrome/browser/persisted_state_db/BUILD.gn | 1 - - ...hrome_browser_main_extra_parts_profiles.cc | 3 - - chrome/browser/tab/BUILD.gn | 1 - - .../tab/state/CouponPersistedTabData.java | 4 +- - .../tab/state/ShoppingPersistedTabData.java | 3 +- - chrome/browser/ui/android/omnibox/BUILD.gn | 1 - - .../components/bookmarks/BookmarkId.java | 3 - - .../commerce/core/commerce_feature_list.cc | 65 ++-- - 57 files changed, 80 insertions(+), 1231 deletions(-) - -diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn ---- a/chrome/android/BUILD.gn -+++ b/chrome/android/BUILD.gn -@@ -21,10 +21,6 @@ import("//chrome/android/features/vr/public_vr_java_sources.gni") - import("//chrome/android/feed/feed_java_sources.gni") - import("//chrome/android/modules/chrome_bundle_tmpl.gni") - import("//chrome/android/modules/chrome_feature_module_tmpl.gni") --import("//chrome/browser/commerce/price_tracking/android/java_sources.gni") --import("//chrome/browser/commerce/subscriptions/android/java_sources.gni") --import( -- "//chrome/browser/commerce/subscriptions/test/android/test_java_sources.gni") - import("//chrome/browser/page_info/buildflags.gni") - import("//chrome/browser/password_manager/buildflags.gni") - import("//chrome/browser/share/android/java_sources.gni") -@@ -262,9 +258,6 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/browser_controls/android:java", - "//chrome/browser/commerce/android:java", - "//chrome/browser/commerce/merchant_viewer/android:java", -- "//chrome/browser/commerce/price_tracking/android:java", -- "//chrome/browser/commerce/price_tracking/proto:proto_java", -- "//chrome/browser/commerce/subscriptions/android:subscriptions_java", - "//chrome/browser/consent_auditor/android:java", - "//chrome/browser/contextmenu:java", - "//chrome/browser/creator/android:java", -@@ -644,16 +637,6 @@ if (current_toolchain == default_toolchain) { - sources += share_java_sources - deps += share_java_deps - -- # TODO(crbug/1186003): Instead of adding source files, add it as a separate -- # dependency when circular deps is resolved. -- sources += price_tracking_java_sources -- deps += price_tracking_java_deps -- -- # TODO(crbug/1210158): Instead of adding source files, add it as a separate -- # dependency when circular deps is resolved. -- sources += commerce_subscriptions_java_sources -- deps += commerce_subscriptions_java_deps -- - if (enable_printing) { - deps += [ "//printing:printing_java" ] - } -@@ -703,7 +686,6 @@ if (current_toolchain == default_toolchain) { - ":chrome_java", - "//chrome/android/features/keyboard_accessory:internal_java", - "//chrome/browser/android/httpclient:java", -- "//chrome/browser/commerce/merchant_viewer/android:java", - "//chrome/browser/content_creation/notes/internal/android:java", - "//chrome/browser/download/internal/android:java", - "//chrome/browser/page_annotations/android:java", -@@ -857,11 +839,6 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/bluetooth/android:junit", - "//chrome/browser/browser_controls/android:java", - "//chrome/browser/browser_controls/android:junit", -- "//chrome/browser/commerce/android:java", -- "//chrome/browser/commerce/merchant_viewer/android:junit", -- "//chrome/browser/commerce/price_tracking/android:java", -- "//chrome/browser/commerce/price_tracking/proto:proto_java", -- "//chrome/browser/commerce/subscriptions/android:subscriptions_java", - "//chrome/browser/contextmenu:java", - "//chrome/browser/creator/android:java", - "//chrome/browser/creator/android:junit", -@@ -1270,8 +1247,6 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/android/browserservices/intents:java", - "//chrome/browser/android/browserservices/verification:java", - "//chrome/browser/android/crypto:java", -- "//chrome/browser/commerce/android:java", -- "//chrome/browser/commerce/subscriptions/android:subscriptions_java", - "//chrome/browser/contextmenu:java", - "//chrome/browser/download/android:download_java_tests", - "//chrome/browser/download/android:file_provider_java", -@@ -1406,12 +1381,6 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/back_press/android:java", - "//chrome/browser/banners/android:java", - "//chrome/browser/browser_controls/android:java", -- "//chrome/browser/commerce/android:java", -- "//chrome/browser/commerce/android:javatests", -- "//chrome/browser/commerce/merchant_viewer/android:java", -- "//chrome/browser/commerce/merchant_viewer/android:javatests", -- "//chrome/browser/commerce/price_tracking/android:java", -- "//chrome/browser/commerce/subscriptions/android:subscriptions_java", - "//chrome/browser/content_creation/notes/internal/android:java", - "//chrome/browser/contextmenu:java", - "//chrome/browser/dependency_injection:java", -@@ -3637,8 +3606,6 @@ group("jni_headers") { - "//chrome/browser/android/browserservices/metrics:jni_headers", - "//chrome/browser/android/browserservices/verification:jni_headers", - "//chrome/browser/battery/android:jni_headers", -- "//chrome/browser/commerce/merchant_viewer/android:jni_headers", -- "//chrome/browser/commerce/price_tracking/android:jni_headers", - "//chrome/browser/contextmenu:jni_headers", - "//chrome/browser/download/android:jni_headers", - "//chrome/browser/enterprise/util:jni_headers", -diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni ---- a/chrome/android/chrome_java_sources.gni -+++ b/chrome/android/chrome_java_sources.gni -@@ -203,10 +203,6 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUiState.java", - "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUndoController.java", - "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java", -- "java/src/org/chromium/chrome/browser/bookmarks/PowerBookmarkMetrics.java", -- "java/src/org/chromium/chrome/browser/bookmarks/PowerBookmarkShoppingItemRow.java", -- "java/src/org/chromium/chrome/browser/bookmarks/PowerBookmarkTagChipList.java", -- "java/src/org/chromium/chrome/browser/bookmarks/PowerBookmarkUtils.java", - "java/src/org/chromium/chrome/browser/bookmarks/ReadingListSectionHeader.java", - "java/src/org/chromium/chrome/browser/bookmarks/TabBookmarker.java", - "java/src/org/chromium/chrome/browser/bookmarks/TestingDelegate.java", -@@ -929,7 +925,6 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/searchwidget/SearchType.java", - "java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java", - "java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java", -- "java/src/org/chromium/chrome/browser/segmentation_platform/PriceTrackingActionProvider.java", - "java/src/org/chromium/chrome/browser/segmentation_platform/ReaderModeActionProvider.java", - "java/src/org/chromium/chrome/browser/segmentation_platform/SignalAccumulator.java", - "java/src/org/chromium/chrome/browser/settings/MainSettings.java", -diff --git a/chrome/android/features/tab_ui/BUILD.gn b/chrome/android/features/tab_ui/BUILD.gn ---- a/chrome/android/features/tab_ui/BUILD.gn -+++ b/chrome/android/features/tab_ui/BUILD.gn -@@ -109,9 +109,6 @@ android_library("java") { - "java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardViewUtils.java", - "java/src/org/chromium/chrome/browser/tasks/tab_management/MessageService.java", - "java/src/org/chromium/chrome/browser/tasks/tab_management/MultiThumbnailCardProvider.java", -- "java/src/org/chromium/chrome/browser/tasks/tab_management/PriceCardView.java", -- "java/src/org/chromium/chrome/browser/tasks/tab_management/PriceMessageCardViewModel.java", -- "java/src/org/chromium/chrome/browser/tasks/tab_management/PriceMessageService.java", - "java/src/org/chromium/chrome/browser/tasks/tab_management/SelectableTabGridView.java", - "java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java", - "java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java", -@@ -191,7 +188,6 @@ android_library("java") { - "//chrome/browser/android/lifecycle:java", - "//chrome/browser/back_press/android:java", - "//chrome/browser/browser_controls/android:java", -- "//chrome/browser/commerce/price_tracking/android:java", - "//chrome/browser/endpoint_fetcher:java", - "//chrome/browser/feature_engagement:java", - "//chrome/browser/feed/android:java", -@@ -275,7 +271,6 @@ android_library("unit_device_javatests") { - "//chrome/android:chrome_java", - "//chrome/android/features/tab_ui:java", - "//chrome/android/features/tab_ui:tab_suggestions_java", -- "//chrome/browser/commerce/price_tracking/android:java", - "//chrome/browser/flags:java", - "//chrome/browser/optimization_guide/android:java", - "//chrome/browser/profiles/android:java", -diff --git a/chrome/android/features/tab_ui/java/res/layout/large_message_card_item.xml b/chrome/android/features/tab_ui/java/res/layout/large_message_card_item.xml ---- a/chrome/android/features/tab_ui/java/res/layout/large_message_card_item.xml -+++ b/chrome/android/features/tab_ui/java/res/layout/large_message_card_item.xml -@@ -22,15 +22,6 @@ found in the LICENSE file. - android:layout_height="match_parent" - android:layout_marginBottom="16dp" - android:orientation="vertical"> -- - -- - getShownMessageItemsForTesting() { - return mShownMessageItems; - } --} -\ No newline at end of file -+} -diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java ---- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java -+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java -@@ -95,7 +95,7 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon - tabId, thumbnailSize, callback, forceUpdate, writeBack); - }, - null, false, gridCardOnClickListenerProvider, -- mMediator.getTabGridDialogHandler(), TabProperties.UiType.CLOSABLE, null, null, -+ mMediator.getTabGridDialogHandler(), TabProperties.UiType.CLOSABLE, null, - containerView, false, mComponentName, rootView, null, mMediator); - TabListRecyclerView recyclerView = mTabListCoordinator.getContainerView(); - -diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java ---- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java -+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java -@@ -200,20 +200,6 @@ class TabGridViewBinder { - model.get(TabProperties.IS_SELECTED)); - } else if (TabProperties.ACCESSIBILITY_DELEGATE == propertyKey) { - view.setAccessibilityDelegate(model.get(TabProperties.ACCESSIBILITY_DELEGATE)); -- } else if (TabProperties.SHOPPING_PERSISTED_TAB_DATA_FETCHER == propertyKey) { -- fetchPriceDrop(model, (priceDrop) -> { -- PriceCardView priceCardView = -- (PriceCardView) view.fastFindViewById(R.id.price_info_box_outer); -- if (priceDrop == null) { -- priceCardView.setVisibility(View.GONE); -- return; -- } -- priceCardView.setPriceStrings(priceDrop.price, priceDrop.previousPrice); -- priceCardView.setVisibility(View.VISIBLE); -- priceCardView.setContentDescription( -- view.getResources().getString(R.string.accessibility_tab_price_card, -- priceDrop.previousPrice, priceDrop.price)); -- }, true); - } else if (TabProperties.COUPON_PERSISTED_TAB_DATA_FETCHER == propertyKey) { - CouponCardView couponCardView = - (CouponCardView) view.fastFindViewById(R.id.coupon_info_box_outer); -@@ -241,13 +227,6 @@ class TabGridViewBinder { - }); - }, false); - } else if (TabProperties.SHOULD_SHOW_PRICE_DROP_TOOLTIP == propertyKey) { -- if (model.get(TabProperties.SHOULD_SHOW_PRICE_DROP_TOOLTIP)) { -- PriceCardView priceCardView = -- (PriceCardView) view.fastFindViewById(R.id.price_info_box_outer); -- assert priceCardView.getVisibility() == View.VISIBLE; -- LargeMessageCardView.showPriceDropTooltip( -- priceCardView.findViewById(R.id.current_price)); -- } - } else if (TabProperties.IS_SELECTED == propertyKey) { - view.setSelected(model.get(TabProperties.IS_SELECTED)); - updateColorForActionButton(view, model.get(TabProperties.IS_INCOGNITO), -@@ -292,21 +271,6 @@ class TabGridViewBinder { - - private static void fetchPriceDrop(PropertyModel model, - Callback callback, boolean shouldLog) { -- if (model.get(TabProperties.SHOPPING_PERSISTED_TAB_DATA_FETCHER) == null) { -- callback.onResult(null); -- return; -- } -- model.get(TabProperties.SHOPPING_PERSISTED_TAB_DATA_FETCHER) -- .fetch((shoppingPersistedTabData) -> { -- if (shoppingPersistedTabData == null) { -- callback.onResult(null); -- return; -- } -- if (shouldLog) { -- shoppingPersistedTabData.logPriceDropMetrics(SHOPPING_METRICS_IDENTIFIER); -- } -- callback.onResult(shoppingPersistedTabData.getPriceDrop()); -- }); - } - - private static void updateThumbnail(ViewLookupCachingFrameLayout view, PropertyModel model) { -diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java ---- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java -+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java -@@ -153,7 +153,7 @@ public class TabGroupUiCoordinator implements TabGroupUiMediator.ResetHandler, T - - mTabStripCoordinator = new TabListCoordinator(TabListCoordinator.TabListMode.STRIP, - mContext, mTabModelSelector, null, null, false, null, null, -- TabProperties.UiType.STRIP, null, null, mTabListContainerView, true, -+ TabProperties.UiType.STRIP, null, mTabListContainerView, true, - COMPONENT_NAME, mRootView, onModelTokenChange, null); - mTabStripCoordinator.initWithNative(mDynamicResourceLoaderSupplier.get()); - -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 -@@ -58,7 +58,7 @@ import java.util.List; - * Coordinator for showing UI for a list of tabs. Can be used in GRID or STRIP modes. - */ - public class TabListCoordinator -- implements PriceMessageService.PriceWelcomeMessageProvider, DestroyObserver { -+ implements DestroyObserver { - /** - * Modes of showing the list of tabs. - * -@@ -116,7 +116,6 @@ public class TabListCoordinator - * @param itemType The item type to put in the list of tabs. - * @param selectionDelegateProvider Provider to provide selected Tabs for a selectable tab list. - * It's NULL when selection is not possible. -- * @param priceWelcomeMessageController A controller to show PriceWelcomeMessage. - * @param parentView {@link ViewGroup} The root view of the UI. - * @param attachToParent Whether the UI should attach to root view. - * @param componentName A unique string uses to identify different components for UMA recording. -@@ -133,8 +132,6 @@ public class TabListCoordinator - .GridCardOnClickListenerProvider gridCardOnClickListenerProvider, - @Nullable TabListMediator.TabGridDialogHandler dialogHandler, @UiType int itemType, - @Nullable TabListMediator.SelectionDelegateProvider selectionDelegateProvider, -- @Nullable TabSwitcherMediator -- .PriceWelcomeMessageController priceWelcomeMessageController, - @NonNull ViewGroup parentView, boolean attachToParent, String componentName, - @NonNull ViewGroup rootView, @Nullable Callback onModelTokenChange, - @Nullable TabGridItemTouchHelperCallback -@@ -226,7 +223,7 @@ public class TabListCoordinator - mMediator = new TabListMediator(context, mModel, mMode, tabModelSelector, thumbnailProvider, - titleProvider, tabListFaviconProvider, actionOnRelatedTabs, - selectionDelegateProvider, gridCardOnClickListenerProvider, dialogHandler, -- priceWelcomeMessageController, componentName, itemType, -+ componentName, itemType, - onLongPressTabItemEventListener); - - try (TraceEvent e = TraceEvent.scoped("TabListCoordinator.setupRecyclerView")) { -@@ -431,13 +428,6 @@ public class TabListCoordinator - return tabListRect.top; - } - -- /** -- * @see TabListMediator#getPriceWelcomeMessageInsertionIndex(). -- */ -- int getPriceWelcomeMessageInsertionIndex() { -- return mMediator.getPriceWelcomeMessageInsertionIndex(); -- } -- - /** - * @return The container {@link androidx.recyclerview.widget.RecyclerView} that is showing the - * tab list UI. -@@ -594,17 +584,6 @@ public class TabListCoordinator - mMediator.removeSpecialItemFromModel(uiType, itemIdentifier); - } - -- // PriceWelcomeMessageService.PriceWelcomeMessageProvider implementation. -- @Override -- public int getTabIndexFromTabId(int tabId) { -- return mModel.indexFromId(tabId); -- } -- -- @Override -- public void showPriceDropTooltip(int index) { -- mModel.get(index).model.set(TabProperties.SHOULD_SHOW_PRICE_DROP_TOOLTIP, true); -- } -- - void runAnimationOnNextLayout(Runnable runnable) { - mRecyclerView.runAnimationOnNextLayout(runnable); - } -diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java ---- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java -+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java -@@ -44,8 +44,6 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; - import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; - import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; - import org.chromium.chrome.browser.preferences.SharedPreferencesManager; --import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures; --import org.chromium.chrome.browser.price_tracking.PriceTrackingUtilities; - import org.chromium.chrome.browser.tab.EmptyTabObserver; - import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.tab.TabCreationState; -@@ -66,12 +64,10 @@ import org.chromium.chrome.browser.tasks.tab_groups.EmptyTabGroupModelFilterObse - import org.chromium.chrome.browser.tasks.tab_groups.TabGroupModelFilter; - import org.chromium.chrome.browser.tasks.tab_groups.TabGroupTitleUtils; - import org.chromium.chrome.browser.tasks.tab_groups.TabGroupUtils; --import org.chromium.chrome.browser.tasks.tab_management.PriceMessageService.PriceTabData; - import org.chromium.chrome.browser.tasks.tab_management.TabListCoordinator.TabListMode; - import org.chromium.chrome.browser.tasks.tab_management.TabListFaviconProvider.TabFavicon; - import org.chromium.chrome.browser.tasks.tab_management.TabListFaviconProvider.TabFaviconFetcher; - import org.chromium.chrome.browser.tasks.tab_management.TabProperties.UiType; --import org.chromium.chrome.browser.tasks.tab_management.TabSwitcherMediator.PriceWelcomeMessageController; - import org.chromium.chrome.browser.tasks.tab_management.TabUiMetricsHelper.TabSelectionEditorActionMetricGroups; - import org.chromium.chrome.tab_ui.R; - import org.chromium.components.browser_ui.styles.SemanticColorUtils; -@@ -178,51 +174,6 @@ class TabListMediator { - boolean isReorderAction(int action); - } - -- /** -- * Provides capability to asynchronously acquire {@link ShoppingPersistedTabData} -- */ -- static class ShoppingPersistedTabDataFetcher { -- protected Tab mTab; -- protected PriceWelcomeMessageController mPriceWelcomeMessageController; -- -- /** -- * @param tab {@link Tab} {@link ShoppingPersistedTabData} will be acquired for. -- * @param priceWelcomeMessageController to show the price welcome message. -- */ -- ShoppingPersistedTabDataFetcher( -- Tab tab, @Nullable PriceWelcomeMessageController priceWelcomeMessageController) { -- mTab = tab; -- mPriceWelcomeMessageController = priceWelcomeMessageController; -- } -- -- /** -- * Asynchronously acquire {@link ShoppingPersistedTabData} -- * @param callback {@link Callback} to pass {@link ShoppingPersistedTabData} back in -- */ -- public void fetch(Callback callback) { -- ShoppingPersistedTabData.from(mTab, (res) -> { -- callback.onResult(res); -- maybeShowPriceWelcomeMessage(res); -- }); -- } -- -- @VisibleForTesting -- void maybeShowPriceWelcomeMessage( -- @Nullable ShoppingPersistedTabData shoppingPersistedTabData) { -- // Avoid inserting message while RecyclerView is computing a layout. -- new Handler().post(() -> { -- if (!PriceTrackingUtilities.isPriceWelcomeMessageCardEnabled() -- || (mPriceWelcomeMessageController == null) -- || (shoppingPersistedTabData == null) -- || (shoppingPersistedTabData.getPriceDrop() == null)) { -- return; -- } -- mPriceWelcomeMessageController.showPriceWelcomeMessage( -- new PriceTabData(mTab.getId(), shoppingPersistedTabData.getPriceDrop())); -- }); -- } -- } -- - /** - * Asynchronously acquire {@link CouponPersistedTabData} - */ -@@ -348,7 +299,6 @@ class TabListMediator { - private final GridCardOnClickListenerProvider mGridCardOnClickListenerProvider; - private final TabGridDialogHandler mTabGridDialogHandler; - private final TabListFaviconProvider mTabListFaviconProvider; -- private final PriceWelcomeMessageController mPriceWelcomeMessageController; - - private String mComponentName; - private ThumbnailProvider mThumbnailProvider; -@@ -547,7 +497,6 @@ class TabListMediator { - * @param gridCardOnClickListenerProvider Provides the onClickListener for opening dialog when - * click on a grid card. - * @param dialogHandler A handler to handle requests about updating TabGridDialog. -- * @param priceWelcomeMessageController A controller to show PriceWelcomeMessage. - * @param componentName This is a unique string to identify different components. - * @param uiType The type of UI this mediator should be building. - */ -@@ -558,7 +507,6 @@ class TabListMediator { - @Nullable SelectionDelegateProvider selectionDelegateProvider, - @Nullable GridCardOnClickListenerProvider gridCardOnClickListenerProvider, - @Nullable TabGridDialogHandler dialogHandler, -- @Nullable PriceWelcomeMessageController priceWelcomeMessageController, - String componentName, @UiType int uiType, - @Nullable TabGridItemTouchHelperCallback - .OnLongPressTabItemEventListener onLongPressTabItemEventListener) { -@@ -575,7 +523,6 @@ class TabListMediator { - mTabGridDialogHandler = dialogHandler; - mActionsOnAllRelatedTabs = actionOnRelatedTabs; - mUiType = uiType; -- mPriceWelcomeMessageController = priceWelcomeMessageController; - - mTabModelObserver = new TabModelObserver() { - @Override -@@ -758,35 +705,6 @@ class TabListMediator { - mTabGridItemTouchHelperCallback = new TabGridItemTouchHelperCallback(context, mModel, - mTabModelSelector, mTabClosedListener, mTabGridDialogHandler, mComponentName, - mActionsOnAllRelatedTabs, mMode, onLongPressTabItemEventListener); -- -- // Right now we need to update layout only if there is a price welcome message card in tab -- // switcher. -- if (mMode == TabListMode.GRID && mUiType != UiType.SELECTABLE -- && PriceTrackingFeatures.isPriceTrackingEnabled()) { -- mListObserver = new ListObserver() { -- @Override -- public void onItemRangeInserted(ListObservable source, int index, int count) { -- updateLayout(); -- } -- -- @Override -- public void onItemRangeRemoved(ListObservable source, int index, int count) { -- updateLayout(); -- } -- -- @Override -- public void onItemRangeChanged( -- ListObservable source, int index, int count, @Nullable Void payload) { -- updateLayout(); -- } -- -- @Override -- public void onItemMoved(ListObservable source, int curIndex, int newIndex) { -- updateLayout(); -- } -- }; -- mModel.addObserver(mListObserver); -- } - } - - private void selectTab(int oldIndex, int newIndex) { -@@ -1230,9 +1148,6 @@ class TabListMediator { - Collections.sort(tabsList, LAST_SHOWN_COMPARATOR); - } - mVisible = tabsList != null; -- if (tabs != null) { -- recordPriceAnnotationsEnabledMetrics(); -- } - if (areTabsUnchanged(tabsList)) { - if (tabsList == null) return true; - for (int i = 0; i < tabsList.size(); i++) { -@@ -1304,11 +1219,6 @@ class TabListMediator { - - void hardCleanup() { - assert !mVisible; -- if (PriceTrackingUtilities.isTrackPricesOnTabsEnabled() -- && (PriceTrackingFeatures.isPriceDropIphEnabled() -- || PriceTrackingFeatures.isPriceDropBadgeEnabled())) { -- saveSeenPriceDrops(); -- } - sViewedTabIds.clear(); - } - -@@ -1460,25 +1370,6 @@ class TabListMediator { - * @param recyclerView the {@link TabListRecyclerView} to add the listener too. - */ - void registerOnScrolledListener(RecyclerView recyclerView) { -- if (PriceTrackingUtilities.isTrackPricesOnTabsEnabled() -- && (PriceTrackingFeatures.isPriceDropIphEnabled() -- || PriceTrackingFeatures.isPriceDropBadgeEnabled())) { -- mRecyclerView = recyclerView; -- mOnScrollListener = new OnScrollListener() { -- @Override -- public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { -- if (!mTabModelSelector.isIncognitoSelected()) { -- for (int i = 0; i < mRecyclerView.getChildCount(); i++) { -- if (mRecyclerView.getLayoutManager().isViewPartiallyVisible( -- mRecyclerView.getChildAt(i), false, true)) { -- addViewedTabId(i); -- } -- } -- } -- } -- }; -- mRecyclerView.addOnScrollListener(mOnScrollListener); -- } - } - - private void unregisterOnScrolledListener() { -@@ -1834,26 +1725,6 @@ class TabListMediator { - } - - private void setupPersistedTabDataFetcherForTab(PseudoTab pseudoTab, int index) { -- if (mMode == TabListMode.GRID && pseudoTab.hasRealTab() && !pseudoTab.isIncognito()) { -- if (PriceTrackingUtilities.isTrackPricesOnTabsEnabled() -- && isUngroupedTab(pseudoTab.getId())) { -- mModel.get(index).model.set(TabProperties.SHOPPING_PERSISTED_TAB_DATA_FETCHER, -- new ShoppingPersistedTabDataFetcher( -- pseudoTab.getTab(), mPriceWelcomeMessageController)); -- } else { -- mModel.get(index).model.set( -- TabProperties.SHOPPING_PERSISTED_TAB_DATA_FETCHER, null); -- } -- if (CouponUtilities.isCouponsOnTabsEnabled() && isUngroupedTab(pseudoTab.getId())) { -- mModel.get(index).model.set(TabProperties.COUPON_PERSISTED_TAB_DATA_FETCHER, -- new CouponPersistedTabDataFetcher(pseudoTab.getTab())); -- } else { -- mModel.get(index).model.set(TabProperties.COUPON_PERSISTED_TAB_DATA_FETCHER, null); -- } -- } else { -- mModel.get(index).model.set(TabProperties.COUPON_PERSISTED_TAB_DATA_FETCHER, null); -- mModel.get(index).model.set(TabProperties.SHOPPING_PERSISTED_TAB_DATA_FETCHER, null); -- } - } - - @VisibleForTesting -@@ -1975,23 +1846,6 @@ class TabListMediator { - return false; - } - -- /** -- * The PriceWelcomeMessage should be in view when user enters the tab switcher, so we put it -- * exactly below the currently selected tab. -- * -- * @return Where the PriceWelcomeMessage should be inserted in the {@link TabListModel} when -- * user enters the tab switcher. -- */ -- int getPriceWelcomeMessageInsertionIndex() { -- assert mGridLayoutManager != null; -- int spanCount = mGridLayoutManager.getSpanCount(); -- int selectedTabIndex = mModel.indexOfNthTabCard( -- mTabModelSelector.getTabModelFilterProvider().getCurrentTabModelFilter().index()); -- int indexBelowSelectedTab = (selectedTabIndex / spanCount + 1) * spanCount; -- int indexAfterLastTab = mModel.getTabIndexBefore(mModel.size()) + 1; -- return Math.min(indexBelowSelectedTab, indexAfterLastTab); -- } -- - /** - * Update the layout of tab switcher to make it compact. Because now we have messages within the - * tabs like PriceMessage and these messages take up the entire row, some operations like -@@ -2002,7 +1856,7 @@ class TabListMediator { - void updateLayout() { - // Right now we need to update layout only if there is a price welcome message card in tab - // switcher. -- if (!PriceTrackingUtilities.isPriceWelcomeMessageCardEnabled()) return; -+ if ((true)) return; - assert mGridLayoutManager != null; - int spanCount = mGridLayoutManager.getSpanCount(); - GridLayoutManager.SpanSizeLookup spanSizeLookup = mGridLayoutManager.getSpanSizeLookup(); -@@ -2039,27 +1893,6 @@ class TabListMediator { - return TabSwitcherCoordinator.isShowingTabsInMRUOrder(mMode); - } - -- @VisibleForTesting -- void recordPriceAnnotationsEnabledMetrics() { -- if (mMode != TabListMode.GRID || !mActionsOnAllRelatedTabs -- || !PriceTrackingFeatures.isPriceTrackingEligible()) { -- return; -- } -- SharedPreferencesManager preferencesManager = SharedPreferencesManager.getInstance(); -- if (System.currentTimeMillis() -- - preferencesManager.readLong( -- ChromePreferenceKeys -- .PRICE_TRACKING_ANNOTATIONS_ENABLED_METRICS_TIMESTAMP, -- -1) -- >= PriceTrackingFeatures.getAnnotationsEnabledMetricsWindowDurationMilliSeconds()) { -- RecordHistogram.recordBooleanHistogram("Commerce.PriceDrop.AnnotationsEnabled", -- PriceTrackingUtilities.isTrackPricesOnTabsEnabled()); -- preferencesManager.writeLong( -- ChromePreferenceKeys.PRICE_TRACKING_ANNOTATIONS_ENABLED_METRICS_TIMESTAMP, -- System.currentTimeMillis()); -- } -- } -- - /** - * @param tab the {@link Tab} to find the group index of. - * @return the index for the tab group within {@link mModel} -diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java ---- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java -+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java -@@ -117,9 +117,6 @@ public class TabProperties { - .WritableObjectPropertyKey ACCESSIBILITY_DELEGATE = - new PropertyModel.WritableObjectPropertyKey<>(); - -- public static final WritableObjectPropertyKey -- SHOPPING_PERSISTED_TAB_DATA_FETCHER = new WritableObjectPropertyKey<>(true); -- - public static final WritableObjectPropertyKey - COUPON_PERSISTED_TAB_DATA_FETCHER = new WritableObjectPropertyKey<>(true); - -@@ -140,7 +137,7 @@ public class TabProperties { - SELECTABLE_TAB_ACTION_BUTTON_BACKGROUND, - SELECTABLE_TAB_ACTION_BUTTON_SELECTED_BACKGROUND, URL_DOMAIN, ACCESSIBILITY_DELEGATE, - CARD_TYPE, CONTENT_DESCRIPTION_STRING, CLOSE_BUTTON_DESCRIPTION_STRING, -- SHOPPING_PERSISTED_TAB_DATA_FETCHER, COUPON_PERSISTED_TAB_DATA_FETCHER, -+ COUPON_PERSISTED_TAB_DATA_FETCHER, - SHOULD_SHOW_PRICE_DROP_TOOLTIP}; - - public static final PropertyKey[] ALL_KEYS_TAB_STRIP = new PropertyKey[] {TAB_ID, -diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorCoordinator.java ---- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorCoordinator.java -+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorCoordinator.java -@@ -197,7 +197,7 @@ class TabSelectionEditorCoordinator { - // its TabListCoordinator to work with the editor as an optimization. - mTabListCoordinator = new TabListCoordinator(mode, activity, mTabModelSelector, - thumbnailProvider, titleProvider, displayGroups, null, null, -- TabProperties.UiType.SELECTABLE, this::getSelectionDelegate, null, -+ TabProperties.UiType.SELECTABLE, this::getSelectionDelegate, - mTabSelectionEditorLayout, false, COMPONENT_NAME, rootView, null, null); - - // Note: The TabSelectionEditorCoordinator is always created after native is -diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java ---- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java -+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java -@@ -36,10 +36,6 @@ import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; - import org.chromium.chrome.browser.lifecycle.DestroyObserver; - import org.chromium.chrome.browser.multiwindow.MultiWindowModeStateDispatcher; - import org.chromium.chrome.browser.preferences.SharedPreferencesManager; --import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManager; --import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory; --import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures; --import org.chromium.chrome.browser.price_tracking.PriceTrackingUtilities; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.tabmodel.TabCreatorManager; -@@ -47,7 +43,6 @@ import org.chromium.chrome.browser.tabmodel.TabList; - import org.chromium.chrome.browser.tabmodel.TabModelSelector; - import org.chromium.chrome.browser.tasks.pseudotab.PseudoTab; - import org.chromium.chrome.browser.tasks.pseudotab.TabAttributeCache; --import org.chromium.chrome.browser.tasks.tab_management.PriceMessageService.PriceMessageType; - import org.chromium.chrome.browser.tasks.tab_management.TabListCoordinator.TabListMode; - import org.chromium.chrome.browser.tasks.tab_management.TabSelectionEditorAction.ButtonType; - import org.chromium.chrome.browser.tasks.tab_management.TabSelectionEditorAction.IconPosition; -@@ -79,7 +74,6 @@ import java.util.List; - public class TabSwitcherCoordinator - implements DestroyObserver, TabSwitcher, TabSwitcher.TabListDelegate, - TabSwitcherMediator.ResetHandler, TabSwitcherMediator.MessageItemsController, -- TabSwitcherMediator.PriceWelcomeMessageController, - TabGridItemTouchHelperCallback.OnLongPressTabItemEventListener { - /** - * Interface to control the IPH dialog. -@@ -143,8 +137,6 @@ public class TabSwitcherCoordinator - private ViewGroup mContainer; - private TabCreatorManager mTabCreatorManager; - private boolean mIsInitialized; -- private PriceMessageService mPriceMessageService; -- private SharedPreferencesManager.Observer mPriceAnnotationsPrefObserver; - private final ViewGroup mCoordinatorView; - private final ViewGroup mRootView; - private TabContentManager mTabContentManager; -@@ -251,7 +243,7 @@ public class TabSwitcherCoordinator - mTabGridDialogCoordinator = null; - } - mMediator = new TabSwitcherMediator(activity, this, containerViewModel, -- tabModelSelector, browserControls, container, tabContentManager, this, this, -+ tabModelSelector, browserControls, container, tabContentManager, this, - multiWindowModeStateDispatcher, mode, incognitoReauthControllerSupplier, - backPressManager, dialogControllerSupplier); - -@@ -271,7 +263,7 @@ public class TabSwitcherCoordinator - long startTimeMs = SystemClock.uptimeMillis(); - mTabListCoordinator = new TabListCoordinator(mode, activity, tabModelSelector, - mMultiThumbnailCardProvider, titleProvider, true, mMediator, null, -- TabProperties.UiType.CLOSABLE, null, this, container, true, COMPONENT_NAME, -+ TabProperties.UiType.CLOSABLE, null, container, true, COMPONENT_NAME, - mRootView, null, this); - mContainerViewChangeProcessor = PropertyModelChangeProcessor.create(containerViewModel, - mTabListCoordinator.getContainerView(), TabListContainerViewBinder::bind); -@@ -339,21 +331,6 @@ public class TabSwitcherCoordinator - new LayoutViewBuilder(R.layout.large_message_card_item), - LargeMessageCardViewBinder::bind); - } -- -- if (PriceTrackingFeatures.isPriceTrackingEnabled() -- && PriceTrackingFeatures.getPriceTrackingEnabled()) { -- mPriceAnnotationsPrefObserver = key -> { -- if (PriceTrackingUtilities.TRACK_PRICES_ON_TABS.equals(key) -- && !mTabModelSelector.isIncognitoSelected() -- && mTabModelSelector.isTabStateInitialized()) { -- resetWithTabList(mTabModelSelector.getTabModelFilterProvider() -- .getCurrentTabModelFilter(), -- false, isShowingTabsInMRUOrder(mMode)); -- } -- }; -- SharedPreferencesManager.getInstance().addObserver( -- mPriceAnnotationsPrefObserver); -- } - } - - if (mode == TabListCoordinator.TabListMode.GRID -@@ -505,8 +482,6 @@ public class TabSwitcherCoordinator - - mMultiThumbnailCardProvider.initWithNative(); - mMediator.initWithNative(controller, mSnackbarManager); -- // TODO(crbug.com/1222762): Only call setUpPriceTracking in GRID TabSwitcher. -- setUpPriceTracking(mActivity, mModalDialogManager); - - mIsInitialized = true; - } -@@ -584,19 +559,6 @@ public class TabSwitcherCoordinator - TabSelectionEditorOpenMetricGroups.OPEN_FROM_GRID, mActivity); - } - -- private void setUpPriceTracking(Context context, ModalDialogManager modalDialogManager) { -- if (PriceTrackingFeatures.isPriceTrackingEnabled()) { -- PriceDropNotificationManager notificationManager = -- PriceDropNotificationManagerFactory.create(); -- if (mMode == TabListCoordinator.TabListMode.GRID) { -- mPriceMessageService = new PriceMessageService( -- mTabListCoordinator, mMediator, notificationManager); -- mMessageCardProviderCoordinator.subscribeMessageService(mPriceMessageService); -- mMediator.setPriceMessageService(mPriceMessageService); -- } -- } -- } -- - // TabSwitcher implementation. - @Override - public void setOnTabSelectingListener(OnTabSelectingListener listener) { -@@ -737,22 +699,10 @@ public class TabSwitcherCoordinator - @Override - public boolean resetWithTabs( - @Nullable List tabs, boolean quickMode, boolean mruMode) { -- // Invalidate price welcome message for every reset so that the stale message won't be -- // restored by mistake (e.g. from tabClosureUndone in TabSwitcherMediator). -- if (mPriceMessageService != null) { -- mPriceMessageService.invalidateMessage(); -- } - boolean showQuickly = mTabListCoordinator.resetWithListOfTabs(tabs, quickMode, mruMode); - if (showQuickly) { - removeAllAppendedMessage(); - } -- if (tabs != null && tabs.size() > 0) { -- if (mPriceMessageService != null -- && PriceTrackingUtilities.isPriceAlertsMessageCardEnabled()) { -- mPriceMessageService.preparePriceMessage(PriceMessageType.PRICE_ALERTS, null); -- } -- appendMessagesTo(tabs.size()); -- } - - return showQuickly; - } -@@ -789,38 +739,6 @@ public class TabSwitcherCoordinator - sAppendedMessagesForTesting = messages.size() > 0; - } - -- // PriceWelcomeMessageController implementation. -- @Override -- public void removePriceWelcomeMessage() { -- mTabListCoordinator.removeSpecialListItem( -- TabProperties.UiType.LARGE_MESSAGE, MessageService.MessageType.PRICE_MESSAGE); -- } -- -- @Override -- public void restorePriceWelcomeMessage() { -- appendNextMessage(MessageService.MessageType.PRICE_MESSAGE); -- } -- -- @Override -- public void showPriceWelcomeMessage(PriceMessageService.PriceTabData priceTabData) { -- if (mPriceMessageService == null -- || !PriceTrackingUtilities.isPriceWelcomeMessageCardEnabled() -- || mMessageCardProviderCoordinator.isMessageShown( -- MessageService.MessageType.PRICE_MESSAGE, PriceMessageType.PRICE_WELCOME)) { -- return; -- } -- if (mPriceMessageService.preparePriceMessage( -- PriceMessageType.PRICE_WELCOME, priceTabData)) { -- appendNextMessage(MessageService.MessageType.PRICE_MESSAGE); -- // To make the message card in view when user enters tab switcher, we should scroll to -- // current tab with 0 offset. See {@link -- // TabSwitcherMediator#setInitialScrollIndexOffset} for more details. -- mMediator.scrollToTab(mTabModelSelector.getTabModelFilterProvider() -- .getCurrentTabModelFilter() -- .index()); -- } -- } -- - // OnLongPressTabItemEventListener implementation - @Override - public void onLongPressEvent(int tabId) { -@@ -857,9 +775,6 @@ public class TabSwitcherCoordinator - mMessageCardProviderCoordinator.getNextMessageItemForType(messageType); - if (nextMessage == null || !shouldAppendMessage(nextMessage.model)) return; - if (messageType == MessageService.MessageType.PRICE_MESSAGE) { -- mTabListCoordinator.addSpecialListItem( -- mTabListCoordinator.getPriceWelcomeMessageInsertionIndex(), -- TabProperties.UiType.LARGE_MESSAGE, nextMessage.model); - } else { - mTabListCoordinator.addSpecialListItemToEnd( - TabProperties.UiType.MESSAGE, nextMessage.model); -@@ -909,8 +824,7 @@ public class TabSwitcherCoordinator - } - - private boolean shouldRegisterLargeMessageItemType() { -- return PriceTrackingFeatures.isPriceTrackingEnabled() -- || IncognitoReauthManager.isIncognitoReauthFeatureAvailable(); -+ return IncognitoReauthManager.isIncognitoReauthFeatureAvailable(); - } - - @Override -@@ -948,9 +862,6 @@ public class TabSwitcherCoordinator - if (mTabAttributeCache != null) { - mTabAttributeCache.destroy(); - } -- if (mPriceAnnotationsPrefObserver != null) { -- SharedPreferencesManager.getInstance().removeObserver(mPriceAnnotationsPrefObserver); -- } - } - - /** -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 -@@ -45,7 +45,6 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.incognito.reauth.IncognitoReauthController; - import org.chromium.chrome.browser.incognito.reauth.IncognitoReauthManager; - import org.chromium.chrome.browser.multiwindow.MultiWindowModeStateDispatcher; --import org.chromium.chrome.browser.price_tracking.PriceTrackingUtilities; - import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.tab.TabCreationState; - import org.chromium.chrome.browser.tab.TabSelectionType; -@@ -78,7 +77,6 @@ import java.util.List; - */ - class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView.VisibilityListener, - TabListMediator.GridCardOnClickListenerProvider, -- PriceMessageService.PriceWelcomeMessageReviewActionProvider, - TabSwitcherCustomViewManager.Delegate, BackPressHandler { - private static final String TAG = "TabSwitcherMediator"; - -@@ -148,7 +146,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView - private TabSelectionEditorCoordinator - .TabSelectionEditorController mTabSelectionEditorController; - private TabSwitcher.OnTabSelectingListener mOnTabSelectingListener; -- private PriceMessageService mPriceMessageService; - - /** - * This allows to check if re-auth is pending when tab switcher is shown in Incognito mode. -@@ -237,29 +234,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView - void restoreAllAppendedMessage(); - } - -- /** -- * An interface to control price welcome message in grid tab switcher. -- */ -- interface PriceWelcomeMessageController { -- /** -- * Remove the price welcome message item in the model list. Right now this is used when -- * its binding tab is closed in the grid tab switcher. -- */ -- void removePriceWelcomeMessage(); -- -- /** -- * Restore the price welcome message item that should show. Right now this is only used -- * when the closure of the binding tab in tab switcher is undone. -- */ -- void restorePriceWelcomeMessage(); -- -- /** -- * Show the price welcome message in tab switcher. This is used when any open tab in tab -- * switcher has a price drop. -- */ -- void showPriceWelcomeMessage(PriceMessageService.PriceTabData priceTabData); -- } -- - /** - * Basic constructor for the Mediator. - * @param context The context to use for accessing {@link android.content.res.Resources}. -@@ -283,7 +257,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView - PropertyModel containerViewModel, TabModelSelector tabModelSelector, - BrowserControlsStateProvider browserControlsStateProvider, ViewGroup containerView, - TabContentManager tabContentManager, MessageItemsController messageItemsController, -- PriceWelcomeMessageController priceWelcomeMessageController, - MultiWindowModeStateDispatcher multiWindowModeStateDispatcher, @TabListMode int mode, - @Nullable OneshotSupplier incognitoReauthControllerSupplier, - @Nullable BackPressManager backPressManager, -@@ -388,9 +361,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView - public void willCloseTab(Tab tab, boolean animate, boolean didCloseAlone) { - if (mTabModelSelector.getCurrentModel().getCount() == 1) { - messageItemsController.removeAllAppendedMessage(); -- } else if (mPriceMessageService != null -- && mPriceMessageService.getBindingTabId() == tab.getId()) { -- priceWelcomeMessageController.removePriceWelcomeMessage(); - } - } - -@@ -399,10 +369,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView - if (mTabModelSelector.getCurrentModel().getCount() == 1) { - messageItemsController.restoreAllAppendedMessage(); - } -- if (mPriceMessageService != null -- && mPriceMessageService.getBindingTabId() == tab.getId()) { -- priceWelcomeMessageController.restorePriceWelcomeMessage(); -- } - notifyBackPressStateChangedInternal(); - } - -@@ -430,12 +396,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView - - @Override - public void tabClosureCommitted(Tab tab) { -- // TODO(crbug.com/1157578): Auto update the PriceMessageService instead of -- // updating it based on the client caller. -- if (mPriceMessageService != null -- && mPriceMessageService.getBindingTabId() == tab.getId()) { -- mPriceMessageService.invalidateMessage(); -- } - } - }; - -@@ -695,14 +655,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView - "MobileTabSwitched." + TabSwitcherCoordinator.COMPONENT_NAME); - } - } -- if (mMode == TabListCoordinator.TabListMode.GRID -- && PriceTrackingUtilities.isTabModelPriceTrackingEligible( -- mTabModelSelector.getCurrentModel()) -- && PriceTrackingUtilities.isTrackPricesOnTabsEnabled()) { -- RecordUserAction.record("Commerce.TabGridSwitched." -- + (ShoppingPersistedTabData.hasPriceDrop(tab) ? "HasPriceDrop" -- : "NoPriceDrop")); -- } - } - - @Override -@@ -1073,10 +1025,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView - mOnTabSelectingListener = listener; - } - -- void setPriceMessageService(PriceMessageService priceMessageService) { -- mPriceMessageService = priceMessageService; -- } -- - // GridCardOnClickListenerProvider implementation. - @Override - @Nullable -@@ -1110,11 +1058,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView - } - } - -- @Override -- public void scrollToTab(int tabIndex) { -- mContainerViewModel.set(TabListContainerProperties.INITIAL_SCROLL_INDEX, tabIndex); -- } -- - private boolean ableToOpenDialog(Tab tab) { - return TabUiFeatureUtilities.isTabGroupsAndroidEnabled(mContext) - && mTabModelSelector.isIncognitoSelected() == tab.isIncognito() -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 -@@ -82,7 +82,6 @@ import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton; - import org.chromium.chrome.browser.app.tabmodel.TabModelOrchestrator; - import org.chromium.chrome.browser.back_press.BackPressManager; - import org.chromium.chrome.browser.bookmarks.BookmarkModel; --import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils; - import org.chromium.chrome.browser.bookmarks.TabBookmarker; - import org.chromium.chrome.browser.compositor.CompositorViewHolder; - import org.chromium.chrome.browser.compositor.layouts.Layout; -@@ -2334,18 +2333,11 @@ public abstract class ChromeActivity - } - - if (id == R.id.enable_price_tracking_menu_id) { -- mTabBookmarkerSupplier.get().startOrModifyPriceTracking(currentTab); - RecordUserAction.record("MobileMenuEnablePriceTracking"); -- TrackerFactory.getTrackerForProfile(Profile.getLastUsedRegularProfile()) -- .notifyEvent(EventConstants.SHOPPING_LIST_PRICE_TRACK_FROM_MENU); - return true; - } - - if (id == R.id.disable_price_tracking_menu_id) { -- PowerBookmarkUtils.setPriceTrackingEnabledWithSnackbars(mBookmarkModelSupplier.get(), -- mBookmarkModelSupplier.get().getUserBookmarkIdForTab(currentTab), -- /*enabled=*/false, mSnackbarManager, getResources(), (success) -> {}); -- RecordUserAction.record("MobileMenuDisablePriceTracking"); - return true; - } - -@@ -2369,7 +2361,7 @@ public abstract class ChromeActivity - if (id == R.id.info_menu_id) { - ChromePageInfo pageInfo = - new ChromePageInfo(getModalDialogManagerSupplier(), null, OpenedFromSource.MENU, -- mRootUiCoordinator.getMerchantTrustSignalsCoordinatorSupplier()::get, -+ /*mRootUiCoordinator.getMerchantTrustSignalsCoordinatorSupplier()::get*/ null, - mRootUiCoordinator.getEphemeralTabCoordinatorSupplier()); - pageInfo.show(currentTab, ChromePageInfoHighlight.noHighlight()); - return true; -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -41,7 +41,6 @@ import org.chromium.chrome.browser.ActivityTabProvider; - import org.chromium.chrome.browser.banners.AppMenuVerbiage; - import org.chromium.chrome.browser.bookmarks.BookmarkFeatures; - import org.chromium.chrome.browser.bookmarks.BookmarkModel; --import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils; - import org.chromium.chrome.browser.commerce.ShoppingFeatures; - import org.chromium.chrome.browser.commerce.ShoppingServiceFactory; - import org.chromium.chrome.browser.device.DeviceClassManager; -@@ -1114,9 +1113,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - * @param stopPriceTrackingMenuItem The menu item to stop price tracking. - * @param currentTab Current tab being displayed. - */ -- protected void updatePriceTrackingMenuItemRow(@NonNull MenuItem startPriceTrackingMenuItem, -- @NonNull MenuItem stopPriceTrackingMenuItem, @Nullable Tab currentTab) { -- ShoppingService service = -+ protected void updatePriceTrackingMenuItemRow(@NonNull MenuItem startPriceTrackingMenuItem, // disabled -+ @NonNull MenuItem stopPriceTrackingMenuItem, @Nullable Tab currentTab) { // in Bromite -+ /*ShoppingService service = - ShoppingServiceFactory.getForProfile(Profile.getLastUsedRegularProfile()); - ShoppingService.ProductInfo info = null; - if (service != null && currentTab != null) { -@@ -1147,7 +1146,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - } else { - startPriceTrackingMenuItem.setVisible(true); - stopPriceTrackingMenuItem.setVisible(false); -- } -+ } */ -+ startPriceTrackingMenuItem.setVisible(false); -+ stopPriceTrackingMenuItem.setVisible(false); - } - - /** -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java -@@ -28,7 +28,6 @@ import org.chromium.chrome.browser.tab.Tab; - import org.chromium.components.bookmarks.BookmarkId; - import org.chromium.components.bookmarks.BookmarkItem; - import org.chromium.components.bookmarks.BookmarkType; --import org.chromium.components.commerce.core.ShoppingService; - import org.chromium.components.power_bookmarks.PowerBookmarkMeta; - import org.chromium.components.power_bookmarks.PowerBookmarkType; - import org.chromium.content_public.browser.WebContents; -@@ -47,7 +46,6 @@ class BookmarkBridge { - private boolean mIsDoingExtensiveChanges; - private boolean mIsNativeBookmarkModelLoaded; - private final ObserverList mObservers = new ObserverList<>(); -- private ShoppingService mShoppingService; - - /** - * Handler to fetch the bookmarks, titles, urls and folder hierarchy. -@@ -199,12 +197,6 @@ class BookmarkBridge { - assert mIsNativeBookmarkModelLoaded; - if (id == null) return null; - -- if (BookmarkId.SHOPPING_FOLDER.equals(id)) { -- return new BookmarkItem(id, /*title=*/null, /*url=*/null, -- /*isFolder=*/true, /*parentId=*/getRootFolderId(), /*isEditable=*/false, -- /*isManaged=*/false, /*dateAdded=*/0L, /*read=*/false); -- } -- - return BookmarkBridgeJni.get().getBookmarkByID( - mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType()); - } -@@ -389,9 +381,6 @@ class BookmarkBridge { - ThreadUtils.assertOnUiThread(); - if (mNativeBookmarkBridge == 0) return new ArrayList<>(); - assert mIsNativeBookmarkModelLoaded; -- if (BookmarkId.SHOPPING_FOLDER.equals(id)) { -- return searchBookmarks("", null, PowerBookmarkType.SHOPPING, -1); -- } - List result = new ArrayList<>(); - BookmarkBridgeJni.get().getChildIDs( - mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType(), result); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java -@@ -51,6 +51,7 @@ public class BookmarkItemsAdapter extends DragReorderableListAdapter { -- model.get(BookmarkManagerProperties.OPEN_FOLDER) -- .onResult(BookmarkId.SHOPPING_FOLDER); -- }); -- } -- } - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowCoordinator.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowCoordinator.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowCoordinator.java -@@ -58,12 +58,10 @@ public class BookmarkSaveFlowCoordinator { - /** - * @param context The {@link Context} associated with this cooridnator. - * @param bottomSheetController Allows displaying content in the bottom sheet. -- * @param shoppingService Allows un/subscribing for product updates, used for -- * price-tracking. - * @param userEducationHelper A means of triggering IPH. - */ - public BookmarkSaveFlowCoordinator(@NonNull Context context, -- @NonNull BottomSheetController bottomSheetController, ShoppingService shoppingService, -+ @NonNull BottomSheetController bottomSheetController, - @NonNull UserEducationHelper userEducationHelper, Profile profile) { - mContext = context; - mBottomSheetController = bottomSheetController; -@@ -75,7 +73,7 @@ public class BookmarkSaveFlowCoordinator { - mBookmarkSaveFlowView = LayoutInflater.from(mContext).inflate( - org.chromium.chrome.R.layout.bookmark_save_flow, /*root=*/null); - mMediator = new BookmarkSaveFlowMediator( -- mBookmarkModel, mPropertyModel, mContext, this::close, shoppingService); -+ mBookmarkModel, mPropertyModel, mContext, this::close); - mChangeProcessor = PropertyModelChangeProcessor.create(mPropertyModel, - (ViewLookupCachingFrameLayout) mBookmarkSaveFlowView, - new BookmarkSaveFlowViewBinder()); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowMediator.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowMediator.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowMediator.java -@@ -15,16 +15,11 @@ import org.chromium.base.Callback; - import org.chromium.base.CallbackController; - import org.chromium.base.metrics.RecordUserAction; - import org.chromium.chrome.R; --import org.chromium.chrome.browser.bookmarks.PowerBookmarkMetrics.PriceTrackingState; - import org.chromium.chrome.browser.commerce.PriceTrackingUtils; - import org.chromium.chrome.browser.feature_engagement.TrackerFactory; --import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.components.bookmarks.BookmarkId; - import org.chromium.components.bookmarks.BookmarkItem; --import org.chromium.components.commerce.core.CommerceSubscription; --import org.chromium.components.commerce.core.ShoppingService; --import org.chromium.components.commerce.core.SubscriptionsObserver; - import org.chromium.components.feature_engagement.EventConstants; - import org.chromium.components.power_bookmarks.PowerBookmarkMeta; - import org.chromium.ui.modelutil.PropertyModel; -@@ -33,7 +28,7 @@ import java.util.List; - - /** Controls the bookmarks save-flow. */ - public class BookmarkSaveFlowMediator -- extends BookmarkModelObserver implements SubscriptionsObserver { -+ extends BookmarkModelObserver { - private final Context mContext; - private final Runnable mCloseRunnable; - -@@ -44,8 +39,6 @@ public class BookmarkSaveFlowMediator - private PowerBookmarkMeta mPowerBookmarkMeta; - private boolean mWasBookmarkMoved; - private boolean mIsNewBookmark; -- private ShoppingService mShoppingService; -- private CommerceSubscription mSubscription; - private Callback mSubscriptionsManagerCallback; - private String mFolderName; - -@@ -55,21 +48,15 @@ public class BookmarkSaveFlowMediator - * model. - * @param context The {@link Context} associated with this mediator. - * @param closeRunnable A {@link Runnable} which closes the bookmark save flow. -- * @param shoppingService Used to manage the price-tracking subscriptions. - */ - public BookmarkSaveFlowMediator(BookmarkModel bookmarkModel, PropertyModel propertyModel, -- Context context, Runnable closeRunnable, ShoppingService shoppingService) { -+ Context context, Runnable closeRunnable) { - mBookmarkModel = bookmarkModel; - mBookmarkModel.addObserver(this); - - mPropertyModel = propertyModel; - mContext = context; - mCloseRunnable = closeRunnable; -- -- mShoppingService = shoppingService; -- if (mShoppingService != null) { -- mShoppingService.addSubscriptionsObserver(this); -- } - } - - /** -@@ -106,9 +93,6 @@ public class BookmarkSaveFlowMediator - mCloseRunnable.run(); - }); - -- if (meta != null) { -- mSubscription = PowerBookmarkUtils.createCommerceSubscriptionForPowerBookmarkMeta(meta); -- } - bindBookmarkProperties(mBookmarkId, mPowerBookmarkMeta, mWasBookmarkMoved); - bindPowerBookmarkProperties(mBookmarkId, mPowerBookmarkMeta, fromExplicitTrackUi); - } -@@ -134,46 +118,9 @@ public class BookmarkSaveFlowMediator - - private void bindPowerBookmarkProperties( - BookmarkId bookmarkId, @Nullable PowerBookmarkMeta meta, boolean fromExplicitTrackUi) { -- if (meta == null) return; -- -- if (meta.hasShoppingSpecifics()) { -- setPriceTrackingNotificationUiEnabled(true); -- setPriceTrackingIconForEnabledState(false); -- mPropertyModel.set(BookmarkSaveFlowProperties.NOTIFICATION_SWITCH_VISIBLE, true); -- mPropertyModel.set(BookmarkSaveFlowProperties.NOTIFICATION_SWITCH_TITLE, -- mContext.getResources().getString(R.string.enable_price_tracking_menu_item)); -- mPropertyModel.set(BookmarkSaveFlowProperties.NOTIFICATION_SWITCH_TOGGLE_LISTENER, -- this::handleNotificationSwitchToggle); -- -- if (fromExplicitTrackUi) { -- mPropertyModel.set(BookmarkSaveFlowProperties.NOTIFICATION_SWITCH_TOGGLED, true); -- } -- PowerBookmarkMetrics.reportBookmarkSaveFlowPriceTrackingState( -- PriceTrackingState.PRICE_TRACKING_SHOWN); -- } - } - - void handleNotificationSwitchToggle(CompoundButton view, boolean toggled) { -- if (mSubscriptionsManagerCallback == null) { -- mSubscriptionsManagerCallback = -- mCallbackController.makeCancelable((Boolean success) -> { -- setPriceTrackingToggleVisualsOnly(success && view.isChecked()); -- setPriceTrackingNotificationUiEnabled(success); -- }); -- } -- -- // Make sure the notification channel is initialized when the user tracks a product. -- // TODO(crbug.com/1382191): Add a SubscriptionsObserver in the PriceDropNotificationManager -- // and initialize the channel there. -- if (toggled && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { -- PriceDropNotificationManagerFactory.create().createNotificationChannel(); -- } -- setPriceTrackingIconForEnabledState(toggled); -- PriceTrackingUtils.setPriceTrackingStateForBookmark(Profile.getLastUsedRegularProfile(), -- mBookmarkId.getId(), toggled, mSubscriptionsManagerCallback, mIsNewBookmark); -- PowerBookmarkMetrics.reportBookmarkSaveFlowPriceTrackingState(toggled -- ? PriceTrackingState.PRICE_TRACKING_ENABLED -- : PriceTrackingState.PRICE_TRACKING_DISABLED); - } - - void setPriceTrackingNotificationUiEnabled(boolean enabled) { -@@ -192,9 +139,6 @@ public class BookmarkSaveFlowMediator - - void destroy() { - mBookmarkModel.removeObserver(this); -- if (mShoppingService != null) { -- mShoppingService.removeSubscriptionsObserver(this); -- } - - mBookmarkModel = null; - mPropertyModel = null; -@@ -215,10 +159,6 @@ public class BookmarkSaveFlowMediator - this::handleNotificationSwitchToggle); - } - -- void setSubscriptionForTesting(CommerceSubscription subscription) { -- mSubscription = subscription; -- } -- - // BookmarkModelObserver implementation - - @Override -@@ -230,17 +170,4 @@ public class BookmarkSaveFlowMediator - } - bindBookmarkProperties(mBookmarkId, mPowerBookmarkMeta, mWasBookmarkMoved); - } -- -- // SubscriptionsObserver implementation -- @Override -- public void onSubscribe(List subscriptions, boolean succeeded) { -- if (!succeeded) return; -- setPriceTrackingToggleVisualsOnly(subscriptions.contains(mSubscription)); -- } -- -- @Override -- public void onUnsubscribe(List subscriptions, boolean succeeded) { -- if (!succeeded) return; -- setPriceTrackingToggleVisualsOnly(!subscriptions.contains(mSubscription)); -- } - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java -@@ -148,9 +148,7 @@ public class BookmarkToolbar extends SelectableListToolbar - return; - } - -- if (folder.getId().equals(BookmarkId.SHOPPING_FOLDER)) { -- setTitle(R.string.price_tracking_bookmarks_filter_title); -- } else if (mBookmarkModel.getTopLevelFolderParentIDs().contains( -+ if (mBookmarkModel.getTopLevelFolderParentIDs().contains( - mCurrentFolder.getParentId()) - && TextUtils.isEmpty(mCurrentFolder.getTitle())) { - setTitle(R.string.bookmarks); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUiState.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUiState.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUiState.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUiState.java -@@ -45,26 +45,13 @@ public class BookmarkUiState { - return new BookmarkUiState(BookmarkUiMode.SEARCHING, "", null); - } - -- static BookmarkUiState createShoppingFilterState() { -- return new BookmarkUiState( -- BookmarkUiMode.FOLDER, SHOPPING_FILTER_URL, BookmarkId.SHOPPING_FOLDER); -- } -- - static BookmarkUiState createFolderState(BookmarkId folder, BookmarkModel bookmarkModel) { -- if (BookmarkId.SHOPPING_FOLDER.equals(folder)) { -- return createShoppingFilterState(); -- } else { - return createStateFromUrl(createFolderUrl(folder), bookmarkModel); -- } - } - - /** @see #createStateFromUrl(Uri, BookmarkModel). */ - static BookmarkUiState createStateFromUrl(String url, BookmarkModel bookmarkModel) { -- if (SHOPPING_FILTER_URL.equals(url)) { -- return createShoppingFilterState(); -- } else { - return createStateFromUrl(Uri.parse(url), bookmarkModel); -- } - } - - /** -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java -@@ -34,7 +34,6 @@ import org.chromium.chrome.browser.app.bookmarks.BookmarkActivity; - import org.chromium.chrome.browser.app.bookmarks.BookmarkAddEditFolderActivity; - import org.chromium.chrome.browser.app.bookmarks.BookmarkEditActivity; - import org.chromium.chrome.browser.app.bookmarks.BookmarkFolderSelectActivity; --import org.chromium.chrome.browser.commerce.ShoppingServiceFactory; - import org.chromium.chrome.browser.document.ChromeLauncherActivity; - import org.chromium.chrome.browser.feature_engagement.TrackerFactory; - import org.chromium.chrome.browser.incognito.IncognitoUtils; -@@ -127,10 +126,8 @@ public class BookmarkUtils { - } - - Profile profile = Profile.getLastUsedRegularProfile(); -- ShoppingService shoppingService = ShoppingServiceFactory.getForProfile(profile); -- - BookmarkSaveFlowCoordinator bookmarkSaveFlowCoordinator = -- new BookmarkSaveFlowCoordinator(activity, bottomSheetController, shoppingService, -+ new BookmarkSaveFlowCoordinator(activity, bottomSheetController, - new UserEducationHelper(activity, new Handler()), profile); - bookmarkSaveFlowCoordinator.show( - bookmarkId, fromExplicitTrackUi, wasBookmarkMoved, isNewBookmark); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java -@@ -231,7 +231,7 @@ public class CustomTabActivity extends BaseCustomTabActivity { - if (tab == null) return false; - String publisher = TrustedCdn.getContentPublisher(tab); - new ChromePageInfo(getModalDialogManagerSupplier(), publisher, OpenedFromSource.MENU, -- mRootUiCoordinator.getMerchantTrustSignalsCoordinatorSupplier()::get, -+ /*mRootUiCoordinator.getMerchantTrustSignalsCoordinatorSupplier()::get*/ null, - mRootUiCoordinator.getEphemeralTabCoordinatorSupplier()) - .show(tab, ChromePageInfoHighlight.noHighlight()); - return true; -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java -@@ -72,7 +72,6 @@ import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza - import org.chromium.chrome.browser.photo_picker.DecoderService; - import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; - import org.chromium.chrome.browser.preferences.SharedPreferencesManager; --import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures; - import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.profiles.ProfileManagerUtils; -@@ -446,10 +445,6 @@ public class ProcessInitializationHandler { - .create() - .onDeferredStartup(); - // TODO(crbug.com/1355893) Move to PersistedTabData.onDeferredStartup -- if (PriceTrackingFeatures.isPriceTrackingEligible() -- && ShoppingPersistedTabData.isPriceTrackingWithOptimizationGuideEnabled()) { -- ShoppingPersistedTabData.onDeferredStartup(); -- } - }); - deferredStartupHandler.addDeferredTask(() -> { - if (ChromeFeatureList.isEnabled(ChromeFeatureList.FEATURE_NOTIFICATION_GUIDE)) { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/ChromePageInfoControllerDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/page_info/ChromePageInfoControllerDelegate.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/page_info/ChromePageInfoControllerDelegate.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/page_info/ChromePageInfoControllerDelegate.java -@@ -246,14 +246,6 @@ public class ChromePageInfoControllerDelegate extends PageInfoControllerDelegate - controllers.add(new PageInfoAboutThisSiteController(mainController, - mEphemeralTabCoordinatorSupplier, aboutThisSiteRow, this, mWebContents)); - } -- if (PageInfoFeatures.PAGE_INFO_STORE_INFO.isEnabled() && !isIncognito()) { -- final PageInfoRowView storeInfoRow = new PageInfoRowView(rowWrapper.getContext(), null); -- storeInfoRow.setId(PageInfoStoreInfoController.STORE_INFO_ROW_ID); -- rowWrapper.addView(storeInfoRow); -- controllers.add(new PageInfoStoreInfoController(mainController, storeInfoRow, -- mStoreInfoActionHandlerSupplier, mPageInfoHighlight.shouldHighlightStoreInfo(), -- mWebContents, mProfile)); -- } - return controllers; - } - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java -@@ -107,10 +107,6 @@ public class ContextualPageActionController { - protected void initActionProviders(Supplier shoppingServiceSupplier, - Supplier bookmarkModelSupplier) { - mActionProviders.clear(); -- if (AdaptiveToolbarFeatures.isPriceTrackingPageActionEnabled()) { -- mActionProviders.add(new PriceTrackingActionProvider( -- shoppingServiceSupplier, bookmarkModelSupplier, mProfileSupplier)); -- } - if (AdaptiveToolbarFeatures.isReaderModePageActionEnabled()) { - mActionProviders.add(new ReaderModeActionProvider()); - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java -@@ -13,7 +13,6 @@ import org.chromium.chrome.browser.dom_distiller.TabDistillabilityProvider; - import org.chromium.chrome.browser.infobar.InfoBarContainer; - import org.chromium.chrome.browser.media.ui.MediaSessionTabHelper; - import org.chromium.chrome.browser.password_check.PasswordCheckUkmRecorder; --import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures; - import org.chromium.chrome.browser.tab.state.ShoppingPersistedTabData; - - /** -@@ -39,14 +38,6 @@ public final class TabHelpers { - PasswordCheckUkmRecorder.createForTab(tab); - AccessibilityTabHelper.createForTab(tab); - -- // The following will start prefetching data for the price drops feature, so -- // we should only do it if the user is eligible for the feature (e.g. has sync enabled). -- if (!tab.isIncognito() && !((TabImpl) tab).isCustomTab() -- && PriceTrackingFeatures.isPriceTrackingEligible() -- && ShoppingPersistedTabData.isPriceTrackingWithOptimizationGuideEnabled()) { -- ShoppingPersistedTabData.initialize(tab); -- } -- - // TODO(jinsukkim): Do this by having something observe new tab creation. - if (tab.isIncognito()) CipherFactory.getInstance().triggerKeyGeneration(); - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -77,7 +77,6 @@ import org.chromium.chrome.browser.offlinepages.indicator.OfflineIndicatorInProd - import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener; - import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; - import org.chromium.chrome.browser.preferences.SharedPreferencesManager; --import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures; - import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxDialogController; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.read_later.ReadLaterIPHController; -@@ -85,8 +84,6 @@ import org.chromium.chrome.browser.settings.SettingsLauncherImpl; - import org.chromium.chrome.browser.share.ShareDelegate; - import org.chromium.chrome.browser.share.link_to_text.LinkToTextIPHController; - import org.chromium.chrome.browser.status_indicator.StatusIndicatorCoordinator; --import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsService; --import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsServiceFactory; - import org.chromium.chrome.browser.tab.RequestDesktopUtils; - import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.tab.TabAssociatedApp; -@@ -155,7 +152,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { - private NavigationSheet mNavigationSheet; - private ComposedBrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate; - private LayoutManagerImpl mLayoutManager; -- private CommerceSubscriptionsService mCommerceSubscriptionsService; - private UndoGroupSnackbarController mUndoGroupSnackbarController; - private final int mControlContainerHeightResource; - private final Supplier mInsetObserverViewSupplier; -@@ -379,11 +375,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { - mUndoGroupSnackbarController.destroy(); - } - -- if (mCommerceSubscriptionsService != null) { -- mCommerceSubscriptionsService.destroy(); -- mCommerceSubscriptionsService = null; -- } -- - if (mNotificationPermissionController != null) { - NotificationPermissionController.detach(mNotificationPermissionController); - mNotificationPermissionController = null; -@@ -523,7 +514,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { - mPwaBottomSheetController = - PwaBottomSheetControllerFactory.createPwaBottomSheetController(mActivity); - PwaBottomSheetControllerFactory.attach(mWindowAndroid, mPwaBottomSheetController); -- initCommerceSubscriptionsService(); - initUndoGroupSnackbarController(); - } - -@@ -807,17 +797,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { - if (animate) browserControlsSizer.setAnimateBrowserControlsHeightChanges(false); - } - -- private void initCommerceSubscriptionsService() { -- if (!PriceTrackingFeatures.getPriceTrackingNotificationsEnabled()) { -- return; -- } -- -- CommerceSubscriptionsServiceFactory factory = new CommerceSubscriptionsServiceFactory(); -- mCommerceSubscriptionsService = factory.getForLastUsedProfile(); -- mCommerceSubscriptionsService.initDeferredStartupForActivity( -- mTabModelSelectorSupplier.get(), mActivityLifecycleDispatcher); -- } -- - private void initUndoGroupSnackbarController() { - if (TabUiFeatureUtilities.isTabGroupsAndroidEnabled(mActivity)) { - mUndoGroupSnackbarController = new UndoGroupSnackbarController( -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java -@@ -16,8 +16,6 @@ import org.chromium.base.supplier.Supplier; - import org.chromium.base.task.PostTask; - import org.chromium.base.task.TaskTraits; - import org.chromium.chrome.R; --import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils; --import org.chromium.chrome.browser.commerce.ShoppingFeatures; - import org.chromium.chrome.browser.download.DownloadUtils; - import org.chromium.chrome.browser.feature_engagement.ScreenshotMonitor; - import org.chromium.chrome.browser.feature_engagement.ScreenshotMonitorDelegate; -@@ -119,7 +117,6 @@ public class ToolbarButtonInProductHelpController - private void handleIPHForSuccessfulPageLoad(final Tab tab) { - showDownloadPageTextBubble(tab, FeatureConstants.DOWNLOAD_PAGE_FEATURE); - showTranslateMenuButtonTextBubble(tab); -- showPriceTrackingIPH(tab); - } - - private void handleIPHForErrorPageShown(Tab tab) { -@@ -150,30 +147,6 @@ public class ToolbarButtonInProductHelpController - mLifecycleDispatcher.unregister(this); - } - -- /** -- * Attempt to show the IPH for price tracking. -- * @param tab The tab currently being displayed to the user. -- */ -- private void showPriceTrackingIPH(Tab tab) { -- if (!ShoppingFeatures.isShoppingListEligible() -- || !PowerBookmarkUtils.isPriceTrackingEligible(tab) -- || AdaptiveToolbarFeatures.isContextualPageActionUiEnabled()) { -- return; -- } -- -- mUserEducationHelper.requestShowIPH( -- new IPHCommandBuilder(mActivity.getResources(), -- FeatureConstants.SHOPPING_LIST_MENU_ITEM_FEATURE, -- R.string.iph_price_tracking_menu_item, -- R.string.iph_price_tracking_menu_item_accessibility) -- .setAnchorView(mMenuButtonAnchorView) -- .setOnShowCallback(() -- -> turnOnHighlightForMenuItem( -- R.id.enable_price_tracking_menu_id)) -- .setOnDismissCallback(this::turnOffHighlightForMenuItem) -- .build()); -- } -- - /** - * Attempts to show an IPH text bubble for download continuing. - */ -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 -@@ -90,8 +90,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.ActionChipsDelegate; - import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; - import org.chromium.chrome.browser.page_info.ChromePageInfo; - import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; --import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures; --import org.chromium.chrome.browser.price_tracking.PriceTrackingUtilities; - import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; -@@ -644,7 +642,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve - postDataType, postData, incognito, startSurfaceParentTabSupplier.get()); - }; - ChromePageInfo toolbarPageInfo = new ChromePageInfo(modalDialogManagerSupplier, null, -- OpenedFromSource.TOOLBAR, merchantTrustSignalsCoordinatorSupplier::get, -+ OpenedFromSource.TOOLBAR, /*merchantTrustSignalsCoordinatorSupplier::get*/ null, - mEphemeralTabCoordinatorSupplier); - // clang-format off - LocationBarCoordinator locationBarCoordinator = new LocationBarCoordinator( -@@ -2028,21 +2026,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve - * viewed in the tab switcher grid. - */ - private void maybeShowPriceDropIPH() { -- if (!PriceTrackingUtilities.isTrackPricesOnTabsEnabled() -- || !PriceTrackingFeatures.isPriceDropIphEnabled() || mTabModelSelector == null -- || mTabModelSelector.isIncognitoSelected()) { -- return; -- } -- TabModel tabModel = mTabModelSelector.getCurrentModel(); -- for (int i = 0; i < tabModel.getCount(); i++) { -- ShoppingPersistedTabData.from(tabModel.getTabAt(i), (shoppingPersistedTabData) -> { -- if (shoppingPersistedTabData != null -- && shoppingPersistedTabData.getPriceDrop() != null -- && !shoppingPersistedTabData.getIsCurrentPriceDropSeen()) { -- showPriceDropIPH(); -- } -- }); -- } - } - - private void checkIfNtpLoaded() { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -93,7 +93,6 @@ import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; - import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler.VoiceInteractionSource; - import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; - import org.chromium.chrome.browser.preferences.SharedPreferencesManager; --import org.chromium.chrome.browser.price_tracking.PriceTrackingButtonController; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; - import org.chromium.chrome.browser.settings.SettingsLauncherImpl; -@@ -617,7 +616,6 @@ public class RootUiCoordinator - } - - if (mMerchantTrustSignalsCoordinatorSupplier.hasValue()) { -- mMerchantTrustSignalsCoordinatorSupplier.get().destroy(); - mMerchantTrustSignalsCoordinatorSupplier.set(null); - } - -@@ -854,16 +852,6 @@ public class RootUiCoordinator - } - - private void initMerchantTrustSignals() { -- if (ShoppingServiceFactory.getForProfile(Profile.getLastUsedRegularProfile()) -- .isMerchantViewerEnabled() -- && shouldInitializeMerchantTrustSignals()) { -- MerchantTrustSignalsCoordinator merchantTrustSignalsCoordinator = -- new MerchantTrustSignalsCoordinator(mActivity, mWindowAndroid, -- getBottomSheetController(), mActivity.getWindow().getDecorView(), -- MessageDispatcherProvider.from(mWindowAndroid), mActivityTabProvider, -- mProfileSupplier, new MerchantTrustMetrics(), mIntentRequestTracker); -- mMerchantTrustSignalsCoordinatorSupplier.set(merchantTrustSignalsCoordinator); -- } - } - - private void initScrollCapture() { -@@ -1069,12 +1057,6 @@ public class RootUiCoordinator - - mIdentityDiscController = new IdentityDiscController( - mActivity, mActivityLifecycleDispatcher, mProfileSupplier); -- PriceTrackingButtonController priceTrackingButtonController = -- new PriceTrackingButtonController(mActivity, mActivityTabProvider, -- mModalDialogManagerSupplier.get(), getBottomSheetController(), -- AppCompatResources.getDrawable( -- mActivity, R.drawable.price_tracking_disabled), -- mTabBookmarkerSupplier); - ReaderModeToolbarButtonController readerModeToolbarButtonController = - new ReaderModeToolbarButtonController(mActivity, mActivityTabProvider, - mModalDialogManagerSupplier.get(), -@@ -1137,8 +1119,6 @@ public class RootUiCoordinator - addToBookmarksToolbarButtonController); - adaptiveToolbarButtonController.addButtonVariant( - AdaptiveToolbarButtonVariant.TRANSLATE, translateToolbarButtonController); -- adaptiveToolbarButtonController.addButtonVariant( -- AdaptiveToolbarButtonVariant.PRICE_TRACKING, priceTrackingButtonController); - adaptiveToolbarButtonController.addButtonVariant( - AdaptiveToolbarButtonVariant.READER_MODE, readerModeToolbarButtonController); - mButtonDataProviders = -diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni ---- a/chrome/android/java_sources.gni -+++ b/chrome/android/java_sources.gni -@@ -14,9 +14,6 @@ import("//chrome/android/features/tab_ui/tab_management_java_sources.gni") - import("//chrome/android/feed/feed_java_sources.gni") - import( - "//chrome/browser/commerce/merchant_viewer/android/test_java_sources.gni") --import("//chrome/browser/commerce/price_tracking/android/test_java_sources.gni") --import( -- "//chrome/browser/commerce/subscriptions/test/android/test_java_sources.gni") - import("//chrome/browser/share/android/test_java_sources.gni") - import("//chrome/browser/tab_group/javatests/tab_groups_test_java_sources.gni") - import("//chrome/common/features.gni") -@@ -36,15 +33,11 @@ chrome_test_java_sources += start_surface_test_java_sources - chrome_test_java_sources += tab_groups_test_java_sources - chrome_junit_test_java_sources += start_surface_junit_java_sources - chrome_junit_test_java_sources += tab_management_junit_java_sources --chrome_junit_test_java_sources += price_tracking_junit_test_java_sources --chrome_test_java_sources += price_tracking_test_java_sources - chrome_test_java_sources += tab_management_test_java_sources - chrome_test_java_sources += share_test_java_sources - chrome_junit_test_java_sources += share_junit_test_java_sources - chrome_junit_test_java_deps = share_junit_test_java_deps - chrome_junit_test_java_deps += feed_test_deps --chrome_junit_test_java_sources += commerce_subscriptions_junit_test_sources --chrome_junit_test_java_deps += commerce_subscriptions_junit_test_deps - chrome_test_java_sources += commerce_merchant_viewer_java_test_sources - - if (enable_arcore) { -diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn ---- a/chrome/browser/BUILD.gn -+++ b/chrome/browser/BUILD.gn -@@ -2844,8 +2844,6 @@ static_library("browser") { - "commerce/android/price_tracking_utils_android.cc", - "commerce/android/shopping_service_factory_android.cc", - "commerce/merchant_viewer/web_contents_helper.cc", -- "commerce/price_tracking/android/price_tracking_notification_bridge.cc", -- "commerce/price_tracking/android/price_tracking_notification_bridge.h", - "content_creation/notes/internal/android/note_service_bridge_factory.cc", - "content_creation/notes/internal/note_service_factory.cc", - "content_creation/notes/internal/note_service_factory.h", -@@ -3219,8 +3217,6 @@ static_library("browser") { - "//chrome/browser/banners/android:jni_headers", - "//chrome/browser/bluetooth/android:jni_headers", - "//chrome/browser/commerce/android:shopping_service_jni", -- "//chrome/browser/commerce/merchant_viewer:merchant_signal_db", -- "//chrome/browser/commerce/merchant_viewer:merchant_viewer_data_manager", - "//chrome/browser/commerce/merchant_viewer/android:jni_headers", - "//chrome/browser/consent_auditor/android:jni_headers", - "//chrome/browser/content_creation/notes/internal/android:jni_headers", -diff --git a/chrome/browser/browsing_data/browsing_data_history_observer_service.cc b/chrome/browser/browsing_data/browsing_data_history_observer_service.cc ---- a/chrome/browser/browsing_data/browsing_data_history_observer_service.cc -+++ b/chrome/browser/browsing_data/browsing_data_history_observer_service.cc -@@ -93,20 +93,6 @@ void DeleteTemplateUrlsForDeletedOrigins(TemplateURLService* keywords_model, - #if BUILDFLAG(IS_ANDROID) - void ClearCommerceData(Profile* profile, - const history::DeletionInfo& deletion_info) { -- MerchantViewerDataManager* merchant_viewer_data_manager = -- MerchantViewerDataManagerFactory::GetForProfile(profile); -- if (!merchant_viewer_data_manager) -- return; -- if (deletion_info.time_range().IsValid()) { -- merchant_viewer_data_manager->DeleteMerchantViewerDataForTimeRange( -- deletion_info.time_range().begin(), deletion_info.time_range().end()); -- } else { -- auto deleted_origins = -- GetDeletedOrigins(deletion_info.deleted_urls_origin_map()); -- -- merchant_viewer_data_manager->DeleteMerchantViewerDataForOrigins( -- std::move(deleted_origins)); -- } - } - #endif - -@@ -179,7 +165,6 @@ BrowsingDataHistoryObserverService::Factory::Factory() - #endif - - #if BUILDFLAG(IS_ANDROID) -- DependsOn(MerchantViewerDataManagerFactory::GetInstance()); - DependsOn(commerce::ShoppingServiceFactory::GetInstance()); - #endif - } -diff --git a/chrome/browser/commerce/merchant_viewer/android/BUILD.gn b/chrome/browser/commerce/merchant_viewer/android/BUILD.gn ---- a/chrome/browser/commerce/merchant_viewer/android/BUILD.gn -+++ b/chrome/browser/commerce/merchant_viewer/android/BUILD.gn -@@ -7,26 +7,26 @@ import("//build/config/android/rules.gni") - - android_library("java") { - sources = [ -- "java/src/org/chromium/chrome/browser/merchant_viewer/BottomSheetToolbarProperties.java", -- "java/src/org/chromium/chrome/browser/merchant_viewer/BottomSheetToolbarView.java", -- "java/src/org/chromium/chrome/browser/merchant_viewer/BottomSheetToolbarViewBinder.java", -- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustBottomSheetContent.java", -- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustBottomSheetCoordinator.java", -- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustBottomSheetMediator.java", -- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustMessageContext.java", -- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustMessageScheduler.java", -- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustMessageViewModel.java", -+ # "java/src/org/chromium/chrome/browser/merchant_viewer/BottomSheetToolbarProperties.java", -+ # "java/src/org/chromium/chrome/browser/merchant_viewer/BottomSheetToolbarView.java", -+ # "java/src/org/chromium/chrome/browser/merchant_viewer/BottomSheetToolbarViewBinder.java", -+ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustBottomSheetContent.java", -+ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustBottomSheetCoordinator.java", -+ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustBottomSheetMediator.java", -+ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustMessageContext.java", -+ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustMessageScheduler.java", -+ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustMessageViewModel.java", - "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustMetrics.java", - "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsCoordinator.java", -- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsDataProvider.java", -- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsEvent.java", -- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsEventStorage.java", -- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsMediator.java", -- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsStorageFactory.java", -- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantViewerConfig.java", -+ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsDataProvider.java", -+ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsEvent.java", -+ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsEventStorage.java", -+ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsMediator.java", -+ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsStorageFactory.java", -+ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantViewerConfig.java", - "java/src/org/chromium/chrome/browser/merchant_viewer/PageInfoStoreInfoController.java", -- "java/src/org/chromium/chrome/browser/merchant_viewer/RatingStarSpan.java", -- "java/src/org/chromium/chrome/browser/merchant_viewer/WebContentsHelpers.java", -+ # "java/src/org/chromium/chrome/browser/merchant_viewer/RatingStarSpan.java", -+ # "java/src/org/chromium/chrome/browser/merchant_viewer/WebContentsHelpers.java", - ] - - deps = [ -diff --git a/chrome/browser/commerce/merchant_viewer/android/java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsCoordinator.java b/chrome/browser/commerce/merchant_viewer/android/java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsCoordinator.java ---- a/chrome/browser/commerce/merchant_viewer/android/java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsCoordinator.java -+++ b/chrome/browser/commerce/merchant_viewer/android/java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsCoordinator.java -@@ -43,9 +43,7 @@ import org.chromium.url.GURL; - /** - * Coordinator for managing merchant trust signals experience. - */ --public class MerchantTrustSignalsCoordinator -- implements PageInfoStoreInfoController.StoreInfoActionHandler, -- MerchantTrustMessageViewModel.MessageActionsHandler { -+public class MerchantTrustSignalsCoordinator { - /** Interface to control the omnibox store icon and the related IPH. */ - public interface OmniboxIconController { - /** -@@ -62,308 +60,9 @@ public class MerchantTrustSignalsCoordinator - @StringRes int stringId, boolean canShowIph); - } - -- private final MerchantTrustSignalsMediator mMediator; -- private final MerchantTrustMessageScheduler mMessageScheduler; -- private final MerchantTrustBottomSheetCoordinator mDetailsTabCoordinator; -- private final Context mContext; -- private final MerchantTrustMetrics mMetrics; -- private final MerchantTrustSignalsDataProvider mDataProvider; -- private final MerchantTrustSignalsStorageFactory mStorageFactory; -- private final ObservableSupplier mProfileSupplier; -- private final WindowAndroid mWindowAndroid; -- private final ObservableSupplier mTabSupplier; -- private OmniboxIconController mOmniboxIconController; -- -- /** Creates a new instance. */ -- public MerchantTrustSignalsCoordinator(Context context, WindowAndroid windowAndroid, -- BottomSheetController bottomSheetController, View layoutView, -- MessageDispatcher messageDispatcher, ObservableSupplier tabSupplier, -- ObservableSupplier profileSupplier, MerchantTrustMetrics metrics, -- IntentRequestTracker intentRequestTracker) { -- this(context, windowAndroid, -- new MerchantTrustMessageScheduler(messageDispatcher, metrics, tabSupplier), -- tabSupplier, new MerchantTrustSignalsDataProvider(), profileSupplier, metrics, -- new MerchantTrustBottomSheetCoordinator(context, windowAndroid, -- bottomSheetController, tabSupplier, layoutView, metrics, -- intentRequestTracker, profileSupplier), -- new MerchantTrustSignalsStorageFactory(profileSupplier)); -- } -- -- @VisibleForTesting -- MerchantTrustSignalsCoordinator(Context context, WindowAndroid windowAndroid, -- MerchantTrustMessageScheduler messageScheduler, ObservableSupplier tabSupplier, -- MerchantTrustSignalsDataProvider dataProvider, -- ObservableSupplier profileSupplier, MerchantTrustMetrics metrics, -- MerchantTrustBottomSheetCoordinator detailsTabCoordinator, -- MerchantTrustSignalsStorageFactory storageFactory) { -- mContext = context; -- mDataProvider = dataProvider; -- mMetrics = metrics; -- mStorageFactory = storageFactory; -- mProfileSupplier = profileSupplier; -- mWindowAndroid = windowAndroid; -- mTabSupplier = tabSupplier; -- -- mMediator = new MerchantTrustSignalsMediator( -- tabSupplier, this::onFinishEligibleNavigation, metrics); -- mMessageScheduler = messageScheduler; -- mDetailsTabCoordinator = detailsTabCoordinator; -- } -- -- /** Cleans up internal state. */ -- public void destroy() { -- mMediator.destroy(); -- mStorageFactory.destroy(); -- } -- - /** - * Set the {@link OmniboxIconController} to manage the store icon in omnibox. - */ - public void setOmniboxIconController(@Nullable OmniboxIconController omniboxIconController) { -- mOmniboxIconController = omniboxIconController; -- } -- -- @VisibleForTesting -- void onFinishEligibleNavigation(MerchantTrustMessageContext item) { -- NavigationHandle navigationHandle = item.getNavigationHandle(); -- if (navigationHandle == null || navigationHandle.getUrl() == null) { -- return; -- } -- boolean shouldExpediteMessage; -- MerchantTrustMessageContext scheduledMessage = -- mMessageScheduler.getScheduledMessageContext(); -- if (scheduledMessage != null && scheduledMessage.getHostName() != null -- && scheduledMessage.getHostName().equals(item.getHostName()) -- && !scheduledMessage.getUrl().equals(item.getUrl())) { -- // When user enters PageInfo, we fetch data based on url which is less reliable than the -- // navigation-based one. Thus, to make sure the "Store info" row is visible, we still -- // need to fetch data based on this navigation before showing the message, rather than -- // using the scheduled message directly. -- mMessageScheduler.clear(MessageClearReason.NAVIGATE_TO_SAME_DOMAIN); -- shouldExpediteMessage = true; -- } else { -- mMessageScheduler.clear(MessageClearReason.NAVIGATE_TO_DIFFERENT_DOMAIN); -- shouldExpediteMessage = false; -- } -- mDataProvider.getDataForUrl(mProfileSupplier.get(), navigationHandle.getUrl(), -- (merchantInfo) -> maybeDisplayMessage(merchantInfo, item, shouldExpediteMessage)); -- } -- -- @VisibleForTesting -- void maybeDisplayMessage(MerchantInfo merchantInfo, MerchantTrustMessageContext item, -- boolean shouldExpediteMessage) { -- if (merchantInfo == null) return; -- mMetrics.recordUkmOnDataAvailable(item.getWebContents()); -- NavigationHandle navigationHandle = item.getNavigationHandle(); -- MerchantTrustSignalsEventStorage storage = mStorageFactory.getForLastUsedProfile(); -- if (navigationHandle == null || navigationHandle.getUrl() == null || storage == null -- || MerchantViewerConfig.isTrustSignalsMessageDisabled() -- || merchantInfo.proactiveMessageDisabled -- || isMerchantRatingBelowThreshold(merchantInfo) -- || isNonPersonalizedFamiliarMerchant(merchantInfo) -- || isFamiliarMerchant(navigationHandle.getUrl().getSpec()) -- || hasReachedMaxAllowedMessageNumberInGivenTime() -- || !isOnSecureWebsite(item.getWebContents())) { -- return; -- } -- -- storage.load(navigationHandle.getUrl().getHost(), (event) -> { -- if (event == null) { -- scheduleMessage(merchantInfo, item, shouldExpediteMessage); -- } else if (System.currentTimeMillis() - event.getTimestamp() -- > MerchantViewerConfig.getTrustSignalsMessageWindowDurationMilliSeconds()) { -- storage.delete(event); -- scheduleMessage(merchantInfo, item, shouldExpediteMessage); -- } -- }); -- } -- -- private void scheduleMessage(MerchantInfo merchantInfo, MerchantTrustMessageContext item, -- boolean shouldExpediteMessage) { -- assert (merchantInfo != null) && (item != null); -- mMessageScheduler.schedule( -- MerchantTrustMessageViewModel.create(mContext, merchantInfo, item.getUrl(), this), -- merchantInfo.starRating, item, -- shouldExpediteMessage ? MerchantTrustMessageScheduler.MESSAGE_ENQUEUE_NO_DELAY -- : MerchantViewerConfig.getDefaultTrustSignalsMessageDelay(), -- this::onMessageEnqueued); -- } -- -- private boolean isFamiliarMerchant(String url) { -- if (!MerchantViewerConfig.doesTrustSignalsUseSiteEngagement() || TextUtils.isEmpty(url)) { -- return false; -- } -- Profile profile = mProfileSupplier.get(); -- if (profile == null || profile.isOffTheRecord()) { -- return false; -- } -- return getSiteEngagementScore(profile, url) -- > MerchantViewerConfig.getTrustSignalsSiteEngagementThreshold(); -- } -- -- @VisibleForTesting -- double getSiteEngagementScore(Profile profile, String url) { -- return SiteEngagementService.getForBrowserContext(profile).getScore(url); -- } -- -- @VisibleForTesting -- boolean isOnSecureWebsite(WebContents webContents) { -- return SecurityStateModel.getSecurityLevelForWebContents(webContents) -- == ConnectionSecurityLevel.SECURE; -- } -- -- private boolean isMerchantRatingBelowThreshold(MerchantInfo merchantInfo) { -- return merchantInfo.starRating -- < MerchantViewerConfig.getTrustSignalsMessageRatingThreshold(); -- } -- -- private boolean isNonPersonalizedFamiliarMerchant(MerchantInfo merchantInfo) { -- return merchantInfo.nonPersonalizedFamiliarityScore -- > MerchantViewerConfig.getTrustSignalsNonPersonalizedFamiliarityScoreThreshold(); -- } -- -- @VisibleForTesting -- void onMessageEnqueued(MerchantTrustMessageContext messageContext) { -- if (messageContext == null) { -- return; -- } -- -- MerchantTrustSignalsEventStorage storage = mStorageFactory.getForLastUsedProfile(); -- if (storage == null) { -- return; -- } -- -- mMetrics.recordUkmOnMessageSeen(messageContext.getWebContents()); -- updateShownMessagesTimestamp(); -- storage.save(new MerchantTrustSignalsEvent( -- messageContext.getHostName(), System.currentTimeMillis())); -- } -- -- // MerchantTrustMessageViewModel.MessageActionsHandler implementations. -- @Override -- public void onMessageDismissed(@DismissReason int dismissReason, String messageAssociatedUrl) { -- mMetrics.recordMetricsForMessageDismissed(dismissReason); -- if (dismissReason == DismissReason.TIMER || dismissReason == DismissReason.GESTURE) { -- maybeShowStoreIcon(messageAssociatedUrl, dismissReason == DismissReason.TIMER); -- } -- } -- -- @Override -- public void onMessagePrimaryAction(MerchantInfo merchantInfo, String messageAssociatedUrl) { -- mMetrics.recordMetricsForMessageTapped(); -- -- // TODO(crbug.com/1300971): Pass webContents directly to this method instead of using -- // mTabSupplier. -- if (mTabSupplier.hasValue()) { -- mMetrics.recordUkmOnMessageClicked(mTabSupplier.get().getWebContents()); -- } -- launchDetailsPage(merchantInfo.detailsPageUrl, BottomSheetOpenedSource.FROM_MESSAGE, -- messageAssociatedUrl); -- } -- -- // PageInfoStoreInfoController.StoreInfoActionHandler implementation. -- @Override -- public void onStoreInfoClicked(MerchantInfo merchantInfo) { -- launchDetailsPage( -- merchantInfo.detailsPageUrl, BottomSheetOpenedSource.FROM_PAGE_INFO, null); -- // If user has clicked the "Store info" row, send a signal to disable {@link -- // FeatureConstants.PAGE_INFO_STORE_INFO_FEATURE}. -- final Tracker tracker = TrackerFactory.getTrackerForProfile(mProfileSupplier.get()); -- tracker.notifyEvent(EventConstants.PAGE_INFO_STORE_INFO_ROW_CLICKED); -- } -- -- private void launchDetailsPage(GURL detailsPageUrl, @BottomSheetOpenedSource int openSource, -- @Nullable String messageAssociatedUrl) { -- mMetrics.recordMetricsForBottomSheetOpenedSource(openSource); -- mDetailsTabCoordinator.requestOpenSheet(detailsPageUrl, -- mContext.getResources().getString(R.string.merchant_viewer_preview_sheet_title), -- () -> onBottomSheetDismissed(openSource, messageAssociatedUrl)); -- } -- -- private void onBottomSheetDismissed( -- @BottomSheetOpenedSource int openSource, @Nullable String messageAssociatedUrl) { -- if (openSource == BottomSheetOpenedSource.FROM_MESSAGE) { -- maybeShowStoreIcon(messageAssociatedUrl, true); -- } -- } -- -- /** -- * Assuming that we only allow 3 messages in 1 hour, we store the serialized timestamps of the -- * last 3 shown messages. Before showing a message, we look up the persisted data and -- * deserialize it to 3 timestamps, then check whether the earliest timestamp is more than 1 hour -- * from now. If yes, the message can be shown thus returning false. -- */ -- @VisibleForTesting -- boolean hasReachedMaxAllowedMessageNumberInGivenTime() { -- PrefService prefService = getPrefService(); -- if (prefService == null) return true; -- String serializedTimestamps = -- prefService.getString(Pref.COMMERCE_MERCHANT_VIEWER_MESSAGES_SHOWN_TIME); -- if (TextUtils.isEmpty(serializedTimestamps)) return false; -- String[] timestamps = serializedTimestamps.split("_"); -- int maxAllowedNumber = MerchantViewerConfig.getTrustSignalsMaxAllowedNumberInGivenWindow(); -- if (timestamps.length < maxAllowedNumber) return false; -- assert timestamps.length == maxAllowedNumber; -- return System.currentTimeMillis() - Long.parseLong(timestamps[0]) -- < MerchantViewerConfig.getTrustSignalsNumberCheckWindowDuration(); -- } -- -- /** -- * Every time showing a message, we need to update the serialized timestamps. -- */ -- @VisibleForTesting -- void updateShownMessagesTimestamp() { -- PrefService prefService = getPrefService(); -- if (prefService == null) return; -- String currentTimestamp = Long.toString(System.currentTimeMillis()); -- String serializedTimestamps = -- prefService.getString(Pref.COMMERCE_MERCHANT_VIEWER_MESSAGES_SHOWN_TIME); -- if (TextUtils.isEmpty(serializedTimestamps)) { -- prefService.setString( -- Pref.COMMERCE_MERCHANT_VIEWER_MESSAGES_SHOWN_TIME, currentTimestamp); -- } else { -- serializedTimestamps += "_" + currentTimestamp; -- String[] timestamps = serializedTimestamps.split("_"); -- int maxAllowedNumber = -- MerchantViewerConfig.getTrustSignalsMaxAllowedNumberInGivenWindow(); -- if (timestamps.length <= maxAllowedNumber) { -- prefService.setString( -- Pref.COMMERCE_MERCHANT_VIEWER_MESSAGES_SHOWN_TIME, serializedTimestamps); -- } else { -- assert timestamps.length == maxAllowedNumber + 1; -- // Remove the earliest timestamp. -- prefService.setString(Pref.COMMERCE_MERCHANT_VIEWER_MESSAGES_SHOWN_TIME, -- serializedTimestamps.substring(timestamps[0].length() + 1)); -- } -- } -- } -- -- @VisibleForTesting -- PrefService getPrefService() { -- Profile profile = mProfileSupplier.get(); -- if (profile == null || profile.isOffTheRecord()) { -- return null; -- } -- return UserPrefs.get(profile); -- } -- -- @VisibleForTesting -- void maybeShowStoreIcon(@Nullable String messageAssociatedUrl, boolean canShowIph) { -- if (isStoreInfoFeatureEnabled() && mOmniboxIconController != null -- && messageAssociatedUrl != null) { -- mOmniboxIconController.showStoreIcon(mWindowAndroid, messageAssociatedUrl, -- getStoreIconDrawable(), R.string.merchant_viewer_omnibox_icon_iph, canShowIph); -- } -- } -- -- @VisibleForTesting -- boolean isStoreInfoFeatureEnabled() { -- return PageInfoFeatures.PAGE_INFO_STORE_INFO.isEnabled(); -- } -- -- @VisibleForTesting -- Drawable getStoreIconDrawable() { -- return ResourcesCompat.getDrawable( -- mContext.getResources(), R.drawable.ic_storefront_blue, mContext.getTheme()); - } - } -diff --git a/chrome/browser/commerce/merchant_viewer/android/java/src/org/chromium/chrome/browser/merchant_viewer/PageInfoStoreInfoController.java b/chrome/browser/commerce/merchant_viewer/android/java/src/org/chromium/chrome/browser/merchant_viewer/PageInfoStoreInfoController.java ---- a/chrome/browser/commerce/merchant_viewer/android/java/src/org/chromium/chrome/browser/merchant_viewer/PageInfoStoreInfoController.java -+++ b/chrome/browser/commerce/merchant_viewer/android/java/src/org/chromium/chrome/browser/merchant_viewer/PageInfoStoreInfoController.java -@@ -12,7 +12,6 @@ import androidx.annotation.Nullable; - - import org.chromium.base.supplier.Supplier; - import org.chromium.chrome.browser.commerce.ShoppingServiceFactory; --import org.chromium.chrome.browser.merchant_viewer.MerchantTrustMessageViewModel.MessageDescriptionUI; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.tab_ui.R; - import org.chromium.components.commerce.core.ShoppingService.MerchantInfo; -@@ -61,8 +60,6 @@ public class PageInfoStoreInfoController implements PageInfoSubpageController { - // the feature flag first. - if (profile != null - && ShoppingServiceFactory.getForProfile(profile).isMerchantViewerEnabled()) { -- new MerchantTrustSignalsDataProvider().getDataForUrl( -- profile, mMainController.getURL(), this::setupStoreInfoRow); - } else { - setupStoreInfoRow(null); - } -@@ -103,9 +100,6 @@ public class PageInfoStoreInfoController implements PageInfoSubpageController { - - private CharSequence getRowSubtitle(MerchantInfo merchantInfo) { - if (merchantInfo.starRating > 0) { -- CharSequence subTitle = MerchantTrustMessageViewModel.getMessageDescription( -- mContext, merchantInfo, MessageDescriptionUI.RATING_AND_REVIEWS); -- if (subTitle != null) return subTitle; - } else if (merchantInfo.hasReturnPolicy) { - return mContext.getResources().getString( - R.string.page_info_store_info_description_with_no_rating); -diff --git a/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java b/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java ---- a/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java -+++ b/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java -@@ -77,7 +77,7 @@ public class PriceTrackingFeatures { - * @return Whether the price drop notification is eligible to work. - */ - public static boolean isPriceDropNotificationEligible() { -- return isPriceTrackingEligible() && getPriceTrackingNotificationsEnabled(); -+ return false; - } - - private static boolean isSignedIn() { -diff --git a/chrome/browser/commerce/subscriptions/android/BUILD.gn b/chrome/browser/commerce/subscriptions/android/BUILD.gn ---- a/chrome/browser/commerce/subscriptions/android/BUILD.gn -+++ b/chrome/browser/commerce/subscriptions/android/BUILD.gn -@@ -16,7 +16,6 @@ android_library("subscriptions_java") { - "//base:jni_java", - "//build/android:build_java", - "//chrome/browser/android/lifecycle:java", -- "//chrome/browser/commerce/price_tracking/android:java", - "//chrome/browser/endpoint_fetcher:java", - "//chrome/browser/flags:java", - "//chrome/browser/preferences:java", -diff --git a/chrome/browser/commerce/subscriptions/android/java/src/org/chromium/chrome/browser/subscriptions/CommerceSubscriptionsService.java b/chrome/browser/commerce/subscriptions/android/java/src/org/chromium/chrome/browser/subscriptions/CommerceSubscriptionsService.java ---- a/chrome/browser/commerce/subscriptions/android/java/src/org/chromium/chrome/browser/subscriptions/CommerceSubscriptionsService.java -+++ b/chrome/browser/commerce/subscriptions/android/java/src/org/chromium/chrome/browser/subscriptions/CommerceSubscriptionsService.java -@@ -11,8 +11,6 @@ import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; - import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; - import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; - import org.chromium.chrome.browser.preferences.SharedPreferencesManager; --import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManager; --import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures; - import org.chromium.chrome.browser.tabmodel.TabModelSelector; - import org.chromium.components.commerce.core.ShoppingService; - -@@ -32,18 +30,14 @@ public class CommerceSubscriptionsService implements Destroyable { - ChromePreferenceKeys.COMMERCE_SUBSCRIPTIONS_CHROME_MANAGED_TIMESTAMP; - - private final SharedPreferencesManager mSharedPreferencesManager; -- private final PriceDropNotificationManager mPriceDropNotificationManager; -- private ImplicitPriceDropSubscriptionsManager mImplicitPriceDropSubscriptionsManager; - private ActivityLifecycleDispatcher mActivityLifecycleDispatcher; - private PauseResumeWithNativeObserver mPauseResumeWithNativeObserver; - private ShoppingService mShoppingService; - - /** Creates a new instance. */ -- CommerceSubscriptionsService(ShoppingService shoppingService, -- PriceDropNotificationManager priceDropNotificationManager) { -+ CommerceSubscriptionsService(ShoppingService shoppingService) { - mShoppingService = shoppingService; - mSharedPreferencesManager = SharedPreferencesManager.getInstance(); -- mPriceDropNotificationManager = priceDropNotificationManager; - } - - /** Performs any deferred startup tasks required by {@link Subscriptions}. */ -@@ -60,12 +54,6 @@ public class CommerceSubscriptionsService implements Destroyable { - public void onPauseWithNative() {} - }; - mActivityLifecycleDispatcher.register(mPauseResumeWithNativeObserver); -- -- if (CommerceSubscriptionsServiceConfig.isImplicitSubscriptionsEnabled() -- && mImplicitPriceDropSubscriptionsManager == null) { -- mImplicitPriceDropSubscriptionsManager = -- new ImplicitPriceDropSubscriptionsManager(tabModelSelector, mShoppingService); -- } - } - - /** -@@ -76,10 +64,6 @@ public class CommerceSubscriptionsService implements Destroyable { - if (mActivityLifecycleDispatcher != null) { - mActivityLifecycleDispatcher.unregister(mPauseResumeWithNativeObserver); - } -- if (mImplicitPriceDropSubscriptionsManager != null) { -- mImplicitPriceDropSubscriptionsManager.destroy(); -- mImplicitPriceDropSubscriptionsManager = null; -- } - } - - private void maybeRecordMetricsAndInitializeSubscriptions() { -@@ -92,21 +76,5 @@ public class CommerceSubscriptionsService implements Destroyable { - } - mSharedPreferencesManager.writeLong( - CHROME_MANAGED_SUBSCRIPTIONS_TIMESTAMP, System.currentTimeMillis()); -- if (!PriceTrackingFeatures.isPriceDropNotificationEligible()) return; -- recordMetricsForEligibleAccount(); -- if (mImplicitPriceDropSubscriptionsManager != null) { -- mImplicitPriceDropSubscriptionsManager.initializeSubscriptions(); -- } -- } -- -- private void recordMetricsForEligibleAccount() { -- // Record notification opt-in metrics. -- mPriceDropNotificationManager.canPostNotificationWithMetricsRecorded(); -- mPriceDropNotificationManager.recordMetricsForNotificationCounts(); -- } -- -- @VisibleForTesting -- void setImplicitSubscriptionsManagerForTesting(ImplicitPriceDropSubscriptionsManager manager) { -- mImplicitPriceDropSubscriptionsManager = manager; - } - } -diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc ---- a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc -+++ b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc -@@ -114,10 +114,6 @@ OptimizationGuideKeyedService::MaybeCreatePushNotificationManager( - if (optimization_guide::features::IsPushNotificationsEnabled()) { - auto push_notification_manager = - std::make_unique(); --#if BUILDFLAG(IS_ANDROID) -- push_notification_manager->AddObserver( -- PriceTrackingNotificationBridge::GetForBrowserContext(profile)); --#endif - return push_notification_manager; - } - return nullptr; -diff --git a/chrome/browser/persisted_state_db/BUILD.gn b/chrome/browser/persisted_state_db/BUILD.gn ---- a/chrome/browser/persisted_state_db/BUILD.gn -+++ b/chrome/browser/persisted_state_db/BUILD.gn -@@ -21,7 +21,6 @@ source_set("persisted_state_db") { - deps = [ - "//base:base", - "//chrome/browser/profiles:profile", -- "//components/commerce/core:commerce_subscription_db_content_proto", - "//components/commerce/core:persisted_state_db_content_proto", - "//components/keyed_service/content", - "//components/leveldb_proto", -diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc ---- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -557,9 +557,6 @@ void ChromeBrowserMainExtraPartsProfiles:: - #if !BUILDFLAG(IS_ANDROID) - CartServiceFactory::GetInstance(); - #endif --#if BUILDFLAG(IS_ANDROID) -- MerchantViewerDataManagerFactory::GetInstance(); --#endif - #if BUILDFLAG(IS_CHROMEOS_LACROS) - CertDbInitializerFactory::GetInstance(); - #endif -diff --git a/chrome/browser/tab/BUILD.gn b/chrome/browser/tab/BUILD.gn ---- a/chrome/browser/tab/BUILD.gn -+++ b/chrome/browser/tab/BUILD.gn -@@ -75,7 +75,6 @@ android_library("java") { - "//base:jni_java", - "//build/android:build_java", - "//chrome/browser/android/crypto:java", -- "//chrome/browser/commerce/android:java", - "//chrome/browser/contextmenu:java", - "//chrome/browser/endpoint_fetcher:java", - "//chrome/browser/flags:java", -diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CouponPersistedTabData.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CouponPersistedTabData.java ---- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CouponPersistedTabData.java -+++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CouponPersistedTabData.java -@@ -18,7 +18,6 @@ import org.chromium.base.Log; - import org.chromium.base.supplier.ObservableSupplierImpl; - import org.chromium.base.task.PostTask; - import org.chromium.base.task.TaskTraits; --import org.chromium.chrome.browser.commerce.PriceUtils; - import org.chromium.chrome.browser.endpoint_fetcher.EndpointFetcher; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.tab.EmptyTabObserver; -@@ -212,8 +211,7 @@ public class CouponPersistedTabData extends PersistedTabData { - new CurrencyFormatter(mCoupon.currencyCode, Locale.getDefault()); - long unitsInMicros = mCoupon.discountUnits * MICROS_TO_UNITS; - -- String annotationText = -- PriceUtils.formatPrice(mCurrencyFormatter, unitsInMicros) + OFF_STRING; -+ String annotationText = ""; - mCurrencyFormatter.destroy(); - - return annotationText; -diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabData.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabData.java ---- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabData.java -+++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabData.java -@@ -19,7 +19,6 @@ import org.chromium.base.supplier.ObservableSupplierImpl; - import org.chromium.base.task.PostTask; - import org.chromium.base.task.TaskTraits; - import org.chromium.build.annotations.DoNotClassMerge; --import org.chromium.chrome.browser.commerce.PriceUtils; - import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.optimization_guide.OptimizationGuideBridgeFactory; - import org.chromium.chrome.browser.page_annotations.BuyableProductPageAnnotation; -@@ -952,7 +951,7 @@ public class ShoppingPersistedTabData extends PersistedTabData { - return ""; - } - CurrencyFormatter currencyFormatter = getCurrencyFormatter(mPriceDropData.currencyCode); -- return PriceUtils.formatPrice(currencyFormatter, priceMicros); -+ return ""; - } - - private CurrencyFormatter getCurrencyFormatter(String currencyCode) { -diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn ---- a/chrome/browser/ui/android/omnibox/BUILD.gn -+++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -447,7 +447,6 @@ robolectric_library("junit") { - "//base:base_junit_test_support", - "//build/android:build_java", - "//chrome/android:base_module_java", -- "//chrome/browser/commerce/merchant_viewer/android:java", - "//chrome/browser/device:java", - "//chrome/browser/flags:java", - "//chrome/browser/gsa:java", -diff --git a/components/bookmarks/common/android/java/src/org/chromium/components/bookmarks/BookmarkId.java b/components/bookmarks/common/android/java/src/org/chromium/components/bookmarks/BookmarkId.java ---- a/components/bookmarks/common/android/java/src/org/chromium/components/bookmarks/BookmarkId.java -+++ b/components/bookmarks/common/android/java/src/org/chromium/components/bookmarks/BookmarkId.java -@@ -15,9 +15,6 @@ import org.chromium.base.annotations.CalledByNative; - public class BookmarkId { - public static final int INVALID_FOLDER_ID = -2; - public static final int INVALID_ID = -1; -- public static final int SHOPPING_FILTER_ID = -3; -- public static final BookmarkId SHOPPING_FOLDER = -- new BookmarkId(SHOPPING_FILTER_ID, BookmarkType.NORMAL); - - private static final String LOG_TAG = "BookmarkId"; - private static final char TYPE_PARTNER = 'p'; -diff --git a/components/commerce/core/commerce_feature_list.cc b/components/commerce/core/commerce_feature_list.cc ---- a/components/commerce/core/commerce_feature_list.cc -+++ b/components/commerce/core/commerce_feature_list.cc -@@ -110,62 +110,50 @@ const char kEnableChromeCart[] = "enable-chrome-cart"; - } // namespace switches - - BASE_FEATURE(kCommerceAllowLocalImages, -- "CommerceAllowLocalImages", -- base::FEATURE_DISABLED_BY_DEFAULT); -+ "CommerceAllowLocalImages", // guard this -+ base::FEATURE_DISABLED_BY_DEFAULT); // guard this - - BASE_FEATURE(kCommerceAllowOnDemandBookmarkUpdates, -- "CommerceAllowOnDemandBookmarkUpdates", -- base::FEATURE_ENABLED_BY_DEFAULT); -+ "CommerceAllowOnDemandBookmarkUpdates",// guard this -+ base::FEATURE_DISABLED_BY_DEFAULT); // guard this - - BASE_FEATURE(kCommerceAllowServerImages, -- "CommerceAllowServerImages", -- base::FEATURE_ENABLED_BY_DEFAULT); -+ "CommerceAllowServerImages", // guard this -+ base::FEATURE_DISABLED_BY_DEFAULT); // guard this - - BASE_FEATURE(kCommerceCoupons, -- "CommerceCoupons", -- base::FEATURE_DISABLED_BY_DEFAULT); -+ "CommerceCoupons", // guard this -+ base::FEATURE_DISABLED_BY_DEFAULT); // guard this - - BASE_FEATURE(kCommerceMerchantViewer, -- "CommerceMerchantViewer", -- base::FEATURE_DISABLED_BY_DEFAULT); --#if BUILDFLAG(IS_ANDROID) --BASE_FEATURE(kCommerceMerchantViewerRegionLaunched, -- "CommerceMerchantViewerRegionLaunched", -- base::FEATURE_ENABLED_BY_DEFAULT); --#else -+ "CommerceMerchantViewer", // guard this -+ base::FEATURE_DISABLED_BY_DEFAULT); // guard this -+ - BASE_FEATURE(kCommerceMerchantViewerRegionLaunched, - "CommerceMerchantViewerRegionLaunched", - base::FEATURE_DISABLED_BY_DEFAULT); --#endif // BUILDFLAG(IS_ANDROID) - - BASE_FEATURE(kCommercePriceTracking, -- "CommercePriceTracking", -- base::FEATURE_DISABLED_BY_DEFAULT); -+ "CommercePriceTracking", // guard this -+ base::FEATURE_DISABLED_BY_DEFAULT); // guard this - - const base::FeatureParam kDeleteAllMerchantsOnClearBrowsingHistory{ - &kCommerceMerchantViewer, "delete_all_merchants_on_clear_history", false}; - --BASE_FEATURE(kShoppingList, "ShoppingList", base::FEATURE_DISABLED_BY_DEFAULT); --#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ -- BUILDFLAG(IS_LINUX) --BASE_FEATURE(kShoppingListRegionLaunched, -- "ShoppingListRegionLaunched", -- base::FEATURE_ENABLED_BY_DEFAULT); --#else -+BASE_FEATURE(kShoppingList, "ShoppingList", base::FEATURE_DISABLED_BY_DEFAULT); // guard this - BASE_FEATURE(kShoppingListRegionLaunched, -- "ShoppingListRegionLaunched", -- base::FEATURE_DISABLED_BY_DEFAULT); --#endif -+ "ShoppingListRegionLaunched", // guard this -+ base::FEATURE_DISABLED_BY_DEFAULT); // guard this - - BASE_FEATURE(kShoppingPDPMetrics, - "ShoppingPDPMetrics", - base::FEATURE_DISABLED_BY_DEFAULT); - - BASE_FEATURE(kShoppingPDPMetricsRegionLaunched, -- "ShoppingPDPMetricsRegionLaunched", -- base::FEATURE_ENABLED_BY_DEFAULT); -+ "ShoppingPDPMetricsRegionLaunched", // guard this -+ base::FEATURE_DISABLED_BY_DEFAULT); // guard this - --BASE_FEATURE(kRetailCoupons, "RetailCoupons", base::FEATURE_ENABLED_BY_DEFAULT); -+BASE_FEATURE(kRetailCoupons, "RetailCoupons", base::FEATURE_DISABLED_BY_DEFAULT); // guard this - - BASE_FEATURE(kCommerceDeveloper, - "CommerceDeveloper", -@@ -176,21 +164,21 @@ const char kRetailCouponsWithCodeParam[] = "RetailCouponsWithCodeParam"; - // Params use for Discount Consent v2. - BASE_FEATURE(kDiscountConsentV2, - "DiscountConsentV2", -- base::FEATURE_ENABLED_BY_DEFAULT); -+ base::FEATURE_DISABLED_BY_DEFAULT); // guard this - - BASE_FEATURE(kCommerceHintAndroid, -- "CommerceHintAndroid", -- base::FEATURE_DISABLED_BY_DEFAULT); -+ "CommerceHintAndroid", // guard this -+ base::FEATURE_DISABLED_BY_DEFAULT); // guard this - - BASE_FEATURE(kMerchantWidePromotion, -- "MerchantWidePromotion", -- base::FEATURE_ENABLED_BY_DEFAULT); -+ "MerchantWidePromotion", // guard this -+ base::FEATURE_ENABLED_BY_DEFAULT); // guard this - - BASE_FEATURE(kCodeBasedRBD, "CodeBasedRBD", base::FEATURE_DISABLED_BY_DEFAULT); - - BASE_FEATURE(kChromeCartDomBasedHeuristics, -- "ChromeCartDomBasedHeuristics", -- base::FEATURE_DISABLED_BY_DEFAULT); -+ "ChromeCartDomBasedHeuristics", // guard this -+ base::FEATURE_DISABLED_BY_DEFAULT); // guard this - - // Params for Discount Consent V2 in the NTP Cart module. - const char kNtpChromeCartModuleDiscountConsentNtpVariationParam[] = -@@ -383,6 +371,7 @@ std::string GetCurrentCountryCode(variations::VariationsService* variations) { - bool IsEnabledForCountryAndLocale(const base::Feature& feature, - std::string country, - std::string locale) { -+ if ((true)) return false; - const CountryLocaleMap& allowedCountryLocales = - GetAllowedCountryToLocaleMap(); - --- -2.25.1 diff --git a/build/patches/Remove-signin-and-sync-integrations.patch b/build/patches/Remove-signin-and-sync-integrations.patch deleted file mode 100644 index 63f18e08..00000000 --- a/build/patches/Remove-signin-and-sync-integrations.patch +++ /dev/null @@ -1,5862 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Tue, 12 Jun 2018 14:23:07 +0200 -Subject: Remove signin and sync integrations - -Prevents authorization prompt for Play services on reboot -Remove recent tabs signin -Disable unused permissions from manifest -Disable sync adaptive and invalidation services from manifest -More permissions removal from manifest -Disable promos displayed in bookmarks manager -Remove personalized signin promo view from -bookmarks, never reach signin thresholds. - -Fix building with debug symbols: - -ld.lld: error: undefined symbol: notifier::NotifierOptions::NotifierOptions() ->>> referenced by invalidation_service_util.cc:17 (../../components/invalidation/impl/invalidation_service_util.cc:17) ->>> impl/invalidation_service_util.o:(invalidation::ParseNotifierOptions(base::CommandLine const&)) in archive obj/components/invalidation/impl/libimpl.a - -License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ---- - chrome/android/BUILD.gn | 18 -- - chrome/android/chrome_java_sources.gni | 30 --- - chrome/android/features/tab_ui/BUILD.gn | 1 - - .../browser/feed/FeedSurfaceCoordinator.java | 9 +- - .../browser/feed/FeedSurfaceMediator.java | 76 +----- - chrome/android/java/AndroidManifest.xml | 19 -- - .../res/xml/google_services_preferences.xml | 10 - - .../android/java/res/xml/main_preferences.xml | 22 +- - .../java/res/xml/manage_sync_preferences.xml | 12 - - .../java/res/xml/privacy_preferences.xml | 4 - - .../java/res/xml/privacy_preferences_v2.xml | 4 - - .../org/chromium/chrome/browser/AppHooks.java | 34 --- - .../chrome/browser/ChromeBackupAgentImpl.java | 9 +- - .../chrome/browser/ChromeBackupWatcher.java | 10 - - .../chrome/browser/ChromeTabbedActivity.java | 9 - - .../chrome/browser/app/ChromeActivity.java | 75 ------ - .../creator/CreatorActionDelegateImpl.java | 3 - - .../app/feed/FeedActionDelegateImpl.java | 3 - - .../autofill/settings/AddressEditor.java | 16 +- - .../browser/bookmarks/BookmarkListEntry.java | 7 +- - .../bookmarks/BookmarkManagerCoordinator.java | 20 -- - .../bookmarks/BookmarkManagerMediator.java | 56 +---- - .../bookmarks/BookmarkManagerViewBinder.java | 11 - - .../bookmarks/BookmarkPromoHeader.java | 230 +----------------- - .../ClearBrowsingDataFragment.java | 76 ------ - .../ClearBrowsingDataFragmentBasic.java | 27 +- - .../contacts_picker/ChromePickerAdapter.java | 67 +---- - .../browser/customtabs/CustomTabActivity.java | 7 - - .../firstrun/LightweightFirstRunActivity.java | 4 +- - .../history/HistoryContentManager.java | 25 +- - .../identity_disc/IdentityDiscController.java | 120 +-------- - .../init/ChromeBrowserInitializer.java | 2 - - .../init/ProcessInitializationHandler.java | 9 - - .../chrome/browser/ntp/RecentTabsManager.java | 129 +--------- - .../browser/ntp/RecentTabsRowAdapter.java | 31 +-- - .../browser/ntp/search/SearchBoxMediator.java | 1 - - .../browser/omaha/RequestGenerator.java | 3 - - .../AccountChooserDialog.java | 2 +- - .../AutoSigninSnackbarController.java | 2 +- - .../PasswordManagerLauncher.java | 4 +- - .../settings/PasswordSettings.java | 71 +----- - .../browser/payments/ui/PaymentRequestUI.java | 12 +- - .../privacy/settings/PrivacySettings.java | 31 --- - .../chrome/browser/settings/MainSettings.java | 96 +------- - .../browser/settings/SettingsActivity.java | 9 - - .../survey/ChromeSurveyController.java | 4 +- - .../tabbed_mode/TabbedRootUiCoordinator.java | 19 -- - chrome/browser/BUILD.gn | 9 - - ...mobile_identity_consistency_field_trial.cc | 13 +- - chrome/browser/commerce/android/BUILD.gn | 2 - - .../PriceNotificationPreferenceFragment.java | 8 +- - .../price_tracking/PriceTrackingFeatures.java | 9 +- - .../commerce/subscriptions/android/BUILD.gn | 1 - - .../subscriptions/android/java_sources.gni | 1 - - chrome/browser/feed/android/BUILD.gn | 1 - - .../chrome/browser/feed/FeedFeatures.java | 2 - - .../browser/feed/FeedServiceBridge.java | 2 +- - .../SigninBottomSheetCoordinator.java | 28 +-- - chrome/browser/feedback/android/BUILD.gn | 1 - - .../browser/feedback/FeedbackCollector.java | 9 - - .../browser/firstrun/MobileFreProgress.java | 4 +- - .../router/discovery/access_code/BUILD.gn | 1 - - .../browser/password_manager/android/BUILD.gn | 4 - - ...sswordManagerErrorMessageHelperBridge.java | 26 -- - .../PasswordManagerHelper.java | 146 +---------- - ...StoreAndroidBackendReceiverBridgeImpl.java | 10 - - ...swordSyncControllerDelegateBridgeImpl.java | 6 +- - ...d_manager_settings_service_android_impl.cc | 59 +---- - chrome/browser/privacy/BUILD.gn | 1 - - chrome/browser/privacy_guide/android/BUILD.gn | 2 - - .../res/layout/privacy_guide_msbb_step.xml | 7 - - .../browser/privacy_guide/MSBBFragment.java | 9 - - .../privacy_guide/PrivacyGuideUtils.java | 5 +- - ...hrome_browser_main_extra_parts_profiles.cc | 3 +- - chrome/browser/search_resumption/BUILD.gn | 4 - - .../SearchResumptionModuleMediator.java | 37 +-- - .../SearchResumptionModuleUtils.java | 12 - - .../ManageAccountDevicesLinkView.java | 28 +-- - .../SendTabToSelfCoordinator.java | 152 ------------ - .../account_consistency_mode_manager.cc | 7 +- - .../signin/identity_manager_factory.cc | 5 - - .../identity_services_provider_android.cc | 13 - - .../services/IdentityServicesProvider.java | 13 - - chrome/browser/supervised_user/BUILD.gn | 1 - - .../WebsiteApprovalMediator.java | 24 -- - chrome/browser/sync/sync_service_factory.cc | 12 +- - chrome/browser/ui/android/omnibox/BUILD.gn | 2 - - .../browser/omnibox/LocationBarMediator.java | 1 - - ...onfirmImportSyncDataDialogCoordinator.java | 7 +- - .../signin/ConfirmSyncDataStateMachine.java | 16 +- - .../ui/signin/SignOutDialogCoordinator.java | 34 +-- - .../ui/signin/SyncConsentFragmentBase.java | 106 +------- - .../ui/signin/SyncPromoController.java | 15 +- - .../WebSigninAccountPickerDelegate.java | 23 -- - .../ui/signin/fre/SigninFirstRunMediator.java | 64 +---- - .../strings/android_chrome_strings.grd | 18 -- - .../core/browser/leak_detection_delegate.cc | 2 +- - .../core/browser/password_form_manager.cc | 34 +-- - .../browser/password_manager_client_helper.cc | 45 +--- - .../core/browser/sync_credentials_filter.cc | 49 +--- - components/signin/features.gni | 4 +- - .../primary_account_manager.cc | 17 +- - ...e_oauth2_token_service_delegate_android.cc | 125 +--------- - ...le_oauth2_token_service_delegate_android.h | 10 - - .../signin/SystemAccountManagerDelegate.java | 25 +- - .../ProfileOAuth2TokenServiceDelegate.java | 52 ---- - .../net/HttpNegotiateAuthenticator.java | 88 +------ - .../chromoting/base/OAuthTokenFetcher.java | 2 - - 108 files changed, 110 insertions(+), 2745 deletions(-) - -diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn ---- a/chrome/android/BUILD.gn -+++ b/chrome/android/BUILD.gn -@@ -135,7 +135,6 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/password_manager/android:java_resources", - "//chrome/browser/quick_delete:java_resources", - "//chrome/browser/search_resumption:java_resources", -- "//chrome/browser/signin/services/android:java_resources", - "//chrome/browser/tab:java_resources", - "//chrome/browser/ui/android/appmenu:java_resources", - "//chrome/browser/ui/android/favicon:java_resources", -@@ -338,7 +337,6 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/share:java", - "//chrome/browser/share/android:java_resources", - "//chrome/browser/signin/services/android:java", -- "//chrome/browser/sync/android:java", - "//chrome/browser/tab:java", - "//chrome/browser/tab_group:java", - "//chrome/browser/tabmodel:factory_java", -@@ -488,7 +486,6 @@ if (current_toolchain == default_toolchain) { - "//components/strictmode/android:java", - "//components/stylus_handwriting/android:java", - "//components/subresource_filter/android:java", -- "//components/sync/android:sync_java", - "//components/sync/protocol:protocol_java", - "//components/sync_device_info:sync_device_info_java", - "//components/thin_webview:factory_java", -@@ -933,9 +930,6 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/segmentation_platform:factory_java", - "//chrome/browser/settings:junit_test_support", - "//chrome/browser/share:java", -- "//chrome/browser/signin/services/android:java", -- "//chrome/browser/signin/services/android:junit", -- "//chrome/browser/sync/android:java", - "//chrome/browser/tab:java", - "//chrome/browser/tab:junit", - "//chrome/browser/tab_group:java", -@@ -969,8 +963,6 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/ui/android/omnibox:junit", - "//chrome/browser/ui/android/quickactionsearchwidget:java", - "//chrome/browser/ui/android/searchactivityutils:java", -- "//chrome/browser/ui/android/signin:java", -- "//chrome/browser/ui/android/signin:junit", - "//chrome/browser/ui/android/theme:java", - "//chrome/browser/ui/android/toolbar:java", - "//chrome/browser/ui/android/toolbar:junit", -@@ -1062,7 +1054,6 @@ if (current_toolchain == default_toolchain) { - "//components/signin/core/browser:signin_enums_java", - "//components/signin/public/android:java", - "//components/signin/public/android:signin_java_test_support", -- "//components/sync/android:sync_java", - "//components/sync_device_info:sync_device_info_java", - "//components/translate/content/android:junit", - "//components/ukm/android:java", -@@ -1499,10 +1490,8 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/settings:test_support_java", - "//chrome/browser/share:java", - "//chrome/browser/share/android:java_resources", -- "//chrome/browser/signin/services/android:java", - "//chrome/browser/supervised_user:javatests", - "//chrome/browser/supervised_user:test_support_java", -- "//chrome/browser/sync/android:java", - "//chrome/browser/sync/test/android:test_support_java", - "//chrome/browser/tab:critical_persisted_tab_data_flatbuffer_java", - "//chrome/browser/tab:critical_persisted_tab_data_proto_java", -@@ -1528,8 +1517,6 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/ui/android/quickactionsearchwidget:java", - "//chrome/browser/ui/android/quickactionsearchwidget:javatests", - "//chrome/browser/ui/android/searchactivityutils:java", -- "//chrome/browser/ui/android/signin:java", -- "//chrome/browser/ui/android/signin:javatests", - "//chrome/browser/ui/android/theme:java", - "//chrome/browser/ui/android/toolbar:java", - "//chrome/browser/ui/messages/android:java", -@@ -1645,7 +1632,6 @@ if (current_toolchain == default_toolchain) { - "//components/signin/public/android:java", - "//components/signin/public/android:signin_java_test_support", - "//components/site_engagement/content/android:java", -- "//components/sync/android:sync_java", - "//components/sync/protocol:protocol_java", - "//components/sync_device_info:sync_device_info_java", - "//components/url_formatter/android:url_formatter_java", -@@ -2337,7 +2323,6 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/download/android:java", - "//chrome/browser/prefetch/android:java", - "//chrome/browser/profiles/android:java", -- "//chrome/browser/sync/android:java", - "//chrome/browser/tab:java", - "//components/offline_items_collection/core:core_java", - "//components/sync/protocol:protocol_java", -@@ -2760,13 +2745,11 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/optimization_guide/android:unit_device_javatests", - "//chrome/browser/partnercustomizations:unit_device_javatests", - "//chrome/browser/password_edit_dialog/android:unit_device_javatests", -- "//chrome/browser/signin/services/android:unit_device_javatests", - "//chrome/browser/thumbnail/generator:unit_device_javatests", - "//chrome/browser/ui/android/appmenu/internal:unit_device_javatests", - "//chrome/browser/ui/android/night_mode:unit_device_javatests", - "//chrome/browser/ui/android/omnibox:unit_device_javatests", - "//chrome/browser/ui/android/searchactivityutils:unit_device_javatests", -- "//chrome/browser/ui/android/signin:unit_device_javatests", - "//chrome/browser/ui/messages/android:unit_device_javatests", - "//chrome/browser/video_tutorials/internal:unit_device_javatests", - "//components/browser_ui/bottomsheet/android/internal:unit_device_javatests", -@@ -3623,7 +3606,6 @@ generate_jni("chrome_jni_headers") { - "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMessageHandler.java", - "java/src/org/chromium/chrome/browser/sharing/sms_fetcher/SmsFetcherMessageHandler.java", - "java/src/org/chromium/chrome/browser/signin/SigninBridge.java", -- "java/src/org/chromium/chrome/browser/signin/SigninManagerImpl.java", - "java/src/org/chromium/chrome/browser/site_settings/CookieControlsServiceBridge.java", - "java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer.java", - "java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSites.java", -diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni ---- a/chrome/android/chrome_java_sources.gni -+++ b/chrome/android/chrome_java_sources.gni -@@ -11,7 +11,6 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/AppIndexingUtil.java", - "java/src/org/chromium/chrome/browser/ApplicationLifetime.java", - "java/src/org/chromium/chrome/browser/BackPressHelper.java", -- "java/src/org/chromium/chrome/browser/BackupSigninProcessor.java", - "java/src/org/chromium/chrome/browser/BrowserRestartActivity.java", - "java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java", - "java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java", -@@ -608,14 +607,11 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/firstrun/FirstRunPage.java", - "java/src/org/chromium/chrome/browser/firstrun/FirstRunPageDelegate.java", - "java/src/org/chromium/chrome/browser/firstrun/FirstRunPagerAdapter.java", -- "java/src/org/chromium/chrome/browser/firstrun/FirstRunSignInProcessor.java", - "java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java", -- "java/src/org/chromium/chrome/browser/firstrun/ForcedSigninProcessor.java", - "java/src/org/chromium/chrome/browser/firstrun/FreIntentCreator.java", - "java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java", - "java/src/org/chromium/chrome/browser/firstrun/PolicyLoadListener.java", - "java/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListener.java", -- "java/src/org/chromium/chrome/browser/firstrun/SyncConsentFirstRunFragment.java", - "java/src/org/chromium/chrome/browser/firstrun/TabbedModeFirstRunActivity.java", - "java/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidator.java", - "java/src/org/chromium/chrome/browser/flags/BadFlagsSnackbarManager.java", -@@ -801,7 +797,6 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/ntp/RevampedIncognitoDescriptionView.java", - "java/src/org/chromium/chrome/browser/ntp/SnapScrollHelperImpl.java", - "java/src/org/chromium/chrome/browser/ntp/TitleUtil.java", -- "java/src/org/chromium/chrome/browser/ntp/cards/SignInPromo.java", - "java/src/org/chromium/chrome/browser/ntp/search/SearchBoxContainerView.java", - "java/src/org/chromium/chrome/browser/ntp/search/SearchBoxCoordinator.java", - "java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java", -@@ -1004,14 +999,6 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/sharing/click_to_call/ClickToCallUma.java", - "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMessageHandler.java", - "java/src/org/chromium/chrome/browser/sharing/sms_fetcher/SmsFetcherMessageHandler.java", -- "java/src/org/chromium/chrome/browser/signin/LegacySyncPromoView.java", -- "java/src/org/chromium/chrome/browser/signin/SigninBridge.java", -- "java/src/org/chromium/chrome/browser/signin/SigninCheckerProvider.java", -- "java/src/org/chromium/chrome/browser/signin/SigninFirstRunFragment.java", -- "java/src/org/chromium/chrome/browser/signin/SigninManagerImpl.java", -- "java/src/org/chromium/chrome/browser/signin/SyncConsentActivity.java", -- "java/src/org/chromium/chrome/browser/signin/SyncConsentActivityLauncherImpl.java", -- "java/src/org/chromium/chrome/browser/signin/SyncConsentFragment.java", - "java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java", - "java/src/org/chromium/chrome/browser/site_settings/CookieControlsServiceBridge.java", - "java/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivity.java", -@@ -1051,23 +1038,6 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/supervised_user/ChildAccountService.java", - "java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java", - "java/src/org/chromium/chrome/browser/survey/SurveyController.java", -- "java/src/org/chromium/chrome/browser/sync/SyncErrorNotifier.java", -- "java/src/org/chromium/chrome/browser/sync/TrustedVaultClient.java", -- "java/src/org/chromium/chrome/browser/sync/settings/AccountManagementFragment.java", -- "java/src/org/chromium/chrome/browser/sync/settings/ClearDataProgressDialog.java", -- "java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java", -- "java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java", -- "java/src/org/chromium/chrome/browser/sync/settings/SignInPreference.java", -- "java/src/org/chromium/chrome/browser/sync/settings/SyncErrorCardPreference.java", -- "java/src/org/chromium/chrome/browser/sync/settings/SyncPromoPreference.java", -- "java/src/org/chromium/chrome/browser/sync/settings/SyncSettingsUtils.java", -- "java/src/org/chromium/chrome/browser/sync/ui/PassphraseActivity.java", -- "java/src/org/chromium/chrome/browser/sync/ui/PassphraseCreationDialogFragment.java", -- "java/src/org/chromium/chrome/browser/sync/ui/PassphraseDialogFragment.java", -- "java/src/org/chromium/chrome/browser/sync/ui/PassphraseTypeDialogFragment.java", -- "java/src/org/chromium/chrome/browser/sync/ui/SyncErrorMessage.java", -- "java/src/org/chromium/chrome/browser/sync/ui/SyncErrorMessageImpressionTracker.java", -- "java/src/org/chromium/chrome/browser/sync/ui/SyncTrustedVaultProxyActivity.java", - "java/src/org/chromium/chrome/browser/tab/AccessibilityVisibilityHandler.java", - "java/src/org/chromium/chrome/browser/tab/AutofillSessionLifetimeController.java", - "java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl.java", -diff --git a/chrome/android/features/tab_ui/BUILD.gn b/chrome/android/features/tab_ui/BUILD.gn ---- a/chrome/android/features/tab_ui/BUILD.gn -+++ b/chrome/android/features/tab_ui/BUILD.gn -@@ -202,7 +202,6 @@ android_library("java") { - "//chrome/browser/profiles/android:java", - "//chrome/browser/search_engines/android:java", - "//chrome/browser/share:java", -- "//chrome/browser/signin/services/android:java", - "//chrome/browser/tab:java", - "//chrome/browser/tab_group:java", - "//chrome/browser/tabmodel:java", -diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java ---- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java -+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java -@@ -837,12 +837,7 @@ public class FeedSurfaceCoordinator - - /** @return The {@link View} for this class. */ - View getSigninPromoView() { -- if (mSigninPromoView == null) { -- LayoutInflater inflater = LayoutInflater.from(mRootView.getContext()); -- mSigninPromoView = inflater.inflate( -- R.layout.sync_promo_view_content_suggestions, mRootView, false); -- } -- return mSigninPromoView; -+ return null; - } - - /** -@@ -973,7 +968,7 @@ public class FeedSurfaceCoordinator - - @Override - public boolean isSignedIn() { -- return FeedServiceBridge.isSignedIn(); -+ return false; - } - - @Override -diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java ---- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java -+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java -@@ -36,17 +36,12 @@ import org.chromium.chrome.browser.feed.v2.ContentOrder; - import org.chromium.chrome.browser.feed.v2.FeedUserActionType; - import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.ntp.NewTabPageLaunchOrigin; --import org.chromium.chrome.browser.ntp.cards.SignInPromo; - import org.chromium.chrome.browser.preferences.Pref; - import org.chromium.chrome.browser.preferences.PrefChangeRegistrar; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; --import org.chromium.chrome.browser.signin.services.SigninManager; - import org.chromium.chrome.browser.suggestions.SuggestionsMetrics; - import org.chromium.chrome.browser.ui.native_page.TouchEnabledDelegate; --import org.chromium.chrome.browser.ui.signin.PersonalizedSigninPromoView; --import org.chromium.chrome.browser.ui.signin.SyncPromoController; - import org.chromium.chrome.browser.xsurface.FeedLaunchReliabilityLogger; - import org.chromium.chrome.browser.xsurface.FeedLaunchReliabilityLogger.StreamType; - import org.chromium.chrome.browser.xsurface.ListLayoutHelper; -@@ -120,7 +115,6 @@ public class FeedSurfaceMediator - /** - * The {@link SignInPromo} for the Feed. - * TODO(huayinz): Update content and visibility through a ModelChangeProcessor. -- */ - private class FeedSignInPromo extends SignInPromo { - FeedSignInPromo(SigninManager signinManager) { - super(signinManager); -@@ -141,7 +135,7 @@ public class FeedSurfaceMediator - maybeUpdateSignInPromo(); - } - -- /** Update the content displayed in {@link PersonalizedSigninPromoView}. */ -+ ** Update the content displayed in {@link PersonalizedSigninPromoView}. * - private void maybeUpdateSignInPromo() { - // Only call #setupPromoViewFromCache() if SignInPromo is visible to avoid potentially - // blocking the UI thread for several seconds if the accounts cache is not populated -@@ -159,7 +153,7 @@ public class FeedSurfaceMediator - super.onDismissPromo(); - mCoordinator.updateHeaderViews(false); - } -- } -+ } */ - - /** - * Internal implementation of Stream.StreamsMediator. -@@ -199,7 +193,6 @@ public class FeedSurfaceMediator - private final @Nullable SnapScrollHelper mSnapScrollHelper; - private final Profile mProfile; - private final PrefChangeRegistrar mPrefChangeRegistrar; -- private final SigninManager mSigninManager; - private final TemplateUrlService mTemplateUrlService; - private final PropertyModel mSectionHeaderModel; - private final FeedActionDelegate mActionDelegate; -@@ -210,7 +203,6 @@ public class FeedSurfaceMediator - private HasContentListener mHasContentListener; - private ContentChangedListener mStreamContentChangedListener; - private MemoryPressureCallback mMemoryPressureCallback; -- private @Nullable SignInPromo mSignInPromo; - private RecyclerViewAnimationFinishDetector mRecyclerViewAnimationFinishDetector = - new RecyclerViewAnimationFinishDetector(); - -@@ -254,7 +246,6 @@ public class FeedSurfaceMediator - mContext = context; - mSnapScrollHelper = snapScrollHelper; - mProfile = Profile.getLastUsedRegularProfile(); -- mSigninManager = IdentityServicesProvider.get().getSigninManager(mProfile); - mTemplateUrlService = TemplateUrlServiceFactory.getForProfile(mProfile); - mActionDelegate = actionDelegate; - mOptionsCoordinator = optionsCoordinator; -@@ -477,7 +468,6 @@ public class FeedSurfaceMediator - mFeedMenuModel = buildMenuItems(); - - mCoordinator.initializeBubbleTriggering(); -- mSigninManager.getIdentityManager().addObserver(this); - - mSectionHeaderModel.set(SectionHeaderListProperties.MENU_MODEL_LIST_KEY, mFeedMenuModel); - mSectionHeaderModel.set( -@@ -519,8 +509,6 @@ public class FeedSurfaceMediator - }; - mCoordinator.getRecyclerView().addOnScrollListener(mStreamScrollListener); - -- initStreamHeaderViews(); -- - mMemoryPressureCallback = - pressure -> mCoordinator.getRecyclerView().getRecycledViewPool().clear(); - MemoryPressureListener.addCallback(mMemoryPressureCallback); -@@ -745,27 +733,12 @@ public class FeedSurfaceMediator - } - } - -- private void initStreamHeaderViews() { -- boolean signInPromoVisible = shouldShowSigninPromo(); -- mCoordinator.updateHeaderViews(signInPromoVisible); -- } -- - /** - * Determines whether a signin promo should be shown. - * @return Whether the SignPromo should be visible. - */ - private boolean shouldShowSigninPromo() { -- SyncPromoController.resetNTPSyncPromoLimitsIfHiddenForTooLong(); -- if (!SignInPromo.shouldCreatePromo() -- || !SyncPromoController.canShowSyncPromo( -- SigninAccessPoint.NTP_CONTENT_SUGGESTIONS)) { -- return false; -- } -- if (mSignInPromo == null) { -- mSignInPromo = new FeedSignInPromo(mSigninManager); -- mSignInPromo.setCanShowPersonalizedSuggestions(isSuggestionsVisible()); -- } -- return mSignInPromo.isVisible(); -+ return false; - } - - /** Clear any dependencies related to the {@link Stream}. */ -@@ -780,11 +753,6 @@ public class FeedSurfaceMediator - MemoryPressureListener.removeCallback(mMemoryPressureCallback); - mMemoryPressureCallback = null; - -- if (mSignInPromo != null) { -- mSignInPromo.destroy(); -- mSignInPromo = null; -- } -- - unbindStream(); - for (Stream s : mTabToStreamMap.values()) { - s.removeOnContentChangedListener(mStreamContentChangedListener); -@@ -795,7 +763,6 @@ public class FeedSurfaceMediator - - mPrefChangeRegistrar.removeObserver(Pref.ARTICLES_LIST_VISIBLE); - mTemplateUrlService.removeObserver(this); -- mSigninManager.getIdentityManager().removeObserver(this); - - mSectionHeaderModel.get(SectionHeaderListProperties.SECTION_HEADERS_KEY).clear(); - -@@ -865,9 +832,6 @@ public class FeedSurfaceMediator - // Update toggleswitch item, which is last item in list. - mSectionHeaderModel.set(SectionHeaderListProperties.MENU_MODEL_LIST_KEY, buildMenuItems()); - -- if (mSignInPromo != null) { -- mSignInPromo.setCanShowPersonalizedSuggestions(suggestionsVisible); -- } - if (suggestionsVisible) mCoordinator.getSurfaceLifecycleManager().show(); - mStreamContentChanged = true; - -@@ -945,35 +909,6 @@ public class FeedSurfaceMediator - - private ModelList buildMenuItems() { - ModelList itemList = new ModelList(); -- int iconId = 0; -- if (FeedServiceBridge.isSignedIn()) { -- if (ChromeFeatureList.isEnabled(ChromeFeatureList.WEB_FEED)) { -- itemList.add(buildMenuListItem( -- R.string.ntp_manage_feed, R.id.ntp_feed_header_menu_item_manage, iconId)); -- } else { -- itemList.add(buildMenuListItem(R.string.ntp_manage_my_activity, -- R.id.ntp_feed_header_menu_item_activity, iconId)); -- itemList.add(buildMenuListItem(R.string.ntp_manage_interests, -- R.id.ntp_feed_header_menu_item_interest, iconId)); -- if (FeedServiceBridge.isAutoplayEnabled()) { -- itemList.add(buildMenuListItem(R.string.ntp_manage_autoplay, -- R.id.ntp_feed_header_menu_item_autoplay, iconId)); -- } -- if (ChromeFeatureList.isEnabled(ChromeFeatureList.INTEREST_FEED_V2_HEARTS)) { -- itemList.add(buildMenuListItem(R.string.ntp_manage_reactions, -- R.id.ntp_feed_header_menu_item_reactions, iconId)); -- } -- } -- } else if (FeedServiceBridge.isAutoplayEnabled()) { -- // Show manage autoplay if not signed in. -- itemList.add(buildMenuListItem( -- R.string.ntp_manage_autoplay, R.id.ntp_feed_header_menu_item_autoplay, iconId)); -- } -- itemList.add(buildMenuListItem( -- R.string.learn_more, R.id.ntp_feed_header_menu_item_learn, iconId)); -- itemList.add(getMenuToggleSwitch( -- mSectionHeaderModel.get(SectionHeaderListProperties.IS_SECTION_ENABLED_KEY), -- iconId)); - return itemList; - } - -@@ -1159,11 +1094,6 @@ public class FeedSurfaceMediator - updateSectionHeader(); - } - -- @VisibleForTesting -- public SignInPromo getSignInPromoForTesting() { -- return mSignInPromo; -- } -- - void manualRefresh(Callback callback) { - if (mCurrentStream != null) { - mCurrentStream.triggerRefresh(callback); -diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml ---- a/chrome/android/java/AndroidManifest.xml -+++ b/chrome/android/java/AndroidManifest.xml -@@ -73,9 +73,7 @@ by a child template that "extends" this file. - - - -- - -- - - - -@@ -86,7 +84,6 @@ by a child template that "extends" this file. - - - -- - - - -@@ -131,8 +128,6 @@ by a child template that "extends" this file. - - - -- -- - {% block extra_uses_permissions %} - {% endblock %} - -@@ -564,15 +559,6 @@ by a child template that "extends" this file. - TODO(crbug.com/1093292): investigate why - @android:style/Theme.NoDisplay can't be used here. - --> -- -- -- -- - - - {% endif %} -- -- - -- -- - - -- - -- -- -- -+ android:title="@string/prefs_section_account_and_google_services" -+ app:isPreferenceVisible="false" /> - - - -- -- -- -- -- -- - -diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml ---- a/chrome/android/java/res/xml/privacy_preferences.xml -+++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -54,8 +54,4 @@ found in the LICENSE file. - android:title="@string/cablev2_paask_title" - android:summary="@string/cablev2_paask_body" - android:fragment="org.chromium.chrome.browser.webauthn.PrivacySettingsFragment"/> -- - -diff --git a/chrome/android/java/res/xml/privacy_preferences_v2.xml b/chrome/android/java/res/xml/privacy_preferences_v2.xml ---- a/chrome/android/java/res/xml/privacy_preferences_v2.xml -+++ b/chrome/android/java/res/xml/privacy_preferences_v2.xml -@@ -70,8 +70,4 @@ found in the LICENSE file. - android:key="can_make_payment" - android:title="@string/can_make_payment_title" - android:summary="@string/settings_can_make_payment_toggle_label" /> -- - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java b/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java -@@ -32,8 +32,6 @@ import org.chromium.chrome.browser.password_manager.GooglePasswordManagerUIProvi - import org.chromium.chrome.browser.policy.PolicyAuditor; - import org.chromium.chrome.browser.rlz.RevenueStats; - import org.chromium.chrome.browser.survey.SurveyController; --import org.chromium.chrome.browser.sync.TrustedVaultClient; --import org.chromium.chrome.browser.ui.signin.GoogleActivityController; - import org.chromium.chrome.browser.usage_stats.DigitalWellbeingClient; - import org.chromium.chrome.browser.webapps.GooglePlayWebApkInstallDelegate; - import org.chromium.chrome.browser.xsurface.ProcessScope; -@@ -41,8 +39,6 @@ import org.chromium.chrome.browser.xsurface.ProcessScopeDependencyProvider; - import org.chromium.chrome.modules.image_editor.ImageEditorModuleProvider; - import org.chromium.components.policy.AppRestrictionsProvider; - import org.chromium.components.policy.CombinedPolicyProvider; --import org.chromium.components.signin.AccountManagerDelegate; --import org.chromium.components.signin.SystemAccountManagerDelegate; - import org.chromium.components.webapps.AppDetailsDelegate; - - import java.util.Collections; -@@ -73,14 +69,6 @@ public abstract class AppHooks { - return sInstance; - } - -- /** -- * Creates a new {@link AccountManagerDelegate}. -- * @return the created {@link AccountManagerDelegate}. -- */ -- public AccountManagerDelegate createAccountManagerDelegate() { -- return new SystemAccountManagerDelegate(); -- } -- - /** - * @return An instance of AppDetailsDelegate that can be queried about app information for the - * App Banner feature. Will be null if one is unavailable. -@@ -128,21 +116,6 @@ public abstract class AppHooks { - return new FeedbackReporter() {}; - } - -- /** -- * @return An instance of GoogleActivityController. -- */ -- public GoogleActivityController createGoogleActivityController() { -- return new GoogleActivityController(); -- } -- -- /** -- * @return An instance of {@link GSAHelper} that handles the start point of chrome's integration -- * with GSA. -- */ -- public GSAHelper createGsaHelper() { -- return new GSAHelper(); -- } -- - /** - * Returns a new instance of HelpAndFeedbackLauncher. - */ -@@ -252,13 +225,6 @@ public abstract class AppHooks { - : ConnectionResult.SUCCESS; - } - -- /** -- * Returns a new {@link TrustedVaultClient.Backend} instance. -- */ -- public TrustedVaultClient.Backend createSyncTrustedVaultClientBackend() { -- return new TrustedVaultClient.EmptyBackend(); -- } -- - /** - * This is deprecated, and should not be called. Use FeedHooks instead. - */ -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java -@@ -28,7 +28,6 @@ import org.chromium.chrome.browser.init.AsyncInitTaskRunner; - import org.chromium.chrome.browser.init.ChromeBrowserInitializer; - import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; - import org.chromium.components.signin.AccountManagerFacadeProvider; - import org.chromium.components.signin.AccountUtils; - import org.chromium.components.signin.base.CoreAccountInfo; -@@ -179,7 +178,6 @@ public class ChromeBackupAgentImpl extends ChromeBackupAgent.Impl { - ParcelFileDescriptor newState) throws IOException { - final ArrayList backupNames = new ArrayList<>(); - final ArrayList backupValues = new ArrayList<>(); -- final AtomicReference syncAccount = new AtomicReference<>(); - - // The native preferences can only be read on the UI thread. - Boolean nativePrefsRead = PostTask.runSynchronously(TaskTraits.UI_DEFAULT, () -> { -@@ -188,10 +186,6 @@ public class ChromeBackupAgentImpl extends ChromeBackupAgent.Impl { - // immediately, so by the time it does Chrome may not be running. - if (!initializeBrowser()) return false; - -- syncAccount.set(IdentityServicesProvider.get() -- .getIdentityManager(Profile.getLastUsedRegularProfile()) -- .getPrimaryAccountInfo(ConsentLevel.SYNC)); -- - String[] nativeBackupNames = ChromeBackupAgentImplJni.get().getBoolBackupNames(this); - boolean[] nativeBackupValues = ChromeBackupAgentImplJni.get().getBoolBackupValues(this); - assert nativeBackupNames.length == nativeBackupValues.length; -@@ -245,8 +239,7 @@ public class ChromeBackupAgentImpl extends ChromeBackupAgent.Impl { - - // Finally add the user id. - backupNames.add(ANDROID_DEFAULT_PREFIX + SIGNED_IN_ACCOUNT_KEY); -- backupValues.add(ApiCompatibilityUtils.getBytesUtf8( -- syncAccount.get() == null ? "" : syncAccount.get().getEmail())); -+ backupValues.add(ApiCompatibilityUtils.getBytesUtf8("")); - - BackupState newBackupState = new BackupState(backupNames, backupValues); - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java -@@ -16,7 +16,6 @@ import org.chromium.base.annotations.JNINamespace; - import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; - import org.chromium.chrome.browser.preferences.SharedPreferencesManager; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; - import org.chromium.components.signin.identitymanager.IdentityManager; - import org.chromium.components.signin.identitymanager.PrimaryAccountChangeEvent; - -@@ -57,15 +56,6 @@ public class ChromeBackupWatcher { - } - } - }); -- // Update the backup if the sign-in status changes. -- IdentityManager identityManager = IdentityServicesProvider.get().getIdentityManager( -- Profile.getLastUsedRegularProfile()); -- identityManager.addObserver(new IdentityManager.Observer() { -- @Override -- public void onPrimaryAccountChanged(PrimaryAccountChangeEvent eventDetails) { -- onBackupPrefsChanged(); -- } -- }); - } - - @CalledByNative -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 -@@ -88,7 +88,6 @@ import org.chromium.chrome.browser.download.DownloadUtils; - import org.chromium.chrome.browser.feature_engagement.TrackerFactory; - import org.chromium.chrome.browser.feature_guide.notifications.FeatureNotificationUtils; - import org.chromium.chrome.browser.feed.FeedSurfaceTracker; --import org.chromium.chrome.browser.firstrun.FirstRunSignInProcessor; - import org.chromium.chrome.browser.flags.ActivityType; - import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.flags.ChromeSwitches; -@@ -138,7 +137,6 @@ import org.chromium.chrome.browser.settings.SettingsLauncherImpl; - import org.chromium.chrome.browser.share.send_tab_to_self.SendTabToSelfAndroidBridge; - import org.chromium.chrome.browser.suggestions.SuggestionsMetrics; - import org.chromium.chrome.browser.survey.ChromeSurveyController; --import org.chromium.chrome.browser.sync.ui.SyncErrorMessage; - import org.chromium.chrome.browser.tab.EmptyTabObserver; - import org.chromium.chrome.browser.tab.RedirectHandlerTabHelper; - import org.chromium.chrome.browser.tab.Tab; -@@ -661,10 +659,6 @@ public class ChromeTabbedActivity extends ChromeActivity - private boolean mRemoveWindowBackgroundDone; - protected AccessibilityVisibilityHandler mAccessibilityVisibilityHandler; - -- // Observes when sync becomes ready to create the mContextReporter. -- private SyncService.SyncStateChangedListener mSyncStateChangedListener; -- - // The FullscreenVideoPictureInPictureController is initialized lazily https://crbug.com/729738. - private FullscreenVideoPictureInPictureController mFullscreenVideoPictureInPictureController; - -@@ -1076,60 +1069,6 @@ public abstract class ChromeActivity - return StatusBarColorController.UNDEFINED_STATUS_BAR_COLOR; - } - -- private void createContextReporterIfNeeded() { -- if (!mStarted) return; // Sync state reporting should work only in started state. -- if (mContextReporter != null || getActivityTab() == null) return; -- -- final SyncService syncService = SyncService.get(); -- -- if (syncService != null && syncService.isSyncingUnencryptedUrls()) { -- ContextReporter.SelectionReporter controller = -- getContextualSearchManagerSupplier().hasValue() ? new ContextReporter.SelectionReporter() { -- @Override -- public void enable(Callback callback) { -- getContextualSearchManagerSupplier().get().enableContextReporting( -- callback); -- } -- -- @Override -- public void disable() { -- getContextualSearchManagerSupplier().get().disableContextReporting(); -- } -- } : null; -- mContextReporter = AppHooks.get().createGsaHelper().getContextReporter( -- getActivityTabProvider(), mTabModelSelectorSupplier, controller); -- -- if (mSyncStateChangedListener != null) { -- syncService.removeSyncStateChangedListener(mSyncStateChangedListener); -- mSyncStateChangedListener = null; -- } -- -- return; -- } else { -- reportSyncStatus(syncService); -- } -- -- if (mSyncStateChangedListener == null && syncService != null) { -- mSyncStateChangedListener = () -> createContextReporterIfNeeded(); -- syncService.addSyncStateChangedListener(mSyncStateChangedListener); -- } -- } -- -- /** Records an appropriate status via UMA given the current sync status. */ -- private static void reportSyncStatus(@Nullable SyncService syncService) { -- if (syncService == null || !syncService.isEngineInitialized()) { -- ContextReporter.reportStatus(ContextReporter.STATUS_SYNC_NOT_INITIALIZED); -- } else if (!syncService.getActiveDataTypes().contains(ModelType.TYPED_URLS) -- && !syncService.getActiveDataTypes().contains(ModelType.HISTORY)) { -- ContextReporter.reportStatus(ContextReporter.STATUS_SYNC_NOT_SYNCING_URLS); -- } else if (syncService.getPassphraseType() != PassphraseType.KEYSTORE_PASSPHRASE -- && syncService.getPassphraseType() != PassphraseType.TRUSTED_VAULT_PASSPHRASE) { -- ContextReporter.reportStatus(ContextReporter.STATUS_SYNC_NOT_KEYSTORE_PASSPHRASE); -- } else { -- ContextReporter.reportStatus(ContextReporter.STATUS_SYNC_OTHER); -- } -- } -- - @Override - public void onResumeWithNative() { - // First, update the activity type in order to have it properly captured in -@@ -1246,14 +1185,6 @@ public abstract class ChromeActivity - if (GSAState.getInstance().isGsaAvailable() && !SysUtils.isLowEndDevice()) { - if (mGSAAccountChangeListener != null) mGSAAccountChangeListener.disconnect(); - } -- if (mSyncStateChangedListener != null) { -- SyncService syncService = SyncService.get(); -- if (syncService != null) { -- syncService.removeSyncStateChangedListener(mSyncStateChangedListener); -- } -- mSyncStateChangedListener = null; -- } -- if (mContextReporter != null) mContextReporter.disable(); - - super.onStopWithNative(); - } -@@ -1335,11 +1266,6 @@ public abstract class ChromeActivity - .recordUserFontPrefOnStartup(); - }); - -- DeferredStartupHandler.getInstance().addDeferredTask(() -> { -- if (isActivityFinishingOrDestroyed()) return; -- ForcedSigninProcessor.checkCanSignIn(ChromeActivity.this); -- }); -- - // GSA connection is not needed on low-end devices because Icing is disabled. - if (!SysUtils.isLowEndDevice()) { - DeferredStartupHandler.getInstance().addDeferredTask(() -> { -@@ -1354,7 +1280,6 @@ public abstract class ChromeActivity - GSAAccountChangeListener.create(AppHooks.get().createGsaHelper()); - } - mGSAAccountChangeListener.connect(); -- createContextReporterIfNeeded(); - }); - } - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/creator/CreatorActionDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/creator/CreatorActionDelegateImpl.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/app/creator/CreatorActionDelegateImpl.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/creator/CreatorActionDelegateImpl.java -@@ -15,7 +15,6 @@ import org.chromium.chrome.browser.creator.CreatorCoordinator; - import org.chromium.chrome.browser.feed.FeedActionDelegate; - import org.chromium.chrome.browser.feed.signinbottomsheet.SigninBottomSheetCoordinator; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; - import org.chromium.chrome.browser.tab.TabLaunchType; - import org.chromium.chrome.browser.tabmodel.document.TabDelegate; - import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; -@@ -74,8 +73,6 @@ public class CreatorActionDelegateImpl implements FeedActionDelegate { - - @Override - public void showSyncConsentActivity(int signinAccessPoint) { -- SyncConsentActivityLauncherImpl.get().launchActivityIfAllowed( -- mActivityContext, signinAccessPoint); - } - - @Override -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/feed/FeedActionDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/feed/FeedActionDelegateImpl.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/app/feed/FeedActionDelegateImpl.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/feed/FeedActionDelegateImpl.java -@@ -23,7 +23,6 @@ import org.chromium.chrome.browser.ntp.NewTabPageUma; - import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; - import org.chromium.chrome.browser.offlinepages.RequestCoordinatorBridge; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; - import org.chromium.chrome.browser.signin.services.SigninMetricsUtils; - import org.chromium.chrome.browser.suggestions.SuggestionsConfig; - import org.chromium.chrome.browser.tab.EmptyTabObserver; -@@ -137,8 +136,6 @@ public class FeedActionDelegateImpl implements FeedActionDelegate { - @Override - public void showSyncConsentActivity(@SigninAccessPoint int signinAccessPoint) { - if (ChromeFeatureList.isEnabled(ChromeFeatureList.FEED_SHOW_SIGN_IN_COMMAND)) { -- SyncConsentActivityLauncherImpl.get().launchActivityIfAllowed( -- mActivityContext, signinAccessPoint); - } - } - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AddressEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AddressEditor.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AddressEditor.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AddressEditor.java -@@ -24,14 +24,11 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.payments.AutofillAddress; - import org.chromium.chrome.browser.payments.AutofillAddress.CompletenessCheckType; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; --import org.chromium.chrome.browser.sync.SyncService; - import org.chromium.components.autofill.prefeditor.EditorFieldModel; - import org.chromium.components.autofill.prefeditor.EditorFieldModel.EditorFieldValidator; - import org.chromium.components.signin.base.CoreAccountInfo; - import org.chromium.components.signin.identitymanager.ConsentLevel; - import org.chromium.components.signin.identitymanager.IdentityManager; --import org.chromium.components.sync.UserSelectableType; - - import java.util.HashMap; - import java.util.HashSet; -@@ -159,13 +156,8 @@ public class AddressEditor extends EditorBase { - String deleteConfirmationTitle = - mContext.getString(R.string.autofill_delete_address_confirmation_dialog_title); - if (mProfile.getSource() == Source.ACCOUNT) { -- final IdentityManager identityManager = -- IdentityServicesProvider.get().getIdentityManager( -- Profile.getLastUsedRegularProfile()); -- CoreAccountInfo accountInfo = -- identityManager.getPrimaryAccountInfo(ConsentLevel.SIGNIN); - @Nullable -- String email = CoreAccountInfo.getEmailFrom(accountInfo); -+ String email = ""; - - if (email != null) { - footerMessageText = -@@ -176,14 +168,8 @@ public class AddressEditor extends EditorBase { - .replace("$1", email); - } - } else { -- if (SyncService.get().isSyncFeatureEnabled() -- && SyncService.get().getSelectedTypes().contains(UserSelectableType.AUTOFILL)) { -- deleteConfirmationText = -- mContext.getString(R.string.autofill_delete_sync_address_source_notice); -- } else { - deleteConfirmationText = - mContext.getString(R.string.autofill_delete_local_address_source_notice); -- } - } - - mEditor = new EditorModel(editTitle, mCustomDoneButtonText, footerMessageText, -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkListEntry.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkListEntry.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkListEntry.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkListEntry.java -@@ -23,15 +23,12 @@ public final class BookmarkListEntry { - * Specifies the view types that the bookmark delegate screen can contain. - */ - @Retention(RetentionPolicy.SOURCE) -- @IntDef({ViewType.INVALID, ViewType.PERSONALIZED_SIGNIN_PROMO, ViewType.PERSONALIZED_SYNC_PROMO, -- ViewType.SYNC_PROMO, ViewType.FOLDER, ViewType.BOOKMARK, ViewType.DIVIDER, -+ @IntDef({ViewType.INVALID, -+ ViewType.FOLDER, ViewType.BOOKMARK, ViewType.DIVIDER, - ViewType.SECTION_HEADER, ViewType.SHOPPING_POWER_BOOKMARK, ViewType.TAG_CHIP_LIST, - ViewType.SHOPPING_FILTER}) - public @interface ViewType { - int INVALID = -1; -- int PERSONALIZED_SIGNIN_PROMO = 0; -- int PERSONALIZED_SYNC_PROMO = 1; -- int SYNC_PROMO = 2; - int FOLDER = 3; - int BOOKMARK = 4; - int DIVIDER = 5; -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java -@@ -256,11 +256,6 @@ public class BookmarkManagerCoordinator - } - - switch (viewType) { -- case ViewType.PERSONALIZED_SIGNIN_PROMO: -- case ViewType.PERSONALIZED_SYNC_PROMO: -- return buildPersonalizedPromoView(parent); -- case ViewType.SYNC_PROMO: -- return buildLegacyPromoView(parent); - case ViewType.SECTION_HEADER: - return buildSectionHeaderView(parent); - case ViewType.FOLDER: -@@ -282,13 +277,6 @@ public class BookmarkManagerCoordinator - public void bindView(View view, @ViewType int viewType, PropertyModel model) { - ViewBinder viewBinder = null; - switch (viewType) { -- case ViewType.PERSONALIZED_SIGNIN_PROMO: -- case ViewType.PERSONALIZED_SYNC_PROMO: -- viewBinder = BookmarkManagerViewBinder::bindPersonalizedPromoView; -- break; -- case ViewType.SYNC_PROMO: -- viewBinder = BookmarkManagerViewBinder::bindLegacyPromoView; -- break; - case ViewType.SECTION_HEADER: - viewBinder = BookmarkManagerViewBinder::bindSectionHeaderView; - break; -@@ -313,14 +301,6 @@ public class BookmarkManagerCoordinator - PropertyModelChangeProcessor.create(model, view, viewBinder); - } - -- private View buildPersonalizedPromoView(ViewGroup parent) { -- return mPromoHeaderManager.createPersonalizedSigninAndSyncPromoHolder(parent); -- } -- -- private View buildLegacyPromoView(ViewGroup parent) { -- return mPromoHeaderManager.createSyncPromoHolder(parent); -- } -- - private View buildSectionHeaderView(ViewGroup parent) { - return inflate(parent, org.chromium.chrome.R.layout.bookmark_section_header); - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java -@@ -26,8 +26,6 @@ import org.chromium.chrome.browser.feature_engagement.TrackerFactory; - import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksReader; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.sync.SyncService; --import org.chromium.chrome.browser.sync.SyncService.SyncStateChangedListener; - import org.chromium.chrome.browser.ui.native_page.BasicNativePage; - import org.chromium.chrome.browser.ui.signin.SyncPromoController.SyncPromoState; - import org.chromium.components.bookmarks.BookmarkId; -@@ -236,7 +234,6 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, - mBookmarkModel.removeObserver(mBookmarkModelObserver2); - getSelectionDelegate().removeObserver(mSelectionObserver); - mPromoHeaderManager.destroy(); -- mSyncService.removeSyncStateChangedListener(mSyncStateChangedListener); - } - - @Override -@@ -285,20 +282,6 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, - } - }; - -- private final SyncStateChangedListener mSyncStateChangedListener = -- new SyncStateChangedListener() { -- @Override -- public void syncStateChanged() { -- // If the bookmark model isn't loaded, we will set the top level folders on -- // load (see onBookmarkModelLoaded method below). -- if (!mBookmarkModel.isBookmarkModelLoaded()) { -- return; -- } -- mTopLevelFolders.clear(); -- populateTopLevelFoldersList(); -- } -- }; -- - private final ObserverList mUiObservers = new ObserverList<>(); - private final BookmarkDragStateDelegate mDragStateDelegate = new BookmarkDragStateDelegate(); - private final Context mContext; -@@ -320,7 +303,6 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, - private final ObservableSupplierImpl mBackPressStateSupplier; - private final List mTopLevelFolders = new ArrayList<>(); - private final Profile mProfile; -- private final SyncService mSyncService; - private final BookmarkPromoHeader mPromoHeaderManager; - private final BookmarkUndoController mBookmarkUndoController; - -@@ -360,8 +342,6 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, - mIsIncognito = isIncognito; - mBackPressStateSupplier = backPressStateSupplier; - mProfile = profile; -- mSyncService = SyncService.get(); -- mSyncService.addSyncStateChangedListener(mSyncStateChangedListener); - // Notify the view of changes to the elements list as the promo might be showing. - Runnable promoHeaderChangeAction = () -> updateHeader(true); - mPromoHeaderManager = new BookmarkPromoHeader(mContext, mProfile, promoHeaderChangeAction); -@@ -494,10 +474,7 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, - public PropertyModel buildModel(ViewHolder holder, int position) { - PropertyModel model = new PropertyModel(BookmarkManagerProperties.ALL_KEYS); - final @ViewType int viewType = holder.getItemViewType(); -- if (viewType == ViewType.PERSONALIZED_SIGNIN_PROMO -- || viewType == ViewType.PERSONALIZED_SYNC_PROMO) { -- model.set(BookmarkManagerProperties.BOOKMARK_PROMO_HEADER, mPromoHeaderManager); -- } else if (viewType == ViewType.SECTION_HEADER) { -+ if (viewType == ViewType.SECTION_HEADER) { - model.set(BookmarkManagerProperties.BOOKMARK_LIST_ENTRY, getItemByPosition(position)); - } else if (BookmarkListEntry.isBookmarkEntry(viewType)) { - BookmarkId id = getIdByPosition(position); -@@ -519,11 +496,6 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, - @Override - public void recycleView(View view, @ViewType int viewType) { - switch (viewType) { -- case ViewType.PERSONALIZED_SIGNIN_PROMO: -- // fall through -- case ViewType.PERSONALIZED_SYNC_PROMO: -- mPromoHeaderManager.detachPersonalizePromoView(); -- break; - default: - // Other view holders don't have special recycling code. - } -@@ -573,7 +545,6 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, - - @Override - public void simulateSignInForTesting() { -- mSyncStateChangedListener.syncStateChanged(); - mBookmarkUiObserver.onFolderStateSet(mCurrentFolder); - } - -@@ -857,9 +828,6 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, - getElements().clear(); - - // Restore the header, if it exists, then update it. -- if (hasPromoHeader()) { -- getElements().add(BookmarkListEntry.createSyncPromoHeader(mPromoHeaderType)); -- } - - updateHeader(false); - if (BookmarkId.SHOPPING_FOLDER.equals(mCurrentFolder)) { -@@ -917,28 +885,12 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, - } else if (currentUiState == BookmarkUiMode.SEARCHING) { - mPromoHeaderType = ViewType.INVALID; - } else { -- switch (mPromoHeaderManager.getPromoState()) { -- case SyncPromoState.NO_PROMO: -- mPromoHeaderType = ViewType.INVALID; -- break; -- case SyncPromoState.PROMO_FOR_SIGNED_OUT_STATE: -- mPromoHeaderType = ViewType.PERSONALIZED_SIGNIN_PROMO; -- break; -- case SyncPromoState.PROMO_FOR_SIGNED_IN_STATE: -- mPromoHeaderType = ViewType.PERSONALIZED_SYNC_PROMO; -- break; -- case SyncPromoState.PROMO_FOR_SYNC_TURNED_OFF_STATE: -- mPromoHeaderType = ViewType.SYNC_PROMO; -- break; -- default: -- assert false : "Unexpected value for promo state!"; -- } -+ mPromoHeaderType = ViewType.INVALID; - } - - boolean willShowPromo = hasPromoHeader(); - if (!wasShowingPromo && willShowPromo) { - // A null element at the 0th index represents a promo header. -- getElements().add(0, BookmarkListEntry.createSyncPromoHeader(mPromoHeaderType)); - if (shouldNotify) mBookmarkItemsAdapter.notifyItemInserted(0); - } else if (wasShowingPromo && willShowPromo) { - if (shouldNotify) mBookmarkItemsAdapter.notifyItemChanged(0); -@@ -1028,8 +980,4 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, - BookmarkUndoController getUndoControllerForTesting() { - return mBookmarkUndoController; - } -- -- SyncStateChangedListener getSyncStateChangedListenerForTesting() { -- return mSyncStateChangedListener; -- } - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerViewBinder.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerViewBinder.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerViewBinder.java -@@ -20,17 +20,6 @@ import org.chromium.ui.modelutil.PropertyModel; - - /** Responsible for binding views to their properties. */ - class BookmarkManagerViewBinder { -- static void bindPersonalizedPromoView(PropertyModel model, View view, PropertyKey key) { -- if (key == BookmarkManagerProperties.BOOKMARK_PROMO_HEADER) { -- PersonalizedSigninPromoView promoView = -- view.findViewById(org.chromium.chrome.R.id.signin_promo_view_container); -- model.get(BookmarkManagerProperties.BOOKMARK_PROMO_HEADER) -- .setUpSyncPromoView(promoView); -- } -- } -- -- static void bindLegacyPromoView(PropertyModel model, View view, PropertyKey key) {} -- - static void bindSectionHeaderView(PropertyModel model, View view, PropertyKey key) { - if (key == BookmarkManagerProperties.BOOKMARK_LIST_ENTRY) { - BookmarkListEntry bookmarkListEntry = -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java -@@ -4,246 +4,26 @@ - - package org.chromium.chrome.browser.bookmarks; - --import android.content.Context; --import android.view.LayoutInflater; --import android.view.View; --import android.view.ViewGroup; -- --import androidx.annotation.Nullable; --import androidx.annotation.VisibleForTesting; -- --import org.chromium.chrome.R; --import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; --import org.chromium.chrome.browser.preferences.SharedPreferencesManager; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.signin.LegacySyncPromoView; --import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; --import org.chromium.chrome.browser.signin.services.ProfileDataCache; --import org.chromium.chrome.browser.signin.services.SigninManager; --import org.chromium.chrome.browser.signin.services.SigninManager.SignInStateObserver; --import org.chromium.chrome.browser.sync.SyncService; --import org.chromium.chrome.browser.ui.signin.PersonalizedSigninPromoView; --import org.chromium.chrome.browser.ui.signin.SyncPromoController; --import org.chromium.chrome.browser.ui.signin.SyncPromoController.SyncPromoState; --import org.chromium.components.signin.AccountManagerFacade; --import org.chromium.components.signin.AccountManagerFacadeProvider; --import org.chromium.components.signin.AccountsChangeObserver; --import org.chromium.components.signin.identitymanager.ConsentLevel; --import org.chromium.components.signin.metrics.SigninAccessPoint; -+ -+import android.content.Context; - - /** - * Class that manages all the logic and UI behind the signin promo header in the bookmark - * content UI. The header is shown only on certain situations, (e.g., not signed in). - */ --public class BookmarkPromoHeader implements SyncService.SyncStateChangedListener, -- SignInStateObserver, ProfileDataCache.Observer, -- AccountsChangeObserver { -+public class BookmarkPromoHeader { - // TODO(kkimlabs): Figure out the optimal number based on UMA data. - private static final int MAX_SIGNIN_AND_SYNC_PROMO_SHOW_COUNT = 10; - -- private static @Nullable @SyncPromoState Integer sPromoStateForTests; -- -- private final Context mContext; -- private final SigninManager mSigninManager; -- private final AccountManagerFacade mAccountManagerFacade; -- private final Runnable mPromoHeaderChangeAction; -- -- private @Nullable ProfileDataCache mProfileDataCache; -- private final @Nullable SyncPromoController mSyncPromoController; -- private @SyncPromoState int mPromoState = SyncPromoState.NO_PROMO; -- private final @Nullable SyncService mSyncService; -- private final Profile mProfile; -- - /** - * Initializes the class. Note that this will start listening to signin related events and - * update itself if needed. - */ -- BookmarkPromoHeader(Context context, Profile profile, Runnable promoHeaderChangeAction) { -- mContext = context; -- mProfile = profile; -- mPromoHeaderChangeAction = promoHeaderChangeAction; -- -- mSyncService = SyncService.get(); -- if (mSyncService != null) mSyncService.addSyncStateChangedListener(this); -- -- mSigninManager = IdentityServicesProvider.get().getSigninManager(mProfile); -- mSigninManager.addSignInStateObserver(this); -- -- mAccountManagerFacade = AccountManagerFacadeProvider.getInstance(); -- -- if (SyncPromoController.canShowSyncPromo(SigninAccessPoint.BOOKMARK_MANAGER)) { -- mProfileDataCache = ProfileDataCache.createWithDefaultImageSizeAndNoBadge(mContext); -- mProfileDataCache.addObserver(this); -- mSyncPromoController = new SyncPromoController( -- SigninAccessPoint.BOOKMARK_MANAGER, SyncConsentActivityLauncherImpl.get()); -- mAccountManagerFacade.addObserver(this); -- } else { -- mProfileDataCache = null; -- mSyncPromoController = null; -- } -- updatePromoState(); -- } -+ BookmarkPromoHeader(Context context, Profile profile, Runnable promoHeaderChangeAction) {} - - /** - * Clean ups the class. Must be called once done using this class. - */ -- void destroy() { -- if (mSyncService != null) mSyncService.removeSyncStateChangedListener(this); -- -- if (mSyncPromoController != null) { -- mAccountManagerFacade.removeObserver(this); -- mProfileDataCache.removeObserver(this); -- } -- -- mSigninManager.removeSignInStateObserver(this); -- } -- -- /** -- * @return The current state of the promo. -- */ -- @SyncPromoState -- int getPromoState() { -- return mPromoState; -- } -- -- /** Returns personalized signin promo header {@link View}. */ -- View createPersonalizedSigninAndSyncPromoHolder(ViewGroup parent) { -- return LayoutInflater.from(mContext).inflate( -- R.layout.sync_promo_view_bookmarks, parent, false); -- } -- -- /** Returns sync promo header {@link View}. */ -- View createSyncPromoHolder(ViewGroup parent) { -- return LegacySyncPromoView.create(parent, SigninAccessPoint.BOOKMARK_MANAGER); -- } -- -- /** -- * Sets up the sync promo view. -- */ -- void setUpSyncPromoView(PersonalizedSigninPromoView view) { -- mSyncPromoController.setUpSyncPromoView( -- mProfileDataCache, view, this::setPersonalizedSigninPromoDeclined); -- } -- -- /** -- * Detaches the previously configured {@link PersonalizedSigninPromoView}. -- */ -- void detachPersonalizePromoView() { -- if (mSyncPromoController != null) mSyncPromoController.detach(); -- } -- -- /** -- * Saves that the personalized signin promo was declined and updates the UI. -- */ -- private void setPersonalizedSigninPromoDeclined() { -- mPromoState = calculatePromoState(); -- triggerPromoUpdate(); -- } -- -- /** -- * @return Whether the personalized signin promo should be shown to user. -- */ -- private boolean shouldShowBookmarkSigninPromo() { -- return mSigninManager.isSyncOptInAllowed() -- && SyncPromoController.canShowSyncPromo(SigninAccessPoint.BOOKMARK_MANAGER); -- } -- -- private @SyncPromoState int calculatePromoState() { -- if (sPromoStateForTests != null) { -- return sPromoStateForTests; -- } -- -- if (mSyncService == null) { -- // |mSyncService| will remain null until the next browser startup, so no sense in -- // offering any promo. -- return SyncPromoState.NO_PROMO; -- } -- -- if (!mSigninManager.getIdentityManager().hasPrimaryAccount(ConsentLevel.SYNC)) { -- if (!shouldShowBookmarkSigninPromo()) { -- return SyncPromoState.NO_PROMO; -- } -- -- return mSigninManager.getIdentityManager().hasPrimaryAccount(ConsentLevel.SIGNIN) -- ? SyncPromoState.PROMO_FOR_SIGNED_IN_STATE -- : SyncPromoState.PROMO_FOR_SIGNED_OUT_STATE; -- } -- -- boolean impressionLimitNotReached = -- SharedPreferencesManager.getInstance().readInt( -- ChromePreferenceKeys.SIGNIN_AND_SYNC_PROMO_SHOW_COUNT) -- < MAX_SIGNIN_AND_SYNC_PROMO_SHOW_COUNT; -- if ((!mSyncService.isSyncRequested() || mSyncService.getSelectedTypes().isEmpty()) -- && impressionLimitNotReached) { -- return SyncPromoState.PROMO_FOR_SYNC_TURNED_OFF_STATE; -- } -- return SyncPromoState.NO_PROMO; -- } -- -- private void updatePromoState() { -- final @SyncPromoState int newState = calculatePromoState(); -- if (newState == mPromoState) return; -- -- // PROMO_SYNC state and it's impression counts is not tracked by SyncPromoController. -- final boolean hasSyncPromoStateChangedtoShown = -- (mPromoState == SyncPromoState.NO_PROMO -- || mPromoState == SyncPromoState.PROMO_FOR_SYNC_TURNED_OFF_STATE) -- && (newState == SyncPromoState.PROMO_FOR_SIGNED_OUT_STATE -- || newState == SyncPromoState.PROMO_FOR_SIGNED_IN_STATE); -- if (mSyncPromoController != null && hasSyncPromoStateChangedtoShown) { -- mSyncPromoController.increasePromoShowCount(); -- } -- if (newState == SyncPromoState.PROMO_FOR_SYNC_TURNED_OFF_STATE) { -- SharedPreferencesManager.getInstance().incrementInt( -- ChromePreferenceKeys.SIGNIN_AND_SYNC_PROMO_SHOW_COUNT); -- } -- mPromoState = newState; -- } -- -- // SyncService.SyncStateChangedListener implementation. -- @Override -- public void syncStateChanged() { -- updatePromoState(); -- triggerPromoUpdate(); -- } -- -- // SignInStateObserver implementation. -- @Override -- public void onSignedIn() { -- updatePromoState(); -- triggerPromoUpdate(); -- } -- -- @Override -- public void onSignedOut() { -- updatePromoState(); -- triggerPromoUpdate(); -- } -- -- // ProfileDataCache.Observer implementation. -- @Override -- public void onProfileDataUpdated(String accountEmail) { -- triggerPromoUpdate(); -- } -- -- // AccountsChangeObserver implementation. -- @Override -- public void onAccountsChanged() { -- triggerPromoUpdate(); -- } -- -- private void triggerPromoUpdate() { -- detachPersonalizePromoView(); -- mPromoHeaderChangeAction.run(); -- } -- -- /** -- * Forces the promo state to a particular value for testing purposes. -- * @param promoState The promo state to which the header will be set to. -- */ -- @VisibleForTesting -- public static void forcePromoStateForTesting(@Nullable @SyncPromoState Integer promoState) { -- sPromoStateForTests = promoState; -- } -+ void destroy() {} - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java -@@ -37,17 +37,10 @@ import org.chromium.chrome.browser.preferences.Pref; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.quick_delete.QuickDeleteController; - import org.chromium.chrome.browser.settings.ProfileDependentSetting; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; --import org.chromium.chrome.browser.signin.services.SigninManager; --import org.chromium.chrome.browser.sync.settings.ClearDataProgressDialog; --import org.chromium.chrome.browser.ui.signin.SignOutDialogCoordinator; --import org.chromium.chrome.browser.ui.signin.SignOutDialogCoordinator.ActionType; - import org.chromium.components.browser_ui.settings.ClickableSpansTextMessagePreference; - import org.chromium.components.browser_ui.settings.CustomDividerFragment; - import org.chromium.components.browser_ui.settings.SettingsUtils; - import org.chromium.components.browser_ui.settings.SpinnerPreference; --import org.chromium.components.signin.GAIAServiceType; --import org.chromium.components.signin.identitymanager.ConsentLevel; - import org.chromium.components.user_prefs.UserPrefs; - import org.chromium.ui.modaldialog.ModalDialogManagerHolder; - import org.chromium.ui.text.NoUnderlineClickableSpan; -@@ -69,7 +62,6 @@ import java.util.Set; - public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat - implements BrowsingDataBridge.OnClearBrowsingDataListener, - Preference.OnPreferenceClickListener, Preference.OnPreferenceChangeListener, -- SignOutDialogCoordinator.Listener, SigninManager.SignInStateObserver, - CustomDividerFragment, ProfileDependentSetting { - private static final String CLEAR_DATA_PROGRESS_DIALOG_TAG = "clear_data_progress"; - -@@ -232,8 +224,6 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat - private OtherFormsOfHistoryDialogFragment mDialogAboutOtherFormsOfBrowsingHistory; - - private Profile mProfile; -- private SigninManager mSigninManager; -- - private ProgressDialog mProgressDialog; - private Item[] mItems; - private ClearBrowsingDataFetcher mFetcher; -@@ -569,7 +559,6 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat - } - getActivity().setTitle(R.string.clear_browsing_data_title); - SettingsUtils.addPreferencesFromResource(this, R.xml.clear_browsing_data_preferences_tab); -- mSigninManager = IdentityServicesProvider.get().getSigninManager(mProfile); - List options = getDialogOptions(); - mItems = new Item[options.size()]; - for (int i = 0; i < options.size(); i++) { -@@ -615,11 +604,6 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat - assert spinnerOptionIndex != -1; - spinner.setOptions(spinnerOptions, spinnerOptionIndex); - spinner.setOnPreferenceChangeListener(this); -- -- // Text for sign-out option. -- updateSignOutOfChromeText(); -- -- mSigninManager.addSignInStateObserver(this); - } - - @Override -@@ -668,7 +652,6 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat - for (Item item : mItems) { - item.destroy(); - } -- mSigninManager.removeSignInStateObserver(this); - } - - // We either show the dialog, or modify the current one to display our messages. This avoids -@@ -694,27 +677,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat - private void updateSignOutOfChromeText() { - ClickableSpansTextMessagePreference signOutOfChromeTextPref = - findPreference(ClearBrowsingDataFragment.PREF_SIGN_OUT_OF_CHROME_TEXT); -- if (mSigninManager.isSignOutAllowed()) { -- signOutOfChromeTextPref.setSummary(buildSignOutOfChromeText()); -- signOutOfChromeTextPref.setVisible(true); -- } else { - signOutOfChromeTextPref.setVisible(false); -- } -- } -- -- @VisibleForTesting -- SpannableString buildSignOutOfChromeText() { -- return SpanApplier.applySpans(getContext().getString(R.string.sign_out_of_chrome_link), -- new SpanInfo("", "", -- new NoUnderlineClickableSpan( -- requireContext(), createSignOutOfChromeCallback()))); -- } -- -- private Callback createSignOutOfChromeCallback() { -- return view -- -> SignOutDialogCoordinator.show(requireContext(), -- ((ModalDialogManagerHolder) getActivity()).getModalDialogManager(), this, -- ActionType.CLEAR_PRIMARY_ACCOUNT, GAIAServiceType.GAIA_SERVICE_TYPE_NONE); - } - - /** -@@ -779,43 +742,4 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat - ignoredDomains, ignoredDomainReasons); - } - } -- -- /** {@link SignOutDialogCoordinator.Listener} implementation */ -- @Override -- public void onSignOutClicked(boolean forceWipeUserData) { -- // In case the user is not signed in, we guard the sign out so we do not hit a native crash. -- if (!mSigninManager.getIdentityManager().hasPrimaryAccount(ConsentLevel.SIGNIN)) { -- return; -- } -- mSigninManager.runAfterOperationInProgress(() -> { -- // In case supervised users reach this flow, remove the preference and guard against -- // signing out. -- if (!mSigninManager.isSignOutAllowed()) { -- updateSignOutOfChromeText(); -- return; -- } -- final DialogFragment clearDataProgressDialog = new ClearDataProgressDialog(); -- mSigninManager.signOut(org.chromium.components.signin.metrics.SignoutReason -- .USER_CLICKED_SIGNOUT_FROM_CLEAR_BROWSING_DATA_PAGE, -- new SigninManager.SignOutCallback() { -- @Override -- public void preWipeData() { -- clearDataProgressDialog.show( -- getChildFragmentManager(), CLEAR_DATA_PROGRESS_DIALOG_TAG); -- } -- -- @Override -- public void signOutComplete() { -- clearDataProgressDialog.dismissAllowingStateLoss(); -- } -- }, -- forceWipeUserData); -- }); -- } -- -- /** {@link SigninManager.SignInStateObserver} implementation. */ -- @Override -- public void onSignOutAllowedChanged() { -- updateSignOutOfChromeText(); -- } - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentBasic.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentBasic.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentBasic.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentBasic.java -@@ -23,16 +23,12 @@ import org.chromium.base.metrics.RecordUserAction; - import org.chromium.chrome.R; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; --import org.chromium.chrome.browser.sync.SyncService; - import org.chromium.chrome.browser.tab.TabLaunchType; - import org.chromium.chrome.browser.tabmodel.document.TabDelegate; - import org.chromium.components.browser_ui.settings.ClickableSpansTextMessagePreference; - import org.chromium.components.embedder_support.util.UrlConstants; - import org.chromium.components.search_engines.TemplateUrl; - import org.chromium.components.search_engines.TemplateUrlService; --import org.chromium.components.signin.identitymanager.ConsentLevel; --import org.chromium.components.signin.identitymanager.IdentityManager; - import org.chromium.components.sync.ModelType; - import org.chromium.ui.text.NoUnderlineClickableSpan; - import org.chromium.ui.text.SpanApplier; -@@ -89,28 +85,12 @@ public class ClearBrowsingDataFragmentBasic extends ClearBrowsingDataFragment { - new TabDelegate(false /* incognito */) - .launchUrl(UrlConstants.MY_ACTIVITY_URL_IN_CBD, TabLaunchType.FROM_CHROME_UI); - }); -- -- IdentityManager identityManager = -- IdentityServicesProvider.get().getIdentityManager(getProfile()); -- if (identityManager.hasPrimaryAccount(ConsentLevel.SIGNIN)) { -- // Update the Clear Browsing History text based on the sign-in/sync state and whether -- // the link to MyActivity is displayed inline or at the bottom of the page. -- // Note: when sync is disabled, the default string is used. -- if (isHistorySyncEnabled()) { -- // The text is different only for users with history sync. -- historyCheckbox.setSummary(R.string.clear_browsing_history_summary_synced_no_link); -- } -- cookiesCheckbox.setSummary( -- R.string.clear_cookies_and_site_data_summary_basic_signed_in); -- } - } - - @Override - public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { - super.onCreatePreferences(savedInstanceState, rootKey); - Profile profile = getProfile(); -- IdentityManager identityManager = -- IdentityServicesProvider.get().getIdentityManager(profile); - ClickableSpansTextMessagePreference googleDataTextPref = - (ClickableSpansTextMessagePreference) findPreference( - ClearBrowsingDataFragment.PREF_GOOGLE_DATA_TEXT); -@@ -121,8 +101,7 @@ public class ClearBrowsingDataFragmentBasic extends ClearBrowsingDataFragment { - boolean isDefaultSearchEngineGoogle = templateUrlService.isDefaultSearchEngineGoogle(); - - // Google-related links to delete search history and other browsing activity. -- if (defaultSearchEngine == null -- || !identityManager.hasPrimaryAccount(ConsentLevel.SIGNIN)) { -+ if (defaultSearchEngine == null) { - // One of two cases: - // 1. The default search engine is disabled. - // 2. The user is not signed into Chrome. -@@ -225,9 +204,7 @@ public class ClearBrowsingDataFragmentBasic extends ClearBrowsingDataFragment { - } - - private boolean isHistorySyncEnabled() { -- SyncService syncService = SyncService.get(); -- return syncService != null && syncService.isSyncFeatureEnabled() -- && syncService.getActiveDataTypes().contains(ModelType.HISTORY_DELETE_DIRECTIVES); -+ return false; - } - - @Override -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contacts_picker/ChromePickerAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/contacts_picker/ChromePickerAdapter.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/contacts_picker/ChromePickerAdapter.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/contacts_picker/ChromePickerAdapter.java -@@ -15,16 +15,8 @@ import androidx.recyclerview.widget.RecyclerView; - - import org.chromium.chrome.R; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.signin.services.DisplayableProfileData; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; --import org.chromium.chrome.browser.signin.services.ProfileDataCache; - import org.chromium.components.browser_ui.contacts_picker.ContactDetails; - import org.chromium.components.browser_ui.contacts_picker.PickerAdapter; --import org.chromium.components.signin.AccountManagerFacadeProvider; --import org.chromium.components.signin.AccountUtils; --import org.chromium.components.signin.base.CoreAccountInfo; --import org.chromium.components.signin.identitymanager.ConsentLevel; --import org.chromium.components.signin.identitymanager.IdentityManager; - - import java.util.ArrayList; - import java.util.Collections; -@@ -35,10 +27,7 @@ import java.util.Collections; - * Owner email is looked up in the {@link ProfileDataCache}, or, failing that, via the {@link - * AccountManagerFacade}. - */ --public class ChromePickerAdapter extends PickerAdapter implements ProfileDataCache.Observer { -- // The profile data cache to consult when figuring out the signed in user. -- private ProfileDataCache mProfileDataCache; -- -+public class ChromePickerAdapter extends PickerAdapter { - // Whether an observer for ProfileDataCache has been registered. - private boolean mObserving; - -@@ -46,8 +35,6 @@ public class ChromePickerAdapter extends PickerAdapter implements ProfileDataCac - private boolean mWaitingOnOwnerInfo; - - public ChromePickerAdapter(Context context) { -- mProfileDataCache = -- ProfileDataCache.createWithoutBadge(context, R.dimen.contact_picker_icon_size); - } - - // Adapter: -@@ -64,38 +51,15 @@ public class ChromePickerAdapter extends PickerAdapter implements ProfileDataCac - removeProfileDataObserver(); - } - -- // ProfileDataCache.Observer: -- -- @Override -- public void onProfileDataUpdated(String accountEmail) { -- if (!mWaitingOnOwnerInfo || !TextUtils.equals(accountEmail, getOwnerEmail())) { -- return; -- } -- -- // Now that we've received an update for the right accountId, we can stop listening and -- // update our records. -- mWaitingOnOwnerInfo = false; -- removeProfileDataObserver(); -- // TODO(finnur): crbug.com/1021477 - Maintain an member instance of this. -- DisplayableProfileData profileData = -- mProfileDataCache.getProfileDataOrDefault(getOwnerEmail()); -- ContactDetails contact = getAllContacts().get(0); -- Drawable icon = profileData.getImage(); -- contact.setSelfIcon(icon); -- update(); -- } -- - private void addProfileDataObserver() { - if (!mObserving) { - mObserving = true; -- mProfileDataCache.addObserver(this); - } - } - - private void removeProfileDataObserver() { - if (mObserving) { - mObserving = false; -- mProfileDataCache.removeObserver(this); - } - } - -@@ -107,13 +71,7 @@ public class ChromePickerAdapter extends PickerAdapter implements ProfileDataCac - */ - @Override - protected String findOwnerEmail() { -- CoreAccountInfo coreAccountInfo = getCoreAccountInfo(); -- if (coreAccountInfo != null) { -- return coreAccountInfo.getEmail(); -- } -- final @Nullable Account defaultAccount = AccountUtils.getDefaultAccountIfFulfilled( -- AccountManagerFacadeProvider.getInstance().getAccounts()); -- return defaultAccount != null ? defaultAccount.name : null; -+ return null; - } - - @Override -@@ -134,25 +92,8 @@ public class ChromePickerAdapter extends PickerAdapter implements ProfileDataCac - */ - @SuppressLint("HardwareIds") - private ContactDetails constructOwnerInfo(String ownerEmail) { -- DisplayableProfileData profileData = mProfileDataCache.getProfileDataOrDefault(ownerEmail); -- String name = profileData.getFullNameOrEmail(); -- if (TextUtils.isEmpty(name) || TextUtils.equals(name, ownerEmail)) { -- name = CoreAccountInfo.getEmailFrom(getCoreAccountInfo()); -- } -- -- ContactDetails contact = new ContactDetails(ContactDetails.SELF_CONTACT_ID, name, -+ ContactDetails contact = new ContactDetails(ContactDetails.SELF_CONTACT_ID, ownerEmail, - Collections.singletonList(ownerEmail), /*phoneNumbers=*/null, /*addresses=*/null); -- Drawable icon = profileData.getImage(); -- contact.setIsSelf(true); -- contact.setSelfIcon(icon); -- return contact; -- } -- -- private CoreAccountInfo getCoreAccountInfo() { -- // Since this is read-only operation to obtain email address, always using regular profile -- // for both regular and off-the-record profile is safe. -- IdentityManager identityManager = IdentityServicesProvider.get().getIdentityManager( -- Profile.getLastUsedRegularProfile()); -- return identityManager.getPrimaryAccountInfo(ConsentLevel.SYNC); -+ return null; - } - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java -@@ -28,7 +28,6 @@ import androidx.browser.customtabs.CustomTabsSessionToken; - import org.chromium.base.IntentUtils; - import org.chromium.base.metrics.RecordUserAction; - import org.chromium.chrome.R; --import org.chromium.chrome.browser.BackupSigninProcessor; - import org.chromium.chrome.browser.LaunchIntentDispatcher; - import org.chromium.chrome.browser.app.metrics.LaunchCauseMetrics; - import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider; -@@ -37,7 +36,6 @@ import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabProvid - import org.chromium.chrome.browser.customtabs.dependency_injection.BaseCustomTabActivityComponent; - import org.chromium.chrome.browser.customtabs.features.CustomTabNavigationBarController; - import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule; --import org.chromium.chrome.browser.firstrun.FirstRunSignInProcessor; - import org.chromium.chrome.browser.flags.AllCachedFieldTrialParameters; - import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.fonts.FontPreloader; -@@ -157,11 +155,6 @@ public class CustomTabActivity extends BaseCustomTabActivity { - - @Override - public void finishNativeInitialization() { -- if (!mIntentDataProvider.isInfoPage()) { -- FirstRunSignInProcessor.openSyncSettingsIfScheduled(this); -- BackupSigninProcessor.start(this); -- } -- - mConnection.showSignInToastIfNecessary(mSession, getIntent()); - - new CustomTabTrustedCdnPublisherUrlVisibility( -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java -@@ -86,9 +86,7 @@ public class LightweightFirstRunActivity - return; - } - -- boolean isChild = freProperties.getBoolean( -- SyncConsentFirstRunFragment.IS_CHILD_ACCOUNT, false); -- initializeViews(isChild); -+ initializeViews(false); - } - }; - mFirstRunFlowSequencer.start(); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java -@@ -35,8 +35,6 @@ import org.chromium.chrome.browser.preferences.Pref; - import org.chromium.chrome.browser.preferences.PrefChangeRegistrar; - import org.chromium.chrome.browser.preferences.PrefChangeRegistrar.PrefObserver; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; --import org.chromium.chrome.browser.signin.services.SigninManager.SignInStateObserver; - import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.tab.TabLaunchType; - import org.chromium.chrome.browser.tabmodel.document.TabDelegate; -@@ -58,7 +56,7 @@ import java.util.function.Function; - /** - * Displays and manages the content view / list UI for browsing history. - */ --public class HistoryContentManager implements SignInStateObserver, PrefObserver { -+public class HistoryContentManager implements PrefObserver { - /** - * Interface for a class that wants to receive updates from this Manager. - */ -@@ -229,11 +227,6 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver - mHistoryAdapter.generateHeaderItems(); - mHistoryAdapter.generateFooterItems(); - -- // Listen to changes in sign in state. -- IdentityServicesProvider.get() -- .getSigninManager(Profile.getLastUsedRegularProfile()) -- .addSignInStateObserver(this); -- - // Create PrefChangeRegistrar to receive notifications on preference changes. - mPrefChangeRegistrar = new PrefChangeRegistrar(); - mPrefChangeRegistrar.addObserver(Pref.ALLOW_DELETING_BROWSER_HISTORY, this); -@@ -267,9 +260,6 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver - mHistoryAdapter.onDestroyed(); - mLargeIconBridge.destroy(); - mLargeIconBridge = null; -- IdentityServicesProvider.get() -- .getSigninManager(Profile.getLastUsedRegularProfile()) -- .removeSignInStateObserver(this); - mPrefChangeRegistrar.destroy(); - } - -@@ -499,22 +489,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver - mHistoryAdapter.removeHeader(); - } - -- @Override -- public void onSignedIn() { -- mObserver.onUserAccountStateChanged(); -- mHistoryAdapter.onSignInStateChange(); -- } -- -- @Override -- public void onSignedOut() { -- mObserver.onUserAccountStateChanged(); -- mHistoryAdapter.onSignInStateChange(); -- } -- - @Override - public void onPreferenceChange() { - mObserver.onUserAccountStateChanged(); -- mHistoryAdapter.onSignInStateChange(); - } - - /** -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java -@@ -25,10 +25,7 @@ import org.chromium.chrome.browser.ntp.NewTabPage; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.settings.MainSettings; - import org.chromium.chrome.browser.settings.SettingsLauncherImpl; --import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; - import org.chromium.chrome.browser.signin.services.DisplayableProfileData; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; --import org.chromium.chrome.browser.signin.services.ProfileDataCache; - import org.chromium.chrome.browser.signin.services.SigninManager; - import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.tasks.ReturnToChromeUtil; -@@ -45,29 +42,19 @@ import org.chromium.components.feature_engagement.EventConstants; - import org.chromium.components.feature_engagement.FeatureConstants; - import org.chromium.components.feature_engagement.Tracker; - import org.chromium.components.signin.base.CoreAccountInfo; --import org.chromium.components.signin.identitymanager.ConsentLevel; --import org.chromium.components.signin.identitymanager.IdentityManager; --import org.chromium.components.signin.identitymanager.PrimaryAccountChangeEvent; - import org.chromium.components.signin.metrics.SigninAccessPoint; - - /** - * Handles displaying IdentityDisc on toolbar depending on several conditions - * (user sign-in state, whether NTP is shown) - */ --public class IdentityDiscController implements NativeInitObserver, ProfileDataCache.Observer, -- IdentityManager.Observer, ButtonDataProvider { -+public class IdentityDiscController implements NativeInitObserver, ButtonDataProvider { - // Context is used for fetching resources and launching preferences page. - private final Context mContext; - private ActivityLifecycleDispatcher mActivityLifecycleDispatcher; - private final ObservableSupplier mProfileSupplier; - private final Callback mProfileSupplierObserver = this::setProfile; - -- // We observe IdentityManager to receive primary account state change notifications. -- private IdentityManager mIdentityManager; -- -- // ProfileDataCache facilitates retrieving profile picture. -- private ProfileDataCache mProfileDataCache; -- - // Whether the identity disc is visible. - private boolean mIsIdentityDiscShown; - -@@ -198,22 +185,13 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa - * IdentityDiscController for profile data updates. - */ - private void ensureProfileDataCache(boolean isIdentityDiscShown) { -- if (!isIdentityDiscShown || mProfileDataCache != null) return; -- -- mProfileDataCache = -- ProfileDataCache.createWithoutBadge(mContext, R.dimen.toolbar_identity_disc_size); -- mProfileDataCache.addObserver(this); - } - - /** - * Returns Profile picture Drawable. The size of the image corresponds to current visual state. - */ - private Drawable getProfileImage(@Nullable String email) { -- assert mIsIdentityDiscShown; -- if (shouldUseSignedOutAvatar(email)) { -- return AppCompatResources.getDrawable(mContext, R.drawable.account_circle); -- } -- return mProfileDataCache.getProfileDataOrDefault(email).getImage(); -+ return null; - } - - /** -@@ -221,11 +199,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa - * when sign-in state changes. - */ - private void resetIdentityDiscCache() { -- if (mProfileDataCache != null) { -- assert mIsIdentityDiscShown; -- mProfileDataCache.removeObserver(this); -- mProfileDataCache = null; -- } - } - - private void notifyObservers(boolean hint) { -@@ -234,47 +207,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa - } - } - -- /** -- * Called after profile image becomes available. Updates the image on toolbar button. -- */ -- @Override -- public void onProfileDataUpdated(String accountEmail) { -- if (!mIsIdentityDiscShown) return; -- assert mProfileDataCache != null; -- -- if (accountEmail.equals(CoreAccountInfo.getEmailFrom(getSignedInAccountInfo()))) { -- /** -- * We need to call {@link notifyObservers(false)} before caling -- * {@link notifyObservers(true)}. This is because {@link notifyObservers(true)} has been -- * called in {@link setProfile()}, and without calling {@link notifyObservers(false)}, -- * the ObservableSupplierImpl doesn't propagate the call. See https://cubug.com/1137535. -- */ -- notifyObservers(false); -- notifyObservers(true); -- } -- } -- -- /** -- * Implements {@link IdentityManager.Observer}. -- * -- * IdentityDisc should be shown as long as the user is signed in or IDENTITY_STATUS_CONSISTENCY -- * is enabled. Whether the user is syncing or not should not matter. -- */ -- @Override -- public void onPrimaryAccountChanged(PrimaryAccountChangeEvent eventDetails) { -- switch (eventDetails.getEventTypeFor(ConsentLevel.SIGNIN)) { -- case PrimaryAccountChangeEvent.Type.SET: -- notifyObservers(true); -- break; -- case PrimaryAccountChangeEvent.Type.CLEARED: -- resetIdentityDiscCache(); -- notifyObservers(false); -- break; -- case PrimaryAccountChangeEvent.Type.NONE: -- break; -- } -- } -- - /** - * Call to tear down dependencies. - */ -@@ -285,16 +217,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa - mActivityLifecycleDispatcher = null; - } - -- if (mProfileDataCache != null) { -- mProfileDataCache.removeObserver(this); -- mProfileDataCache = null; -- } -- -- if (mIdentityManager != null) { -- mIdentityManager.removeObserver(this); -- mIdentityManager = null; -- } -- - if (mNativeIsInitialized) { - mProfileSupplier.removeObserver(mProfileSupplierObserver); - } -@@ -320,9 +242,7 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa - * @return account info for the current profile. Returns null for OTR profile. - */ - private CoreAccountInfo getSignedInAccountInfo() { -- return mIdentityManager != null -- ? mIdentityManager.getPrimaryAccountInfo(ConsentLevel.SIGNIN) -- : null; -+ return null; - } - - /** -@@ -330,17 +250,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa - * mIdentityManager is updated with the profile, as set to null if profile is off-the-record. - */ - private void setProfile(Profile profile) { -- if (mIdentityManager != null) { -- mIdentityManager.removeObserver(this); -- } -- -- if (profile.isOffTheRecord()) { -- mIdentityManager = null; -- } else { -- mIdentityManager = IdentityServicesProvider.get().getIdentityManager(profile); -- mIdentityManager.addObserver(this); -- notifyObservers(true); -- } - } - - private String getContentDescription(@Nullable String email) { -@@ -352,16 +261,8 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa - return mContext.getString(R.string.accessibility_toolbar_btn_signed_out_identity_disc); - } - -- DisplayableProfileData profileData = mProfileDataCache.getProfileDataOrDefault(email); -- String userName = profileData.getFullName(); -- if (profileData.hasDisplayableEmailAddress()) { -- return mContext.getString( -- R.string.accessibility_toolbar_btn_identity_disc_with_name_and_email, userName, -- email); -- } -- - return mContext.getString( -- R.string.accessibility_toolbar_btn_identity_disc_with_name, userName); -+ R.string.accessibility_toolbar_btn_identity_disc_with_name, ""); - } - - @VisibleForTesting -@@ -371,20 +272,13 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa - } - recordIdentityDiscUsed(); - -- SigninManager signinManager = IdentityServicesProvider.get().getSigninManager( -- Profile.getLastUsedRegularProfile()); -- if (getSignedInAccountInfo() == null && !signinManager.isSigninDisabledByPolicy()) { -- SyncConsentActivityLauncherImpl.get().launchActivityIfAllowed( -- mContext, SigninAccessPoint.NTP_SIGNED_OUT_ICON); -- } else { -- SettingsLauncher settingsLauncher = new SettingsLauncherImpl(); -- settingsLauncher.launchSettingsActivity(mContext, MainSettings.class); -- } -+ SettingsLauncher settingsLauncher = new SettingsLauncherImpl(); -+ settingsLauncher.launchSettingsActivity(mContext, MainSettings.class); - } - - @VisibleForTesting - boolean isProfileDataCacheEmpty() { -- return mProfileDataCache == null; -+ return true; - } - - private static boolean shouldUseSignedOutAvatar(@Nullable String email) { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java -@@ -36,7 +36,6 @@ import org.chromium.chrome.browser.download.DownloadManagerService; - import org.chromium.chrome.browser.flags.ChromeSwitches; - import org.chromium.chrome.browser.language.GlobalAppLocaleController; - import org.chromium.chrome.browser.metrics.UmaUtils; --import org.chromium.chrome.browser.signin.SigninCheckerProvider; - import org.chromium.chrome.browser.webapps.ChromeWebApkHost; - import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory; - import org.chromium.components.crash.browser.ChildProcessCrashObserver; -@@ -355,7 +354,6 @@ public class ChromeBrowserInitializer { - getBrowserStartupController().startBrowserProcessesSync( - LibraryProcessType.PROCESS_BROWSER, /*singleProcess=*/false, - /*startGpuProcess=*/startGpuProcess); -- SigninCheckerProvider.get(); - } finally { - TraceEvent.end("ChromeBrowserInitializer.startChromeBrowserProcessesSync"); - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java -@@ -80,7 +80,6 @@ import org.chromium.chrome.browser.query_tiles.QueryTileUtils; - import org.chromium.chrome.browser.quickactionsearchwidget.QuickActionSearchWidgetProvider; - import org.chromium.chrome.browser.rlz.RevenueStats; - import org.chromium.chrome.browser.searchwidget.SearchWidgetProvider; --import org.chromium.chrome.browser.signin.SigninCheckerProvider; - import org.chromium.chrome.browser.tab.state.PersistedTabData; - import org.chromium.chrome.browser.tab.state.ShoppingPersistedTabData; - import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityPreferencesManager; -@@ -99,8 +98,6 @@ import org.chromium.components.crash.anr.AnrCollector; - import org.chromium.components.embedder_support.util.UrlUtilities; - import org.chromium.components.minidump_uploader.CrashFileManager; - import org.chromium.components.optimization_guide.proto.HintsProto; --import org.chromium.components.signin.AccountManagerFacadeImpl; --import org.chromium.components.signin.AccountManagerFacadeProvider; - import org.chromium.components.version_info.Channel; - import org.chromium.components.version_info.VersionConstants; - import org.chromium.components.version_info.VersionInfo; -@@ -177,11 +174,6 @@ public class ProcessInitializationHandler { - protected void handlePreNativeInitialization() { - Context application = ContextUtils.getApplicationContext(); - -- // Initialize the AccountManagerFacade with the correct AccountManagerDelegate. Must be done -- // only once and before AccountManagerFacadeProvider.getInstance() is invoked. -- AccountManagerFacadeProvider.setInstance( -- new AccountManagerFacadeImpl(AppHooks.get().createAccountManagerDelegate())); -- - setProcessStateSummaryForAnrs(false); - } - -@@ -386,7 +378,6 @@ public class ProcessInitializationHandler { - deferredStartupHandler.addDeferredTask(new Runnable() { - @Override - public void run() { -- SigninCheckerProvider.get().onMainActivityStart(); - RevenueStats.getInstance(); - } - }); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java -@@ -15,24 +15,11 @@ import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.recent_tabs.ForeignSessionHelper; - import org.chromium.chrome.browser.recent_tabs.ForeignSessionHelper.ForeignSession; - import org.chromium.chrome.browser.recent_tabs.ForeignSessionHelper.ForeignSessionTab; --import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; --import org.chromium.chrome.browser.signin.services.ProfileDataCache; --import org.chromium.chrome.browser.signin.services.SigninManager; --import org.chromium.chrome.browser.signin.services.SigninManager.SignInStateObserver; --import org.chromium.chrome.browser.sync.SyncService; - import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.tabmodel.TabModel; - import org.chromium.chrome.browser.tabmodel.TabModelSelector; - import org.chromium.chrome.browser.ui.favicon.FaviconHelper; - import org.chromium.chrome.browser.ui.favicon.FaviconHelper.FaviconImageCallback; --import org.chromium.chrome.browser.ui.signin.PersonalizedSigninPromoView; --import org.chromium.chrome.browser.ui.signin.SyncPromoController; --import org.chromium.chrome.browser.ui.signin.SyncPromoController.SyncPromoState; --import org.chromium.components.signin.AccountManagerFacadeProvider; --import org.chromium.components.signin.AccountsChangeObserver; --import org.chromium.components.signin.identitymanager.ConsentLevel; --import org.chromium.components.signin.metrics.SigninAccessPoint; - import org.chromium.url.GURL; - - import java.util.HashMap; -@@ -42,8 +29,7 @@ import java.util.Map; - /** - * Provides the domain logic and data for RecentTabsPage and RecentTabsRowAdapter. - */ --public class RecentTabsManager implements SyncService.SyncStateChangedListener, SignInStateObserver, -- ProfileDataCache.Observer, AccountsChangeObserver { -+public class RecentTabsManager { - /** - * Implement this to receive updates when the page contents change. - */ -@@ -64,21 +50,15 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, - private final Runnable mShowHistoryManager; - - private TabModel mTabModel; -- private @SyncPromoState int mPromoState = SyncPromoState.NO_PROMO; - private FaviconHelper mFaviconHelper; - private ForeignSessionHelper mForeignSessionHelper; - private List mForeignSessions; - private List mRecentlyClosedEntries; - private RecentTabsPagePrefs mPrefs; - private RecentlyClosedTabManager mRecentlyClosedTabManager; -- private SigninManager mSignInManager; - private UpdatedCallback mUpdatedCallback; - private boolean mIsDestroyed; - -- private final ProfileDataCache mProfileDataCache; -- private final SyncPromoController mSyncPromoController; -- private final SyncService mSyncService; -- - /** - * Maps Session IDs to whether that entry was restored split by entry type. These are used to - * record historgrams on {@link #destroy()} to measure restore ratio. Cached Session IDs are -@@ -109,12 +89,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, - mRecentlyClosedTabManager = sRecentlyClosedTabManagerForTests != null - ? sRecentlyClosedTabManagerForTests - : new RecentlyClosedBridge(profile, tabModelSelector); -- mSignInManager = IdentityServicesProvider.get().getSigninManager(mProfile); -- -- mProfileDataCache = ProfileDataCache.createWithDefaultImageSizeAndNoBadge(context); -- mSyncPromoController = new SyncPromoController( -- SigninAccessPoint.RECENT_TABS, SyncConsentActivityLauncherImpl.get()); -- mSyncService = SyncService.get(); - - mRecentlyClosedTabManager.setEntriesUpdatedRunnable(this::updateRecentlyClosedEntries); - updateRecentlyClosedEntries(); -@@ -123,12 +97,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, - updateForeignSessions(); - mForeignSessionHelper.triggerSessionSync(); - -- mSyncService.addSyncStateChangedListener(this); -- mSignInManager.addSignInStateObserver(this); -- mProfileDataCache.addObserver(this); -- AccountManagerFacadeProvider.getInstance().addObserver(this); -- updatePromoState(); -- - SessionsInvalidationManager.get(mProfile).onRecentTabsPageOpened(); - } - -@@ -166,14 +134,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, - recordEntries("Group", mGroupSessionIdsRestored); - recordEntries("Bulk", mBulkSessionIdsRestored); - -- mSyncService.removeSyncStateChangedListener(this); -- -- mSignInManager.removeSignInStateObserver(this); -- mSignInManager = null; -- -- mProfileDataCache.removeObserver(this); -- AccountManagerFacadeProvider.getInstance().removeObserver(this); -- - mFaviconHelper.destroy(); - mFaviconHelper = null; - -@@ -392,97 +352,13 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, - mRecentlyClosedTabManager.clearRecentlyClosedEntries(); - } - -- /** -- * Collapse the promo. -- * -- * @param isCollapsed Whether the promo is collapsed. -- */ -- public void setPromoCollapsed(boolean isCollapsed) { -- if (mIsDestroyed) return; -- mPrefs.setSyncPromoCollapsed(isCollapsed); -- } -- - /** - * Determine whether the promo is collapsed. - * - * @return Whether the promo is collapsed. - */ - public boolean isPromoCollapsed() { -- return mPrefs.getSyncPromoCollapsed(); -- } -- -- /** Returns the current promo state. */ -- @SyncPromoState -- int getPromoState() { -- return mPromoState; -- } -- -- private @SyncPromoState int calculatePromoState() { -- if (!mSignInManager.getIdentityManager().hasPrimaryAccount(ConsentLevel.SYNC)) { -- if (!mSignInManager.isSyncOptInAllowed()) { -- return SyncPromoState.NO_PROMO; -- } -- if (mSignInManager.getIdentityManager().hasPrimaryAccount(ConsentLevel.SIGNIN)) { -- return SyncPromoState.PROMO_FOR_SIGNED_IN_STATE; -- } -- return SyncPromoState.PROMO_FOR_SIGNED_OUT_STATE; -- } -- -- if (mSyncService.isSyncRequested() && !mForeignSessions.isEmpty()) { -- return SyncPromoState.NO_PROMO; -- } -- return SyncPromoState.PROMO_FOR_SYNC_TURNED_OFF_STATE; -- } -- -- private void updatePromoState() { -- final @SyncPromoState int newState = calculatePromoState(); -- if (newState == mPromoState) return; -- -- final boolean hasSyncPromoStateChangedtoShown = -- (mPromoState == SyncPromoState.NO_PROMO -- || mPromoState == SyncPromoState.PROMO_FOR_SYNC_TURNED_OFF_STATE) -- && (newState == SyncPromoState.PROMO_FOR_SIGNED_IN_STATE -- || newState == SyncPromoState.PROMO_FOR_SIGNED_OUT_STATE); -- if (hasSyncPromoStateChangedtoShown) { -- mSyncPromoController.increasePromoShowCount(); -- } -- mPromoState = newState; -- } -- -- /** -- * Sets up the sync promo view. -- */ -- void setUpSyncPromoView(PersonalizedSigninPromoView view) { -- mSyncPromoController.setUpSyncPromoView(mProfileDataCache, view, null); -- } -- -- // SignInStateObserver implementation. -- @Override -- public void onSignedIn() { -- update(); -- } -- -- @Override -- public void onSignedOut() { -- update(); -- } -- -- // AccountsChangeObserver implementation. -- @Override -- public void onAccountsChanged() { -- update(); -- } -- -- // ProfileDataCache.Observer implementation. -- @Override -- public void onProfileDataUpdated(String accountEmail) { -- update(); -- } -- -- // SyncService.SyncStateChangedListener implementation. -- @Override -- public void syncStateChanged() { -- update(); -+ return true; - } - - private void onUpdateDone() { -@@ -492,7 +368,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, - } - - private void update() { -- updatePromoState(); - if (mIsDestroyed) return; - updateForeignSessions(); - onUpdateDone(); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java -@@ -29,11 +29,9 @@ import org.chromium.chrome.R; - import org.chromium.chrome.browser.recent_tabs.ForeignSessionHelper.ForeignSession; - import org.chromium.chrome.browser.recent_tabs.ForeignSessionHelper.ForeignSessionTab; - import org.chromium.chrome.browser.recent_tabs.ForeignSessionHelper.ForeignSessionWindow; --import org.chromium.chrome.browser.signin.LegacySyncPromoView; - import org.chromium.chrome.browser.ui.favicon.FaviconHelper.DefaultFaviconHelper; - import org.chromium.chrome.browser.ui.favicon.FaviconHelper.FaviconImageCallback; - import org.chromium.chrome.browser.ui.favicon.FaviconUtils; --import org.chromium.chrome.browser.ui.signin.SyncPromoController.SyncPromoState; - import org.chromium.components.browser_ui.styles.SemanticColorUtils; - import org.chromium.components.browser_ui.widget.RoundedIconGenerator; - import org.chromium.components.embedder_support.util.UrlUtilities; -@@ -421,12 +419,11 @@ public class RecentTabsRowAdapter extends BaseExpandableListAdapter { - - @Override - void setCollapsed(boolean isCollapsed) { -- mRecentTabsManager.setPromoCollapsed(isCollapsed); - } - - @Override - boolean isCollapsed() { -- return mRecentTabsManager.isPromoCollapsed(); -+ return true; - } - } - -@@ -451,13 +448,6 @@ public class RecentTabsRowAdapter extends BaseExpandableListAdapter { - @Override - View getChildView( - int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { -- if (convertView == null) { -- LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext()); -- convertView = -- layoutInflater.inflate(R.layout.sync_promo_view_recent_tabs, parent, false); -- } -- mRecentTabsManager.setUpSyncPromoView( -- convertView.findViewById(R.id.signin_promo_view_container)); - return convertView; - } - } -@@ -474,9 +464,6 @@ public class RecentTabsRowAdapter extends BaseExpandableListAdapter { - @Override - View getChildView( - int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { -- if (convertView == null) { -- convertView = LegacySyncPromoView.create(parent, SigninAccessPoint.RECENT_TABS); -- } - return convertView; - } - } -@@ -911,22 +898,6 @@ public class RecentTabsRowAdapter extends BaseExpandableListAdapter { - addGroup(new ForeignSessionGroup(session)); - } - -- switch (mRecentTabsManager.getPromoState()) { -- case SyncPromoState.NO_PROMO: -- break; -- case SyncPromoState.PROMO_FOR_SIGNED_OUT_STATE: -- addGroup(new PersonalizedSyncPromoGroup(ChildType.PERSONALIZED_SIGNIN_PROMO)); -- break; -- case SyncPromoState.PROMO_FOR_SIGNED_IN_STATE: -- addGroup(new PersonalizedSyncPromoGroup(ChildType.PERSONALIZED_SYNC_PROMO)); -- break; -- case SyncPromoState.PROMO_FOR_SYNC_TURNED_OFF_STATE: -- addGroup(new SyncPromoGroup()); -- break; -- default: -- assert false : "Unexpected value for promo type!"; -- } -- - // Add separator line after the recently closed tabs group. - int recentlyClosedIndex = mGroups.indexOf(mRecentlyClosedTabsGroup); - if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity)) { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java -@@ -25,7 +25,6 @@ import org.chromium.chrome.browser.omnibox.voice.AssistantVoiceSearchService; - import org.chromium.chrome.browser.preferences.SharedPreferencesManager; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; - import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; - import org.chromium.components.externalauth.ExternalAuthUtils; - import org.chromium.components.signin.AccountManagerFacadeProvider; -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/RequestGenerator.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/RequestGenerator.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/RequestGenerator.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/RequestGenerator.java -@@ -34,9 +34,6 @@ public abstract class RequestGenerator { - private static final String URL_OMAHA_SERVER = "https://update.googleapis.com/service/update2"; - - protected RequestGenerator() { -- UniqueIdentificationGeneratorFactory.registerGenerator( -- SettingsSecureBasedIdentificationGenerator.GENERATOR_ID, -- new SettingsSecureBasedIdentificationGenerator(), false); - } - - /** -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/AccountChooserDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/AccountChooserDialog.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/AccountChooserDialog.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/AccountChooserDialog.java -@@ -128,7 +128,7 @@ public class AccountChooserDialog - Drawable avatar = credential.getAvatar(); - if (avatar == null) { - avatar = AppCompatResources.getDrawable( -- getContext(), R.drawable.logo_avatar_anonymous); -+ getContext(), R.drawable.ic_help_and_feedback); - } - avatarView.setImageDrawable(avatar); - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/AutoSigninSnackbarController.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/AutoSigninSnackbarController.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/AutoSigninSnackbarController.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/AutoSigninSnackbarController.java -@@ -47,7 +47,7 @@ public class AutoSigninSnackbarController implements SnackbarManager.SnackbarCon - Snackbar snackbar = Snackbar.make( - text, snackbarController, Snackbar.TYPE_NOTIFICATION, Snackbar.UMA_AUTO_LOGIN); - int backgroundColor = SemanticColorUtils.getDefaultControlColorActive(activity); -- Drawable icon = AppCompatResources.getDrawable(activity, R.drawable.logo_avatar_anonymous); -+ Drawable icon = AppCompatResources.getDrawable(activity, R.drawable.ic_help_and_feedback); - snackbar.setSingleLine(false) - .setBackgroundColor(backgroundColor) - .setProfileImage(icon) -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java -@@ -10,7 +10,6 @@ import org.chromium.base.annotations.CalledByNative; - import org.chromium.base.supplier.ObservableSupplier; - import org.chromium.base.supplier.ObservableSupplierImpl; - import org.chromium.chrome.browser.settings.SettingsLauncherImpl; --import org.chromium.chrome.browser.sync.SyncService; - import org.chromium.content_public.browser.WebContents; - import org.chromium.ui.base.WindowAndroid; - import org.chromium.ui.modaldialog.ModalDialogManager; -@@ -32,9 +31,8 @@ public class PasswordManagerLauncher { - @ManagePasswordsReferrer int referrer, - ObservableSupplier modalDialogManagerSupplier, - boolean managePasskeys) { -- SyncService syncService = SyncService.get(); - PasswordManagerHelper.showPasswordSettings(activity, referrer, new SettingsLauncherImpl(), -- syncService, modalDialogManagerSupplier, managePasskeys); -+ modalDialogManagerSupplier, managePasskeys); - } - - @CalledByNative -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java -@@ -41,8 +41,6 @@ import org.chromium.chrome.browser.preferences.Pref; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate; - import org.chromium.chrome.browser.settings.SettingsLauncherImpl; --import org.chromium.chrome.browser.sync.SyncService; --import org.chromium.chrome.browser.sync.settings.SyncSettingsUtils; - import org.chromium.components.browser_ui.settings.ChromeBasePreference; - import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; - import org.chromium.components.browser_ui.settings.SearchUtils; -@@ -64,7 +62,7 @@ import java.util.Locale; - */ - public class PasswordSettings extends PreferenceFragmentCompat - implements PasswordManagerHandler.PasswordListObserver, -- Preference.OnPreferenceClickListener, SyncService.SyncStateChangedListener, -+ Preference.OnPreferenceClickListener, - FragmentHelpAndFeedbackLauncher { - @IntDef({TrustedVaultBannerState.NOT_SHOWN, TrustedVaultBannerState.OFFER_OPT_IN, - TrustedVaultBannerState.OPTED_IN}) -@@ -159,10 +157,6 @@ public class PasswordSettings extends PreferenceFragmentCompat - setPreferenceScreen(getPreferenceManager().createPreferenceScreen(getStyledContext())); - PasswordManagerHandlerProvider.getInstance().addObserver(this); - -- if (SyncService.get() != null) { -- SyncService.get().addSyncStateChangedListener(this); -- } -- - setHasOptionsMenu(true); // Password Export might be optional but Search is always present. - - mManagePasswordsReferrer = getReferrerFromInstanceStateOrLaunchBundle(savedInstanceState); -@@ -467,9 +461,6 @@ public class PasswordSettings extends PreferenceFragmentCompat - public void onDestroy() { - super.onDestroy(); - -- if (SyncService.get() != null) { -- SyncService.get().removeSyncStateChangedListener(this); -- } - // The component should only be destroyed when the activity has been closed by the user - // (e.g. by pressing on the back button) and not when the activity is temporarily destroyed - // by the system. -@@ -587,34 +578,6 @@ public class PasswordSettings extends PreferenceFragmentCompat - } - - private void displayManageAccountLink() { -- SyncService syncService = SyncService.get(); -- if (syncService == null || !syncService.isEngineInitialized()) { -- return; -- } -- if (!PasswordManagerHelper.isSyncingPasswordsWithNoCustomPassphrase(SyncService.get())) { -- return; -- } -- if (mSearchQuery != null && !mNoPasswords) { -- return; // Don't add the Manage Account link if there is a search going on. -- } -- if (getPreferenceScreen().findPreference(PREF_KEY_MANAGE_ACCOUNT_LINK) != null) { -- return; // Don't add the Manage Account link if it's present. -- } -- if (mLinkPref != null) { -- // If we created the link before, reuse it. -- getPreferenceScreen().addPreference(mLinkPref); -- return; -- } -- ForegroundColorSpan colorSpan = -- new ForegroundColorSpan(SemanticColorUtils.getDefaultTextColorLink(getContext())); -- SpannableString title = SpanApplier.applySpans(getString(R.string.manage_passwords_text), -- new SpanApplier.SpanInfo("", "", colorSpan)); -- mLinkPref = new ChromeBasePreference(getStyledContext()); -- mLinkPref.setKey(PREF_KEY_MANAGE_ACCOUNT_LINK); -- mLinkPref.setTitle(title); -- mLinkPref.setOnPreferenceClickListener(this); -- mLinkPref.setOrder(ORDER_MANAGE_ACCOUNT_LINK); -- getPreferenceScreen().addPreference(mLinkPref); - } - - private Context getStyledContext() { -@@ -625,43 +588,11 @@ public class PasswordSettings extends PreferenceFragmentCompat - return UserPrefs.get(Profile.getLastUsedRegularProfile()); - } - -- @Override -- public void syncStateChanged() { -- final @TrustedVaultBannerState int oldTrustedVaultBannerState = mTrustedVaultBannerState; -- computeTrustedVaultBannerState(); -- if (oldTrustedVaultBannerState != mTrustedVaultBannerState) { -- rebuildPasswordLists(); -- } -- } -- - private void computeTrustedVaultBannerState() { -- final SyncService syncService = SyncService.get(); -- if (syncService == null) { -- mTrustedVaultBannerState = TrustedVaultBannerState.NOT_SHOWN; -- return; -- } -- if (!syncService.isEngineInitialized()) { -- // Can't call getPassphraseType() yet. - mTrustedVaultBannerState = TrustedVaultBannerState.NOT_SHOWN; -- return; -- } -- if (syncService.getPassphraseType() == PassphraseType.TRUSTED_VAULT_PASSPHRASE) { -- mTrustedVaultBannerState = TrustedVaultBannerState.OPTED_IN; -- return; -- } -- if (syncService.shouldOfferTrustedVaultOptIn()) { -- mTrustedVaultBannerState = TrustedVaultBannerState.OFFER_OPT_IN; -- return; -- } -- mTrustedVaultBannerState = TrustedVaultBannerState.NOT_SHOWN; - } - - private boolean openTrustedVaultOptInDialog(Preference unused) { -- assert SyncService.get() != null; -- CoreAccountInfo accountInfo = SyncService.get().getAccountInfo(); -- assert accountInfo != null; -- SyncSettingsUtils.openTrustedVaultOptInDialog( -- this, accountInfo, REQUEST_CODE_TRUSTED_VAULT_OPT_IN); - // Return true to notify the click was handled. - return true; - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java -@@ -45,7 +45,6 @@ import org.chromium.chrome.browser.payments.ui.PaymentRequestSection.OptionSecti - import org.chromium.chrome.browser.payments.ui.PaymentRequestSection.SectionSeparator; - import org.chromium.chrome.browser.payments.ui.PaymentUiService.PaymentUisShowStateReconciler; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; - import org.chromium.components.autofill.EditableOption; - import org.chromium.components.autofill.prefeditor.EditorObserverForTest; - import org.chromium.components.browser_ui.widget.FadingEdgeScrollView; -@@ -1123,16 +1122,7 @@ public class PaymentRequestUI implements DimmingDialog.OnDismissListener, View.O - */ - @Nullable - private String getSignedInUsersEmail() { -- if (mProfile.isOffTheRecord()) { -- return null; -- } -- -- IdentityManager identityManager = -- IdentityServicesProvider.get().getIdentityManager(mProfile); -- if (identityManager == null) return null; -- CoreAccountInfo info = identityManager.getPrimaryAccountInfo(ConsentLevel.SYNC); -- if (info == null) return null; -- return info.getEmail(); -+ return null; - } - - private Callback createUpdateSectionCallback(@DataType final int type) { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -33,9 +33,6 @@ import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsBaseFra - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate; - import org.chromium.chrome.browser.settings.SettingsLauncherImpl; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; --import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings; --import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; - import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; - import org.chromium.components.browser_ui.settings.SettingsLauncher; - import org.chromium.components.browser_ui.settings.SettingsUtils; -@@ -58,7 +55,6 @@ public class PrivacySettings extends PreferenceFragmentCompat - private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode"; - private static final String PREF_SECURE_DNS = "secure_dns"; - private static final String PREF_DO_NOT_TRACK = "do_not_track"; -- private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; - private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data"; - private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; - private static final String PREF_PRIVACY_GUIDE = "privacy_guide"; -@@ -144,9 +140,6 @@ public class PrivacySettings extends PreferenceFragmentCompat - Preference secureDnsPref = findPreference(PREF_SECURE_DNS); - secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled()); - -- Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK); -- syncAndServicesLink.setSummary(buildSyncAndServicesLink()); -- - Preference thirdPartyCookies = findPreference(PREF_THIRD_PARTY_COOKIES); - if (thirdPartyCookies != null) { - thirdPartyCookies.getExtras().putString( -@@ -158,30 +151,6 @@ public class PrivacySettings extends PreferenceFragmentCompat - updatePreferences(); - } - -- private SpannableString buildSyncAndServicesLink() { -- SettingsLauncher settingsLauncher = new SettingsLauncherImpl(); -- NoUnderlineClickableSpan servicesLink = new NoUnderlineClickableSpan(getContext(), v -> { -- settingsLauncher.launchSettingsActivity(getActivity(), GoogleServicesSettings.class); -- }); -- if (IdentityServicesProvider.get() -- .getIdentityManager(Profile.getLastUsedRegularProfile()) -- .getPrimaryAccountInfo(ConsentLevel.SYNC) -- == null) { -- // Sync is off, show the string with one link to "Google Services". -- return SpanApplier.applySpans( -- getString(R.string.privacy_sync_and_services_link_sync_off), -- new SpanApplier.SpanInfo("", "", servicesLink)); -- } -- // Otherwise, show the string with both links to "Sync" and "Google Services". -- NoUnderlineClickableSpan syncLink = new NoUnderlineClickableSpan(getContext(), v -> { -- settingsLauncher.launchSettingsActivity(getActivity(), ManageSyncSettings.class, -- ManageSyncSettings.createArguments(false)); -- }); -- return SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link_sync_on), -- new SpanApplier.SpanInfo("", "", syncLink), -- new SpanApplier.SpanInfo("", "", servicesLink)); -- } -- - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - String key = preference.getKey(); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java -@@ -4,7 +4,6 @@ - - package org.chromium.chrome.browser.settings; - --import static org.chromium.chrome.browser.password_manager.PasswordManagerHelper.hasChosenToSyncPasswords; - import static org.chromium.chrome.browser.password_manager.PasswordManagerHelper.usesUnifiedPasswordManagerBranding; - import static org.chromium.chrome.browser.password_manager.PasswordManagerHelper.usesUnifiedPasswordManagerUI; - -@@ -39,13 +38,6 @@ import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; - import org.chromium.chrome.browser.preferences.Pref; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; --import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; --import org.chromium.chrome.browser.signin.services.SigninManager; --import org.chromium.chrome.browser.sync.SyncService; --import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; --import org.chromium.chrome.browser.sync.settings.SignInPreference; --import org.chromium.chrome.browser.sync.settings.SyncSettingsUtils; - import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarStatePredictor; - import org.chromium.chrome.browser.tracing.settings.DeveloperSettings; - import org.chromium.components.browser_ui.settings.ChromeBasePreference; -@@ -55,9 +47,6 @@ import org.chromium.components.browser_ui.settings.SettingsUtils; - import org.chromium.components.browser_ui.styles.SemanticColorUtils; - import org.chromium.components.search_engines.TemplateUrl; - import org.chromium.components.search_engines.TemplateUrlService; --import org.chromium.components.signin.base.CoreAccountInfo; --import org.chromium.components.signin.identitymanager.ConsentLevel; --import org.chromium.components.signin.metrics.SigninAccessPoint; - import org.chromium.components.user_prefs.UserPrefs; - import org.chromium.ui.modaldialog.ModalDialogManager; - import org.chromium.ui.text.SpanApplier; -@@ -70,14 +59,10 @@ import java.util.Map; - * The main settings screen, shown when the user first opens Settings. - */ - public class MainSettings extends PreferenceFragmentCompat -- implements TemplateUrlService.LoadListener, SyncService.SyncStateChangedListener, -- SigninManager.SignInStateObserver, ProfileDependentSetting { -- public static final String PREF_SYNC_PROMO = "sync_promo"; -+ implements TemplateUrlService.LoadListener, ProfileDependentSetting { - public static final String PREF_ACCOUNT_AND_GOOGLE_SERVICES_SECTION = - "account_and_google_services_section"; - public static final String PREF_SIGN_IN = "sign_in"; -- public static final String PREF_MANAGE_SYNC = "manage_sync"; -- public static final String PREF_GOOGLE_SERVICES = "google_services"; - public static final String PREF_SEARCH_ENGINE = "search_engine"; - public static final String PREF_PASSWORDS = "passwords"; - public static final String PREF_HOMEPAGE = "homepage"; -@@ -95,8 +80,6 @@ public class MainSettings extends PreferenceFragmentCompat - - private final ManagedPreferenceDelegate mManagedPreferenceDelegate; - private final Map mAllPreferences = new HashMap<>(); -- private SignInPreference mSignInPreference; -- private ChromeBasePreference mManageSync; - private @Nullable PasswordCheck mPasswordCheck; - private Profile mProfile; - private ObservableSupplier mModalDialogManagerSupplier; -@@ -138,30 +121,13 @@ public class MainSettings extends PreferenceFragmentCompat - @Override - public void onStart() { - super.onStart(); -- SigninManager signinManager = IdentityServicesProvider.get().getSigninManager(mProfile); -- if (signinManager.isSigninSupported()) { -- signinManager.addSignInStateObserver(this); -- } -- SyncService syncService = SyncService.get(); -- if (syncService != null) { -- syncService.addSyncStateChangedListener(this); -- } - } - - @Override - public void onStop() { - super.onStop(); -- SigninManager signinManager = IdentityServicesProvider.get().getSigninManager(mProfile); -- if (signinManager.isSigninSupported()) { -- signinManager.removeSignInStateObserver(this); -- } -- SyncService syncService = SyncService.get(); -- if (syncService != null) { -- syncService.removeSyncStateChangedListener(this); -- } - } - -- @Override - public void onResume() { - super.onResume(); - updatePreferences(); -@@ -232,8 +198,6 @@ public class MainSettings extends PreferenceFragmentCompat - Preference preference = getPreferenceScreen().getPreference(index); - mAllPreferences.put(preference.getKey(), preference); - } -- mSignInPreference = (SignInPreference) mAllPreferences.get(PREF_SIGN_IN); -- mManageSync = (ChromeBasePreference) findPreference(PREF_MANAGE_SYNC); - } - - private void setManagedPreferenceDelegateForPreference(String key) { -@@ -242,13 +206,6 @@ public class MainSettings extends PreferenceFragmentCompat - } - - private void updatePreferences() { -- if (IdentityServicesProvider.get().getSigninManager(mProfile).isSigninSupported()) { -- addPreferenceIfAbsent(PREF_SIGN_IN); -- } else { -- removePreferenceIfPresent(PREF_SIGN_IN); -- } -- -- updateManageSyncPreference(); - updateSearchEnginePreference(); - updatePasswordsPreference(); - -@@ -282,35 +239,6 @@ public class MainSettings extends PreferenceFragmentCompat - if (preference != null) getPreferenceScreen().removePreference(preference); - } - -- private void updateManageSyncPreference() { -- String primaryAccountName = CoreAccountInfo.getEmailFrom( -- IdentityServicesProvider.get().getIdentityManager(mProfile).getPrimaryAccountInfo( -- ConsentLevel.SIGNIN)); -- boolean showManageSync = primaryAccountName != null; -- mManageSync.setVisible(showManageSync); -- if (!showManageSync) return; -- -- boolean isSyncConsentAvailable = -- IdentityServicesProvider.get().getIdentityManager(mProfile).getPrimaryAccountInfo( -- ConsentLevel.SYNC) -- != null; -- mManageSync.setIcon(SyncSettingsUtils.getSyncStatusIcon(getActivity())); -- mManageSync.setSummary(SyncSettingsUtils.getSyncStatusSummary(getActivity())); -- mManageSync.setOnPreferenceClickListener(pref -> { -- Context context = getContext(); -- if (SyncService.get().isSyncDisabledByEnterprisePolicy()) { -- SyncSettingsUtils.showSyncDisabledByAdministratorToast(context); -- } else if (isSyncConsentAvailable) { -- SettingsLauncher settingsLauncher = new SettingsLauncherImpl(); -- settingsLauncher.launchSettingsActivity(context, ManageSyncSettings.class); -- } else { -- SyncConsentActivityLauncherImpl.get().launchActivityForPromoDefaultFlow( -- context, SigninAccessPoint.SETTINGS_SYNC_OFF_ROW, primaryAccountName); -- } -- return true; -- }); -- } -- - private void updateSearchEnginePreference() { - TemplateUrlService templateUrlService = TemplateUrlServiceFactory.getForProfile(mProfile); - if (!templateUrlService.isLoaded()) { -@@ -347,8 +275,7 @@ public class MainSettings extends PreferenceFragmentCompat - } - - private boolean shouldShowNewLabelForPasswordsPreference() { -- return usesUnifiedPasswordManagerUI() && hasChosenToSyncPasswords(SyncService.get()) -- && !UserPrefs.get(mProfile).getBoolean(Pref.PASSWORDS_PREF_WITH_NEW_LABEL_USED); -+ return false; - } - - // TODO(crbug.com/1217070): remove this method once UPM feature is rolled out. -@@ -379,19 +306,6 @@ public class MainSettings extends PreferenceFragmentCompat - pref.setSummary(isOn ? R.string.text_on : R.string.text_off); - } - -- // SigninManager.SignInStateObserver implementation. -- @Override -- public void onSignedIn() { -- // After signing in or out of a managed account, preferences may change or become enabled -- // or disabled. -- new Handler().post(() -> updatePreferences()); -- } -- -- @Override -- public void onSignedOut() { -- updatePreferences(); -- } -- - // TemplateUrlService.LoadListener implementation. - @Override - public void onTemplateUrlServiceLoaded() { -@@ -399,12 +313,6 @@ public class MainSettings extends PreferenceFragmentCompat - updateSearchEnginePreference(); - } - -- @Override -- public void syncStateChanged() { -- updateManageSyncPreference(); -- updatePasswordsPreference(); -- } -- - @VisibleForTesting - public ManagedPreferenceDelegate getManagedPreferenceDelegateForTest() { - return mManagedPreferenceDelegate; -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -60,11 +60,7 @@ import org.chromium.chrome.browser.privacy_sandbox.AdMeasurementFragment; - import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsBaseFragment; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.profiles.ProfileManagerUtils; --import org.chromium.chrome.browser.safety_check.SafetyCheckCoordinator; --import org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment; --import org.chromium.chrome.browser.safety_check.SafetyCheckUpdatesDelegateImpl; - import org.chromium.chrome.browser.search_engines.settings.SearchEngineSettings; --import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; - import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate; - import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; - import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable; -@@ -430,11 +426,6 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity - fragmentHelpAndFeedbackLauncher.setHelpAndFeedbackLauncher( - HelpAndFeedbackLauncherImpl.getForProfile(mProfile)); - } -- if (fragment instanceof SafetyCheckSettingsFragment) { -- SafetyCheckCoordinator.create((SafetyCheckSettingsFragment) fragment, -- new SafetyCheckUpdatesDelegateImpl(), mSettingsLauncher, -- SyncConsentActivityLauncherImpl.get(), getModalDialogManagerSupplier()); -- } - if (fragment instanceof PasswordCheckFragmentView) { - PasswordCheckComponentUiFactory.create((PasswordCheckFragmentView) fragment, - HelpAndFeedbackLauncherImpl.getForProfile(mProfile), mSettingsLauncher, -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java b/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java -@@ -236,7 +236,7 @@ public class ChromeSurveyController { - MessageIdentifier.CHROME_SURVEY) - .with(MessageBannerProperties.TITLE, - resources.getString(R.string.chrome_survey_message_title)) -- .with(MessageBannerProperties.ICON_RESOURCE_ID, R.drawable.chrome_sync_logo) -+ .with(MessageBannerProperties.ICON_RESOURCE_ID, R.drawable.ic_help_and_feedback) - .with(MessageBannerProperties.ICON_TINT_COLOR, - MessageBannerProperties.TINT_NONE) - .with(MessageBannerProperties.PRIMARY_BUTTON_TEXT, -@@ -290,7 +290,7 @@ public class ChromeSurveyController { - */ - private void showSurvey(String siteId) { - SurveyController.getInstance().showSurveyIfAvailable( -- mActivity, siteId, true, R.drawable.chrome_sync_logo, mLifecycleDispatcher); -+ mActivity, siteId, true, R.drawable.ic_help_and_feedback, mLifecycleDispatcher); - } - - /** -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -85,7 +85,6 @@ import org.chromium.chrome.browser.read_later.ReadLaterIPHController; - import org.chromium.chrome.browser.settings.SettingsLauncherImpl; - import org.chromium.chrome.browser.share.ShareDelegate; - import org.chromium.chrome.browser.share.link_to_text.LinkToTextIPHController; --import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; - import org.chromium.chrome.browser.status_indicator.StatusIndicatorCoordinator; - import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsService; - import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsServiceFactory; -@@ -105,7 +104,6 @@ import org.chromium.chrome.browser.ui.appmenu.AppMenuBlocker; - import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate; - import org.chromium.chrome.browser.ui.default_browser_promo.DefaultBrowserPromoUtils; - import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; --import org.chromium.chrome.browser.ui.signin.FullScreenSyncPromoUtil; - import org.chromium.chrome.browser.ui.system.StatusBarColorController.StatusBarColorProvider; - import org.chromium.chrome.browser.webapps.AddToHomescreenIPHController; - import org.chromium.chrome.browser.webapps.AddToHomescreenMostVisitedTileClickObserver; -@@ -945,23 +943,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { - } - } - -- private boolean maybeShowPromo() { -- // Only one promo can be shown in one run to avoid nagging users too much. -- if (FullScreenSyncPromoUtil.launchPromoIfNeeded(mActivity, -- SyncConsentActivityLauncherImpl.get(), VersionInfo.getProductMajorVersion())) { -- return true; -- } -- if (DefaultBrowserPromoUtils.prepareLaunchPromoIfNeeded( -- mActivity, mWindowAndroid, false /* ignoreMaxCount */)) { -- return true; -- } -- if (AppLanguagePromoDialog.maybeShowPrompt(mActivity, mModalDialogManagerSupplier, -- () -> ApplicationLifetime.terminate(true))) { -- return true; -- } -- return LanguageAskPrompt.maybeShowLanguageAskPrompt(mActivity, mModalDialogManagerSupplier); -- } -- - @VisibleForTesting - public static void setDisableStatusIndicatorAnimationsForTesting(boolean disable) { - sDisableStatusIndicatorAnimations = disable; -diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn ---- a/chrome/browser/BUILD.gn -+++ b/chrome/browser/BUILD.gn -@@ -1979,7 +1979,6 @@ static_library("browser") { - "//chrome/browser/share", - "//chrome/browser/sharing:buildflags", - "//chrome/browser/sharing/proto", -- "//chrome/browser/signin:identity_manager_provider", - "//chrome/browser/storage_access_api:permissions", - "//chrome/browser/thumbnail", - "//chrome/browser/top_level_storage_access_api:permissions", -@@ -2809,8 +2808,6 @@ static_library("browser") { - "android/signin/fre_mobile_identity_consistency_field_trial.h", - "android/signin/signin_bridge.cc", - "android/signin/signin_bridge.h", -- "android/signin/signin_manager_android.cc", -- "android/signin/signin_manager_android.h", - "android/signin/signin_metrics_utils.cc", - "android/signin/unified_consent_service_bridge.cc", - "android/signin/web_signin_bridge.cc", -@@ -3168,8 +3165,6 @@ static_library("browser") { - "sharing/sms/sms_fetch_request_handler.h", - "shell_integration_android.cc", - "signin/identity_services_provider_android.cc", -- "signin/signin_manager_android_factory.cc", -- "signin/signin_manager_android_factory.h", - "ssl/chrome_security_state_client.cc", - "ssl/chrome_security_state_client.h", - "ssl/chrome_security_state_model_delegate.cc", -@@ -4489,10 +4484,6 @@ static_library("browser") { - "profiles/profile_statistics_factory.h", - "signin/force_signin_verifier.cc", - "signin/force_signin_verifier.h", -- "signin/signin_manager.cc", -- "signin/signin_manager.h", -- "signin/signin_manager_factory.cc", -- "signin/signin_manager_factory.h", - "upgrade_detector/get_installed_version.cc", - "upgrade_detector/get_installed_version.h", - "upgrade_detector/installed_version_monitor.h", -diff --git a/chrome/browser/android/signin/fre_mobile_identity_consistency_field_trial.cc b/chrome/browser/android/signin/fre_mobile_identity_consistency_field_trial.cc ---- a/chrome/browser/android/signin/fre_mobile_identity_consistency_field_trial.cc -+++ b/chrome/browser/android/signin/fre_mobile_identity_consistency_field_trial.cc -@@ -5,25 +5,16 @@ - #include "chrome/browser/android/signin/fre_mobile_identity_consistency_field_trial.h" - #include "base/android/jni_android.h" - #include "base/android/jni_string.h" --#include "chrome/browser/signin/services/android/jni_headers/FREMobileIdentityConsistencyFieldTrial_jni.h" - - namespace fre_mobile_identity_consistency_field_trial { - - std::string GetFREFieldTrialGroupName() { -- JNIEnv* env = base::android::AttachCurrentThread(); -- base::android::ScopedJavaLocalRef group = -- Java_FREMobileIdentityConsistencyFieldTrial_getFirstRunVariationsTrialGroupName( -- env); -- return base::android::ConvertJavaStringToUTF8(env, group); -+ return std::string(); - } - - variations::VariationID GetFREFieldTrialVariationId(int low_entropy_source, - int low_entropy_size) { -- JNIEnv* env = base::android::AttachCurrentThread(); -- jint variation_id = -- Java_FREMobileIdentityConsistencyFieldTrial_getFirstRunTrialVariationId( -- env, low_entropy_source, low_entropy_size); -- return static_cast(variation_id); -+ return variations::EMPTY_ID; - } - - } // namespace fre_mobile_identity_consistency_field_trial -diff --git a/chrome/browser/commerce/android/BUILD.gn b/chrome/browser/commerce/android/BUILD.gn ---- a/chrome/browser/commerce/android/BUILD.gn -+++ b/chrome/browser/commerce/android/BUILD.gn -@@ -24,8 +24,6 @@ android_library("java") { - "//chrome/browser/preferences:java", - "//chrome/browser/profiles/android:java", - "//chrome/browser/settings:java", -- "//chrome/browser/signin/services/android:java", -- "//chrome/browser/sync/android:java", - "//components/browser_ui/notifications/android:java", - "//components/browser_ui/settings/android:java", - "//components/commerce/core/android:core_java", -diff --git a/chrome/browser/commerce/android/java/src/org/chromium/chrome/browser/commerce/PriceNotificationPreferenceFragment.java b/chrome/browser/commerce/android/java/src/org/chromium/chrome/browser/commerce/PriceNotificationPreferenceFragment.java ---- a/chrome/browser/commerce/android/java/src/org/chromium/chrome/browser/commerce/PriceNotificationPreferenceFragment.java -+++ b/chrome/browser/commerce/android/java/src/org/chromium/chrome/browser/commerce/PriceNotificationPreferenceFragment.java -@@ -21,14 +21,12 @@ import org.chromium.chrome.browser.preferences.Pref; - import org.chromium.chrome.browser.preferences.PrefChangeRegistrar; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.settings.ProfileDependentSetting; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; - import org.chromium.components.browser_ui.notifications.NotificationManagerProxy; - import org.chromium.components.browser_ui.notifications.NotificationManagerProxyImpl; - import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; - import org.chromium.components.browser_ui.settings.SettingsUtils; - import org.chromium.components.browser_ui.settings.TextMessagePreference; - import org.chromium.components.prefs.PrefService; --import org.chromium.components.signin.identitymanager.ConsentLevel; - import org.chromium.components.user_prefs.UserPrefs; - import org.chromium.ui.text.NoUnderlineClickableSpan; - import org.chromium.ui.text.SpanApplier; -@@ -69,12 +67,8 @@ public class PriceNotificationPreferenceFragment - mEmailNotificationsSwitch = - (ChromeSwitchPreference) findPreference(PREF_EMAIL_NOTIFICATIONS); - mEmailNotificationsSwitch.setOnPreferenceChangeListener(this::onPreferenceChange); -- String email = IdentityServicesProvider.get() -- .getIdentityManager(mProfile) -- .getPrimaryAccountInfo(ConsentLevel.SYNC) -- .getEmail(); - mEmailNotificationsSwitch.setSummary( -- getString(R.string.price_notifications_settings_email_description, email)); -+ getString(R.string.price_notifications_settings_email_description, "nobody@example.com")); - mPrefChangeRegistrar.addObserver( - Pref.PRICE_EMAIL_NOTIFICATIONS_ENABLED, this::updateEmailNotificationSwitch); - updateEmailNotificationSwitch(); -diff --git a/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java b/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java ---- a/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java -+++ b/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java -@@ -81,14 +81,11 @@ public class PriceTrackingFeatures { - } - - private static boolean isSignedIn() { -- return IdentityServicesProvider.get() -- .getIdentityManager(Profile.getLastUsedRegularProfile()) -- .hasPrimaryAccount(ConsentLevel.SYNC); -+ return false; - } - - private static boolean isAnonymizedUrlDataCollectionEnabled() { -- return UnifiedConsentServiceBridge.isUrlKeyedAnonymizedDataCollectionEnabled( -- Profile.getLastUsedRegularProfile()); -+ return false; - } - - @VisibleForTesting -@@ -142,4 +139,4 @@ public class PriceTrackingFeatures { - } - return isPriceTrackingEligible(); - } --} -\ No newline at end of file -+} -diff --git a/chrome/browser/commerce/subscriptions/android/BUILD.gn b/chrome/browser/commerce/subscriptions/android/BUILD.gn ---- a/chrome/browser/commerce/subscriptions/android/BUILD.gn -+++ b/chrome/browser/commerce/subscriptions/android/BUILD.gn -@@ -21,7 +21,6 @@ android_library("subscriptions_java") { - "//chrome/browser/flags:java", - "//chrome/browser/preferences:java", - "//chrome/browser/profiles/android:java", -- "//chrome/browser/signin/services/android:java", - "//chrome/browser/tab:java", - "//chrome/browser/tabmodel:java", - "//components/commerce/core/android:core_java", -diff --git a/chrome/browser/commerce/subscriptions/android/java_sources.gni b/chrome/browser/commerce/subscriptions/android/java_sources.gni ---- a/chrome/browser/commerce/subscriptions/android/java_sources.gni -+++ b/chrome/browser/commerce/subscriptions/android/java_sources.gni -@@ -9,5 +9,4 @@ commerce_subscriptions_java_sources = [ "//chrome/browser/commerce/subscriptions - commerce_subscriptions_java_deps = [ - "//base:base_java", - "//chrome/browser/profiles/android:java", -- "//chrome/browser/signin/services/android:java", - ] -diff --git a/chrome/browser/feed/android/BUILD.gn b/chrome/browser/feed/android/BUILD.gn ---- a/chrome/browser/feed/android/BUILD.gn -+++ b/chrome/browser/feed/android/BUILD.gn -@@ -106,7 +106,6 @@ android_library("java") { - "//chrome/browser/privacy:java", - "//chrome/browser/profiles/android:java", - "//chrome/browser/share:java", -- "//chrome/browser/signin/services/android:java", - "//chrome/browser/tab:java", - "//chrome/browser/ui/android/appmenu:java", - "//chrome/browser/ui/android/native_page:java", -diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java ---- a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java -+++ b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java -@@ -13,9 +13,7 @@ import org.chromium.chrome.browser.feed.componentinterfaces.SurfaceCoordinator.S - import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.preferences.Pref; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; - import org.chromium.components.prefs.PrefService; --import org.chromium.components.signin.identitymanager.ConsentLevel; - import org.chromium.components.user_prefs.UserPrefs; - import org.chromium.ui.base.DeviceFormFactor; - -diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedServiceBridge.java b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedServiceBridge.java ---- a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedServiceBridge.java -+++ b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedServiceBridge.java -@@ -182,7 +182,7 @@ public final class FeedServiceBridge { - * requested). - */ - public static boolean isSignedIn() { -- return FeedServiceBridgeJni.get().isSignedIn(); -+ return false; - } - - /** Observes whether or not the Feed stream contains unread content */ -diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/signinbottomsheet/SigninBottomSheetCoordinator.java b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/signinbottomsheet/SigninBottomSheetCoordinator.java ---- a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/signinbottomsheet/SigninBottomSheetCoordinator.java -+++ b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/signinbottomsheet/SigninBottomSheetCoordinator.java -@@ -13,7 +13,6 @@ import org.chromium.base.Callback; - import org.chromium.base.metrics.RecordHistogram; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; --import org.chromium.chrome.browser.signin.services.SigninManager; - import org.chromium.chrome.browser.ui.signin.R; - import org.chromium.chrome.browser.ui.signin.account_picker.AccountPickerBottomSheetCoordinator; - import org.chromium.chrome.browser.ui.signin.account_picker.AccountPickerBottomSheetCoordinator.EntryPoint; -@@ -32,7 +31,6 @@ public class SigninBottomSheetCoordinator implements AccountPickerDelegate { - private final Profile mProfile; - private final WindowAndroid mWindowAndroid; - private final BottomSheetController mController; -- private final SigninManager mSigninManager; - private boolean mSetTestToast; - private AccountPickerBottomSheetCoordinator mAccountPickerBottomSheetCoordinator; - -@@ -41,7 +39,6 @@ public class SigninBottomSheetCoordinator implements AccountPickerDelegate { - mWindowAndroid = windowAndroid; - mController = controller; - mProfile = profile; -- mSigninManager = IdentityServicesProvider.get().getSigninManager(mProfile); - mSetTestToast = false; - } - -@@ -53,30 +50,7 @@ public class SigninBottomSheetCoordinator implements AccountPickerDelegate { - String accountEmail, Callback onSignInErrorCallback) { - Account account = AccountUtils.createAccountFromName(accountEmail); - AccountInfoServiceProvider.get().getAccountInfoByEmail(accountEmail).then(accountInfo -> { -- if (mSigninManager.isSigninAllowed()) { -- mSigninManager.signin(account, new SigninManager.SignInCallback() { -- @Override -- public void onSignInComplete() { -- RecordHistogram.recordBooleanHistogram( -- "ContentSuggestions.Feed.SignInFromFeedAction.SignInSuccessful", -- true); -- mController.hideContent(mController.getCurrentSheetContent(), true); -- } -- -- @Override -- public void onSignInAborted() { -- RecordHistogram.recordBooleanHistogram( -- "ContentSuggestions.Feed.SignInFromFeedAction.SignInSuccessful", -- false); -- // onSignInErrorCallback is called by the WebSigninBridge which is not -- // implemented in this signin flow as we do not need to wait for cookies to -- // propagate before proceeding with the Feed refresh. Instead of calling -- // AccountPickerBottomSheetMediator.onSigninFailed() from the signin bridge -- // we directly perform the creation of the "try again" bottom sheet view: -- mAccountPickerBottomSheetCoordinator.setTryAgainBottomSheetView(); -- } -- }); -- } else { -+ { - makeSigninNotAllowedToast(); - mController.hideContent(mController.getCurrentSheetContent(), true); - } -diff --git a/chrome/browser/feedback/android/BUILD.gn b/chrome/browser/feedback/android/BUILD.gn ---- a/chrome/browser/feedback/android/BUILD.gn -+++ b/chrome/browser/feedback/android/BUILD.gn -@@ -82,7 +82,6 @@ android_library("feedback_collector_java") { - "//base:base_java", - "//build/android:build_java", - "//chrome/browser/profiles/android:java", -- "//chrome/browser/signin/services/android:java", - "//components/browser_ui/util/android:java", - "//components/signin/public/android:java", - "//third_party/android_deps:guava_android_java", -diff --git a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java b/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java ---- a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java -+++ b/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java -@@ -22,10 +22,7 @@ import org.chromium.base.metrics.RecordHistogram; - import org.chromium.base.task.PostTask; - import org.chromium.base.task.TaskTraits; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; - import org.chromium.components.signin.base.CoreAccountInfo; --import org.chromium.components.signin.identitymanager.ConsentLevel; --import org.chromium.components.signin.identitymanager.IdentityManager; - - import java.util.HashMap; - import java.util.List; -@@ -68,12 +65,6 @@ public abstract class FeedbackCollector implements Runnable { - // account. - mSynchronousSources = buildSynchronousFeedbackSources(activity, initParams); - mAsynchronousSources = buildAsynchronousFeedbackSources(initParams); -- IdentityManager identityManager = -- IdentityServicesProvider.get().getIdentityManager(profile); -- if (identityManager != null) { -- mAccountInUse = CoreAccountInfo.getEmailFrom( -- identityManager.getPrimaryAccountInfo(ConsentLevel.SIGNIN)); -- } - - // Sanity check in case a source is added to the wrong list. - for (FeedbackSource source : mSynchronousSources) { -diff --git a/chrome/browser/first_run/android/java/src/org/chromium/chrome/browser/firstrun/MobileFreProgress.java b/chrome/browser/first_run/android/java/src/org/chromium/chrome/browser/firstrun/MobileFreProgress.java ---- a/chrome/browser/first_run/android/java/src/org/chromium/chrome/browser/firstrun/MobileFreProgress.java -+++ b/chrome/browser/first_run/android/java/src/org/chromium/chrome/browser/firstrun/MobileFreProgress.java -@@ -17,7 +17,7 @@ import java.lang.annotation.RetentionPolicy; - @IntDef({ - MobileFreProgress.STARTED, - MobileFreProgress.WELCOME_SHOWN, -- MobileFreProgress.DEPRECATED_DATA_SAVER_SHOWN, -+ MobileFreProgress.DEPRECATED_DATA_SAVER_SHOWN_DISABLED, - MobileFreProgress.SYNC_CONSENT_SHOWN, - MobileFreProgress.SYNC_CONSENT_ACCEPTED, - MobileFreProgress.SYNC_CONSENT_DISMISSED, -@@ -33,7 +33,7 @@ import java.lang.annotation.RetentionPolicy; - public @interface MobileFreProgress { - int STARTED = 0; - int WELCOME_SHOWN = 1; -- int DEPRECATED_DATA_SAVER_SHOWN = 2; -+ int DEPRECATED_DATA_SAVER_SHOWN_DISABLED = 2; - int SYNC_CONSENT_SHOWN = 3; - /** The user clicked on the continue button to continue with sync consent. */ - int SYNC_CONSENT_ACCEPTED = 4; -diff --git a/chrome/browser/media/router/discovery/access_code/BUILD.gn b/chrome/browser/media/router/discovery/access_code/BUILD.gn ---- a/chrome/browser/media/router/discovery/access_code/BUILD.gn -+++ b/chrome/browser/media/router/discovery/access_code/BUILD.gn -@@ -57,7 +57,6 @@ if (!is_android) { - "//chrome/browser/media/router/discovery:discovery", - "//chrome/browser/media/router/discovery/access_code:discovery_resources_proto", - "//chrome/browser/profiles:profile", -- "//chrome/browser/signin:identity_manager_provider", - "//chrome/browser/ui/webui/access_code_cast:mojo_bindings", - "//components/access_code_cast/common", - "//components/endpoint_fetcher:endpoint_fetcher", -diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/password_manager/android/BUILD.gn ---- a/chrome/browser/password_manager/android/BUILD.gn -+++ b/chrome/browser/password_manager/android/BUILD.gn -@@ -110,8 +110,6 @@ android_library("java") { - "//chrome/browser/preferences:java", - "//chrome/browser/profiles/android:java", - "//chrome/browser/settings:java", -- "//chrome/browser/signin/services/android:java", -- "//chrome/browser/sync/android:java", - "//components/browser_ui/notifications/android:java", - "//components/browser_ui/settings/android:java", - "//components/browser_ui/widget/android:java_resources", -@@ -226,8 +224,6 @@ robolectric_binary("password_manager_junit_tests") { - "//chrome/browser/loading_modal/android:java", - "//chrome/browser/preferences:java", - "//chrome/browser/profiles/android:java", -- "//chrome/browser/signin/services/android:java", -- "//chrome/browser/sync/android:java", - "//chrome/test/android:chrome_java_unit_test_support", - "//components/browser_ui/settings/android:java", - "//components/password_manager/core/browser:password_manager_java_enums", -diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerErrorMessageHelperBridge.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerErrorMessageHelperBridge.java ---- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerErrorMessageHelperBridge.java -+++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerErrorMessageHelperBridge.java -@@ -16,11 +16,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; - import org.chromium.chrome.browser.preferences.Pref; - import org.chromium.chrome.browser.preferences.SharedPreferencesManager; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; - import org.chromium.components.prefs.PrefService; --import org.chromium.components.signin.AccountManagerFacadeProvider; --import org.chromium.components.signin.base.CoreAccountInfo; --import org.chromium.components.signin.identitymanager.ConsentLevel; - import org.chromium.components.user_prefs.UserPrefs; - import org.chromium.ui.base.WindowAndroid; - -@@ -49,15 +45,6 @@ public class PasswordManagerErrorMessageHelperBridge { - */ - @CalledByNative - static boolean shouldShowErrorUi() { -- Profile profile = Profile.getLastUsedRegularProfile(); -- final CoreAccountInfo primaryAccountInfo = -- IdentityServicesProvider.get().getIdentityManager(profile).getPrimaryAccountInfo( -- ConsentLevel.SIGNIN); -- // It is possible that the account is removed from Chrome between the password manager -- // calling the Google Play Services backend and Chrome receiving the reply. In that -- // case, the error is no longer relevant/fixable. -- if (primaryAccountInfo == null) return false; -- - if (ChromeFeatureList.getFieldTrialParamByFeatureAsBoolean( - ChromeFeatureList.UNIFIED_PASSWORD_MANAGER_ERROR_MESSAGES, - "ignore_auth_error_message_timeouts", false)) { -@@ -91,18 +78,5 @@ public class PasswordManagerErrorMessageHelperBridge { - */ - @CalledByNative - static void startUpdateAccountCredentialsFlow(WindowAndroid windowAndroid) { -- Profile profile = Profile.getLastUsedRegularProfile(); -- final CoreAccountInfo primaryAccountInfo = -- IdentityServicesProvider.get().getIdentityManager(profile).getPrimaryAccountInfo( -- ConsentLevel.SIGNIN); -- // If the account has been removed before calling this method, there are no credentials to -- // update. -- if (primaryAccountInfo == null) return; -- final Activity activity = windowAndroid.getActivity().get(); -- AccountManagerFacadeProvider.getInstance().updateCredentials( -- CoreAccountInfo.getAndroidAccountFrom(primaryAccountInfo), activity, (success) -> { -- RecordHistogram.recordBooleanHistogram( -- "PasswordManager.UPMUpdateSignInCredentialsSucces", success); -- }); - } - } -diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java ---- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java -+++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java -@@ -21,9 +21,6 @@ import android.os.SystemClock; - import androidx.annotation.IntDef; - import androidx.annotation.VisibleForTesting; - --import com.google.android.gms.common.GoogleApiAvailability; --import com.google.android.gms.common.api.ApiException; -- - import org.chromium.base.Callback; - import org.chromium.base.metrics.RecordHistogram; - import org.chromium.base.supplier.ObservableSupplier; -@@ -34,7 +31,6 @@ import org.chromium.chrome.browser.password_manager.CredentialManagerLauncher.Cr - import org.chromium.chrome.browser.password_manager.PasswordCheckupClientHelper.PasswordCheckBackendException; - import org.chromium.chrome.browser.preferences.Pref; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.sync.SyncService; - import org.chromium.components.browser_ui.settings.SettingsLauncher; - import org.chromium.components.prefs.PrefService; - import org.chromium.components.signin.base.CoreAccountInfo; -@@ -147,20 +143,9 @@ public class PasswordManagerHelper { - * attempt to launch the credential manager even without syncing enabled. - */ - public static void showPasswordSettings(Context context, @ManagePasswordsReferrer int referrer, -- SettingsLauncher settingsLauncher, SyncService syncService, -+ SettingsLauncher settingsLauncher, - ObservableSupplier modalDialogManagerSupplier, - boolean managePasskeys) { -- RecordHistogram.recordEnumeratedHistogram("PasswordManager.ManagePasswordsReferrer", -- referrer, ManagePasswordsReferrer.MAX_VALUE + 1); -- -- if (canUseUpm()) { -- LoadingModalDialogCoordinator loadingDialogCoordinator = -- LoadingModalDialogCoordinator.create(modalDialogManagerSupplier, context); -- launchTheCredentialManager(referrer, syncService, loadingDialogCoordinator, -- modalDialogManagerSupplier, context); -- return; -- } -- - if (managePasskeys && canUseAccountSettings()) { - // Passkey management has been selected but UPM is not available, possibly because - // password sync is not turned on. Attempt to use an AccountSettings intent to show -@@ -177,9 +162,7 @@ public class PasswordManagerHelper { - return; - } - -- String accountName = (syncService != null) -- ? CoreAccountInfo.getEmailFrom(syncService.getAccountInfo()) -- : ""; -+ String accountName = ""; - credentialManagerLauncher.getAccountSettingsIntent(accountName, context::startActivity); - return; - } -@@ -204,13 +187,7 @@ public class PasswordManagerHelper { - * @return True if Unified Password Manager can be used, false otherwise. - */ - public static boolean canUseUpm() { -- SyncService syncService = SyncService.get(); -- PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile()); -- return PasswordManagerHelper.usesUnifiedPasswordManagerUI() && syncService != null -- && hasChosenToSyncPasswords(syncService) -- && !prefService.getBoolean( -- Pref.UNENROLLED_FROM_GOOGLE_MOBILE_SERVICES_DUE_TO_ERRORS) -- && PasswordManagerBackendSupportHelper.getInstance().isBackendPresent(); -+ return false; - } - - /** -@@ -240,19 +217,7 @@ public class PasswordManagerHelper { - * loading dialog. - */ - public static void showPasswordCheckup(Context context, @PasswordCheckReferrer int referrer, -- SyncService syncService, - ObservableSupplier modalDialogManagerSupplier) { -- assert canUseUpm(); -- -- Optional account = hasChosenToSyncPasswords(syncService) -- ? Optional.of(CoreAccountInfo.getEmailFrom(syncService.getAccountInfo())) -- : Optional.empty(); -- -- LoadingModalDialogCoordinator loadingDialogCoordinator = -- LoadingModalDialogCoordinator.create(modalDialogManagerSupplier, context); -- -- launchPasswordCheckup( -- referrer, account, loadingDialogCoordinator, modalDialogManagerSupplier, context); - } - - /** -@@ -332,51 +297,6 @@ public class PasswordManagerHelper { - }); - } - -- /** -- * Checks whether the sync feature is enabled and the user has chosen to sync passwords. -- * Note that this doesn't mean that passwords are actively syncing. -- * -- * @param syncService the service to query about the sync status. -- * @return true if syncing passwords is enabled -- */ -- public static boolean hasChosenToSyncPasswords(SyncService syncService) { -- return syncService != null && syncService.isSyncFeatureEnabled() -- && syncService.getSelectedTypes().contains(UserSelectableType.PASSWORDS); -- } -- -- /** -- * Checks whether the sync feature is enabled, the user has chosen to sync passwords and -- * they haven't set up a custom passphrase. -- * The caller should make sure that the sync engine is initialized before calling this -- * method. -- * -- * Note that this doesn't mean that passwords are actively syncing. -- * -- * @param syncService the service to query about the sync status. -- * @return true if syncing passwords is enabled without custom passphrase. -- */ -- public static boolean hasChosenToSyncPasswordsWithNoCustomPassphrase(SyncService syncService) { -- assert syncService.isEngineInitialized(); -- return PasswordManagerHelper.hasChosenToSyncPasswords(syncService) -- && !syncService.isUsingExplicitPassphrase(); -- } -- -- /** -- * Checks whether the user is actively syncing passwords without a custom passphrase. -- * The caller should make sure that the sync engine is initialized before calling this -- * method. -- * -- * @param syncService the service to query about the sync status. -- * @return true if actively syncing passwords and no custom passphrase was set. -- */ -- public static boolean isSyncingPasswordsWithNoCustomPassphrase(SyncService syncService) { -- assert syncService.isEngineInitialized(); -- if (syncService == null || !syncService.hasSyncConsent()) return false; -- if (!syncService.getActiveDataTypes().contains(ModelType.PASSWORDS)) return false; -- if (syncService.isUsingExplicitPassphrase()) return false; -- return true; -- } -- - public static boolean usesUnifiedPasswordManagerUI() { - if (!ChromeFeatureList.isEnabled(UNIFIED_PASSWORD_MANAGER_ANDROID)) return false; - @UpmExperimentVariation -@@ -417,52 +337,12 @@ public class PasswordManagerHelper { - } - - public static void launchGmsUpdate(Context context) { -- Intent intent = new Intent(Intent.ACTION_VIEW); -- String deepLinkUrl = "market://details?id=" -- + GoogleApiAvailability.GOOGLE_PLAY_SERVICES_PACKAGE + "&referrer=" + STORE_REFERER; -- -- intent.setPackage("com.android.vending"); -- intent.setData(Uri.parse(deepLinkUrl)); -- intent.putExtra("callerId", context.getPackageName()); -- -- // Request for overlay flow, Play Store will fallback to the default -- // behaviour if overlay is not available. -- // TODO(crbug.com/1348506): Use AlleyOop v3 overlay UI after fixing Chrome restart -- // during the GMS Core installation. -- // intent.putExtra("overlay", true); -- -- context.startActivity(intent); - } - - @VisibleForTesting - static void launchTheCredentialManager(@ManagePasswordsReferrer int referrer, -- SyncService syncService, LoadingModalDialogCoordinator loadingDialogCoordinator, -+ LoadingModalDialogCoordinator loadingDialogCoordinator, - ObservableSupplier modalDialogManagerSupplier, Context context) { -- assert canUseUpm(); -- assert syncService != null; -- -- CredentialManagerLauncher credentialManagerLauncher; -- try { -- credentialManagerLauncher = getCredentialManagerLauncher(); -- } catch (CredentialManagerBackendException exception) { -- if (exception.errorCode != CredentialManagerError.BACKEND_VERSION_NOT_SUPPORTED) return; -- -- showGmsUpdateDialog(modalDialogManagerSupplier, context); -- return; -- } -- -- loadingDialogCoordinator.show(); -- -- long startTimeMs = SystemClock.elapsedRealtime(); -- credentialManagerLauncher.getAccountCredentialManagerIntent(referrer, -- CoreAccountInfo.getEmailFrom(syncService.getAccountInfo()), -- (intent) -- -> PasswordManagerHelper.launchCredentialManagerIntent( -- intent, startTimeMs, true, loadingDialogCoordinator), -- (exception) -> { -- PasswordManagerHelper.recordFailureMetrics(exception, true); -- loadingDialogCoordinator.dismiss(); -- }); - } - - @VisibleForTesting -@@ -517,24 +397,6 @@ public class PasswordManagerHelper { - // API call level. - RecordHistogram.recordEnumeratedHistogram(kGetIntentErrorHistogram, - CredentialManagerError.API_ERROR, CredentialManagerError.COUNT); -- -- if (!(exception instanceof ApiException)) return; -- -- final String kGetIntentApiErrorHistogram = forAccount -- ? ACCOUNT_GET_INTENT_API_ERROR_HISTOGRAM -- : LOCAL_GET_INTENT_API_ERROR_HISTOGRAM; -- final String kGetIntentErrorConnectionResultCodeHistogram = forAccount -- ? ACCOUNT_GET_INTENT_ERROR_CONNECTION_RESULT_CODE_HISTOGRAM -- : LOCAL_GET_INTENT_ERROR_CONNECTION_RESULT_CODE_HISTOGRAM; -- -- int apiErrorCode = PasswordManagerAndroidBackendUtil.getApiErrorCode(exception); -- RecordHistogram.recordSparseHistogram(kGetIntentApiErrorHistogram, apiErrorCode); -- Integer connectionResultCode = -- PasswordManagerAndroidBackendUtil.getConnectionResultCode(exception); -- if (connectionResultCode == null) return; -- -- RecordHistogram.recordSparseHistogram( -- kGetIntentErrorConnectionResultCodeHistogram, connectionResultCode); - } - - private static void launchIntentAndRecordSuccess( -diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackendReceiverBridgeImpl.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackendReceiverBridgeImpl.java ---- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackendReceiverBridgeImpl.java -+++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackendReceiverBridgeImpl.java -@@ -40,16 +40,6 @@ class PasswordStoreAndroidBackendReceiverBridgeImpl { - - void handleAndroidBackendException(@JobId int jobId, Exception exception) { - if (mNativeBackendReceiverBridge == 0) return; -- -- @AndroidBackendErrorType -- int error = PasswordManagerAndroidBackendUtil.getBackendError(exception); -- int apiErrorCode = PasswordManagerAndroidBackendUtil.getApiErrorCode(exception); -- Integer connectionResultCode = -- PasswordManagerAndroidBackendUtil.getConnectionResultCode(exception); -- -- PasswordStoreAndroidBackendReceiverBridgeImplJni.get().onError(mNativeBackendReceiverBridge, -- jobId, error, apiErrorCode, connectionResultCode != null, -- connectionResultCode == null ? -1 : connectionResultCode.intValue()); - } - - void onCompleteWithLogins(@JobId int jobId, byte[] passwords) { -diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSyncControllerDelegateBridgeImpl.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSyncControllerDelegateBridgeImpl.java ---- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSyncControllerDelegateBridgeImpl.java -+++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSyncControllerDelegateBridgeImpl.java -@@ -8,6 +8,7 @@ import com.google.android.gms.common.api.ApiException; - - import org.chromium.base.annotations.CalledByNative; - import org.chromium.base.annotations.NativeMethods; -+import org.chromium.components.signin.base.CoreAccountInfo; - - /** - * Java-counterpart of the native PasswordSyncControllerDelegateBridgeImpl. It's part of -@@ -38,11 +39,6 @@ class PasswordSyncControllerDelegateBridgeImpl { - */ - @CalledByNative - void notifyCredentialManagerWhenSyncing(String accountEmail) { -- mPasswordSyncControllerDelegate.notifyCredentialManagerWhenSyncing(accountEmail, () -> { -- if (mNativeDelegateBridgeImpl == 0) return; -- PasswordSyncControllerDelegateBridgeImplJni.get().onCredentialManagerNotified( -- mNativeDelegateBridgeImpl); -- }, exception -> handleCredentialManagerException(exception)); - } - - /** -diff --git a/chrome/browser/password_manager/android/password_manager_settings_service_android_impl.cc b/chrome/browser/password_manager/android/password_manager_settings_service_android_impl.cc ---- a/chrome/browser/password_manager/android/password_manager_settings_service_android_impl.cc -+++ b/chrome/browser/password_manager/android/password_manager_settings_service_android_impl.cc -@@ -68,12 +68,6 @@ const PrefService::Preference* GetRegularPrefFromSetting( - } - } - --bool HasChosenToSyncPreferences(const syncer::SyncService* sync_service) { -- return sync_service && sync_service->IsSyncFeatureEnabled() && -- sync_service->GetUserSettings()->GetSelectedTypes().Has( -- syncer::UserSelectableType::kPreferences); --} -- - bool IsUnenrolledFromUPM(PrefService* pref_service) { - return pref_service->GetBoolean( - password_manager::prefs::kUnenrolledFromGoogleMobileServicesDueToErrors); -@@ -101,7 +95,6 @@ PasswordManagerSettingsServiceAndroidImpl:: - syncer::SyncService* sync_service) - : pref_service_(pref_service), sync_service_(sync_service) { - DCHECK(pref_service_); -- DCHECK(sync_service_); - DCHECK(password_manager::features::UsesUnifiedPasswordManagerUi()); - if (!PasswordSettingsUpdaterAndroidBridgeHelper::CanCreateAccessor()) - return; -@@ -151,7 +144,7 @@ bool PasswordManagerSettingsServiceAndroidImpl::IsSettingEnabled( - return regular_pref->GetValue()->GetBool(); - } - -- if (!IsPasswordSyncEnabled(sync_service_)) { -+ if ((true)) { - return regular_pref->GetValue()->GetBool(); - } - -@@ -171,29 +164,13 @@ bool PasswordManagerSettingsServiceAndroidImpl::IsSettingEnabled( - - void PasswordManagerSettingsServiceAndroidImpl::RequestSettingsFromBackend() { - // Backend has settings data only if passwords are synced. -- if (bridge_helper_ && IsPasswordSyncEnabled(sync_service_) && -- !IsUnenrolledFromUPM(pref_service_)) { -- FetchSettings(); -- } - } - - void PasswordManagerSettingsServiceAndroidImpl::TurnOffAutoSignIn() { -- if (!bridge_helper_ || !IsPasswordSyncEnabled(sync_service_) || -- IsUnenrolledFromUPM(pref_service_)) { -- pref_service_->SetBoolean( -- password_manager::prefs::kCredentialsEnableAutosignin, false); -- return; -- } -- if (!HasChosenToSyncPreferences(sync_service_)) { -- pref_service_->SetBoolean( -- password_manager::prefs::kCredentialsEnableAutosignin, false); -- } -- -+ pref_service_->SetBoolean( -+ password_manager::prefs::kCredentialsEnableAutosignin, false); - pref_service_->SetBoolean(password_manager::prefs::kAutoSignInEnabledGMS, - false); -- bridge_helper_->SetPasswordSettingValue( -- SyncingAccount(sync_service_->GetAccountInfo().email), -- PasswordManagerSetting::kAutoSignIn, false); - } - - void PasswordManagerSettingsServiceAndroidImpl::Init() { -@@ -204,8 +181,7 @@ void PasswordManagerSettingsServiceAndroidImpl::Init() { - lifecycle_helper_->RegisterObserver(base::BindRepeating( - &PasswordManagerSettingsServiceAndroidImpl::OnChromeForegrounded, - weak_ptr_factory_.GetWeakPtr())); -- is_password_sync_enabled_ = IsPasswordSyncEnabled(sync_service_); -- sync_service_->AddObserver(this); -+ is_password_sync_enabled_ = false; - - pref_change_registrar_.Init(pref_service_); - pref_change_registrar_.Add( -@@ -225,8 +201,7 @@ void PasswordManagerSettingsServiceAndroidImpl::OnSettingValueFetched( - PasswordManagerSetting setting, - bool value) { - UpdateSettingFetchState(setting); -- if (!fetch_after_sync_status_change_in_progress_ && -- !IsPasswordSyncEnabled(sync_service_)) { -+ if (!fetch_after_sync_status_change_in_progress_) { - return; - } - -@@ -239,11 +214,9 @@ void PasswordManagerSettingsServiceAndroidImpl::OnSettingValueFetched( - // when preference syncing is off, otherwise it might cause sync cycles. - // When sync is on, the regular preference gets updated via sync, so this - // step is not necessary. -- if (!HasChosenToSyncPreferences(sync_service_)) { - const PrefService::Preference* regular_pref = - GetRegularPrefFromSetting(pref_service_, setting); - pref_service_->SetBoolean(regular_pref->name(), value); -- } - } - - void PasswordManagerSettingsServiceAndroidImpl::OnSettingValueAbsent( -@@ -252,24 +225,6 @@ void PasswordManagerSettingsServiceAndroidImpl::OnSettingValueAbsent( - UpdateSettingFetchState(setting); - if (IsUnenrolledFromUPM(pref_service_)) - return; -- -- if (!IsPasswordSyncEnabled(sync_service_)) -- return; -- -- const PrefService::Preference* pref = -- GetGMSPrefFromSetting(pref_service_, setting); -- -- // If both GMS and Chrome have default values for the setting, then no update -- // is needed. -- if (!pref_service_->GetUserPrefValue(pref->name())) -- return; -- -- // If Chrome has an explicitly set value, GMS needs to know about it. -- // TODO(crbug.com/1289700): Check whether this should be guarded by a -- // migration pref. -- bridge_helper_->SetPasswordSettingValue( -- SyncingAccount(sync_service_->GetAccountInfo().email), setting, -- pref->GetValue()->GetBool()); - } - - void PasswordManagerSettingsServiceAndroidImpl::MigratePrefsIfNeeded() { -@@ -285,10 +240,6 @@ void PasswordManagerSettingsServiceAndroidImpl::MigratePrefsIfNeeded() { - true); - // No need to copy the values until sync turns on. When sync turns on, this - // will be handled as part of the sync state change rather than migration. -- if (!IsPasswordSyncEnabled(sync_service_)) -- return; -- -- DumpChromePrefsIntoGMSPrefs(); - } - - void PasswordManagerSettingsServiceAndroidImpl::OnStateChanged( -diff --git a/chrome/browser/privacy/BUILD.gn b/chrome/browser/privacy/BUILD.gn ---- a/chrome/browser/privacy/BUILD.gn -+++ b/chrome/browser/privacy/BUILD.gn -@@ -11,7 +11,6 @@ if (is_android) { - "//chrome/android:*", - "//chrome/browser/feed/android:*", - "//chrome/browser/ui/android/omnibox:*", -- "//chrome/browser/ui/android/signin:*", - ] - sources = [ - "java/src/org/chromium/chrome/browser/privacy/secure_dns/SecureDnsBridge.java", -diff --git a/chrome/browser/privacy_guide/android/BUILD.gn b/chrome/browser/privacy_guide/android/BUILD.gn ---- a/chrome/browser/privacy_guide/android/BUILD.gn -+++ b/chrome/browser/privacy_guide/android/BUILD.gn -@@ -28,7 +28,6 @@ android_library("java") { - "//chrome/browser/privacy_sandbox/android:java", - "//chrome/browser/profiles/android:java", - "//chrome/browser/safe_browsing/android:java", -- "//chrome/browser/signin/services/android:java", - "//chrome/browser/sync/android:java", - "//components/browser_ui/bottomsheet/android:java", - "//components/browser_ui/settings/android:java", -@@ -71,7 +70,6 @@ robolectric_library("junit") { - "//base:base_junit_test_support", - "//chrome/browser/profiles/android:java", - "//chrome/browser/safe_browsing/android:java", -- "//chrome/browser/signin/services/android:java", - "//chrome/browser/sync/android:java", - "//components/browser_ui/bottomsheet/android:java", - "//components/browser_ui/site_settings/android:java", -diff --git a/chrome/browser/privacy_guide/android/java/res/layout/privacy_guide_msbb_step.xml b/chrome/browser/privacy_guide/android/java/res/layout/privacy_guide_msbb_step.xml ---- a/chrome/browser/privacy_guide/android/java/res/layout/privacy_guide_msbb_step.xml -+++ b/chrome/browser/privacy_guide/android/java/res/layout/privacy_guide_msbb_step.xml -@@ -29,13 +29,6 @@ found in the LICENSE file. - android:src="@drawable/privacy_guide_msbb_image" - android:importantForAccessibility="no" /> - -- -- - { -- PrivacyGuideMetricsDelegate.recordMetricsOnMSBBChange(isChecked); -- UnifiedConsentServiceBridge.setUrlKeyedAnonymizedDataCollectionEnabled( -- Profile.getLastUsedRegularProfile(), isChecked); -- }); - } - } -diff --git a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideUtils.java b/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideUtils.java ---- a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideUtils.java -+++ b/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideUtils.java -@@ -10,7 +10,6 @@ import android.content.Intent; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.safe_browsing.SafeBrowsingBridge; - import org.chromium.chrome.browser.safe_browsing.SafeBrowsingState; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; - import org.chromium.chrome.browser.sync.SyncService; - import org.chromium.components.content_settings.CookieControlsMode; - import org.chromium.components.content_settings.PrefNames; -@@ -36,9 +35,7 @@ class PrivacyGuideUtils { - } - - static boolean isUserSignedIn() { -- IdentityManager identityManager = IdentityServicesProvider.get().getIdentityManager( -- Profile.getLastUsedRegularProfile()); -- return identityManager.hasPrimaryAccount(ConsentLevel.SIGNIN); -+ return false; - } - - static @SafeBrowsingState int getSafeBrowsingState() { -diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc ---- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -389,8 +389,10 @@ - #if !BUILDFLAG(IS_CHROMEOS_ASH) || !BUILDFLAG(IS_ANDROID) - #include "chrome/browser/profiles/profile_statistics_factory.h" - #include "chrome/browser/ui/startup/first_run_service.h" -+#if BUILDFLAG(ENABLE_DICE_SUPPORT) || BUILDFLAG(ENABLE_MIRROR) - #include "chrome/browser/ui/webui/signin/turn_sync_on_helper.h" - #endif -+#endif - - #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_LACROS) - #include "chrome/browser/speech/speech_recognition_client_browser_interface_factory.h" -@@ -972,7 +974,6 @@ void ChromeBrowserMainExtraPartsProfiles:: - TtsClientFactoryLacros::GetInstance(); - #endif - #if !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_ANDROID) -- TurnSyncOnHelper::EnsureFactoryBuilt(); - #endif - UnifiedConsentServiceFactory::GetInstance(); - UnusedSitePermissionsServiceFactory::GetInstance(); -diff --git a/chrome/browser/search_resumption/BUILD.gn b/chrome/browser/search_resumption/BUILD.gn ---- a/chrome/browser/search_resumption/BUILD.gn -+++ b/chrome/browser/search_resumption/BUILD.gn -@@ -27,8 +27,6 @@ android_library("java") { - "//chrome/browser/preferences:java", - "//chrome/browser/profiles/android:java", - "//chrome/browser/search_engines/android:java", -- "//chrome/browser/signin/services/android:java", -- "//chrome/browser/sync/android:java", - "//chrome/browser/tab:java", - "//chrome/browser/tabmodel:java", - "//chrome/browser/ui/android/omnibox:java", -@@ -82,8 +80,6 @@ robolectric_library("junit") { - "//chrome/browser/preferences:java", - "//chrome/browser/profiles/android:java", - "//chrome/browser/search_engines/android:java", -- "//chrome/browser/signin/services/android:java", -- "//chrome/browser/sync/android:java", - "//chrome/browser/tab:java", - "//chrome/browser/ui/android/omnibox:java", - "//chrome/test/android:chrome_java_unit_test_support", -diff --git a/chrome/browser/search_resumption/java/src/org/chromium/chrome/browser/search_resumption/SearchResumptionModuleMediator.java b/chrome/browser/search_resumption/java/src/org/chromium/chrome/browser/search_resumption/SearchResumptionModuleMediator.java ---- a/chrome/browser/search_resumption/java/src/org/chromium/chrome/browser/search_resumption/SearchResumptionModuleMediator.java -+++ b/chrome/browser/search_resumption/java/src/org/chromium/chrome/browser/search_resumption/SearchResumptionModuleMediator.java -@@ -20,10 +20,6 @@ import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; - import org.chromium.chrome.browser.search_resumption.SearchResumptionModuleUtils.ModuleNotShownReason; - import org.chromium.chrome.browser.search_resumption.SearchResumptionUserData.SuggestionResult; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; --import org.chromium.chrome.browser.signin.services.SigninManager; --import org.chromium.chrome.browser.signin.services.SigninManager.SignInStateObserver; --import org.chromium.chrome.browser.sync.SyncService; - import org.chromium.chrome.browser.tab.Tab; - import org.chromium.components.metrics.OmniboxEventProtos.OmniboxEventProto.PageClassification; - import org.chromium.components.omnibox.AutocompleteMatch; -@@ -38,15 +34,11 @@ import java.util.List; - /** - * This class holds querying search suggestions related business logic. - */ --public class SearchResumptionModuleMediator implements OnSuggestionsReceivedListener, -- SignInStateObserver, -- SyncService.SyncStateChangedListener { -+public class SearchResumptionModuleMediator implements OnSuggestionsReceivedListener { - private final ViewStub mStub; - private final Tab mTabToTrackSuggestion; - private final Tab mCurrentTab; - private final SearchResumptionTileBuilder mTileBuilder; -- private final SigninManager mSignInManager; -- private final SyncService mSyncService; - private final AutocompleteControllerProvider mAutocompleteProvider; - private final TemplateUrlService mTemplateUrlService; - private AutocompleteController mAutoComplete; -@@ -81,10 +73,6 @@ public class SearchResumptionModuleMediator implements OnSuggestionsReceivedList - } else { - start(profile); - } -- mSignInManager = IdentityServicesProvider.get().getSigninManager(profile); -- mSignInManager.addSignInStateObserver(this); -- mSyncService = SyncService.get(); -- mSyncService.addSyncStateChangedListener(this); - } - - @Override -@@ -102,27 +90,6 @@ public class SearchResumptionModuleMediator implements OnSuggestionsReceivedList - autocompleteResult.getSuggestionsList(), false /* useCachedResults */); - } - -- /** -- * SyncService.SyncStateChangedListener implementation, listens to sync state changes. -- */ -- @Override -- public void syncStateChanged() { -- mHasKeepEverythingSynced = mSyncService.hasKeepEverythingSynced(); -- updateVisibility(); -- } -- -- @Override -- public void onSignedIn() { -- mIsSignedIn = true; -- updateVisibility(); -- } -- -- @Override -- public void onSignedOut() { -- mIsSignedIn = false; -- updateVisibility(); -- } -- - /** - * Called when the search suggestions are available using the new service API. - * @param suggestionTexts The display texts of the suggestions. -@@ -183,8 +150,6 @@ public class SearchResumptionModuleMediator implements OnSuggestionsReceivedList - mSearchResumptionModuleBridge.destroy(); - } - mTemplateUrlService.removeObserver(this::onTemplateURLServiceChanged); -- mSignInManager.removeSignInStateObserver(this); -- mSyncService.removeSyncStateChangedListener(this); - } - - /** -diff --git a/chrome/browser/search_resumption/java/src/org/chromium/chrome/browser/search_resumption/SearchResumptionModuleUtils.java b/chrome/browser/search_resumption/java/src/org/chromium/chrome/browser/search_resumption/SearchResumptionModuleUtils.java ---- a/chrome/browser/search_resumption/java/src/org/chromium/chrome/browser/search_resumption/SearchResumptionModuleUtils.java -+++ b/chrome/browser/search_resumption/java/src/org/chromium/chrome/browser/search_resumption/SearchResumptionModuleUtils.java -@@ -18,8 +18,6 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; - import org.chromium.chrome.browser.search_resumption.SearchResumptionUserData.SuggestionResult; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; --import org.chromium.chrome.browser.sync.SyncService; - import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.tab.state.CriticalPersistedTabData; - import org.chromium.chrome.browser.tabmodel.TabModel; -@@ -136,16 +134,6 @@ public class SearchResumptionModuleUtils { - return false; - } - -- if (!IdentityServicesProvider.get().getIdentityManager(profile).hasPrimaryAccount( -- ConsentLevel.SYNC)) { -- recordModuleNotShownReason(ModuleNotShownReason.NOT_SIGN_IN); -- return false; -- } -- -- if (!SyncService.get().hasKeepEverythingSynced()) { -- recordModuleNotShownReason(ModuleNotShownReason.NOT_SYNC); -- return false; -- } - return true; - } - -diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/send_tab_to_self/ManageAccountDevicesLinkView.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/send_tab_to_self/ManageAccountDevicesLinkView.java ---- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/send_tab_to_self/ManageAccountDevicesLinkView.java -+++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/send_tab_to_self/ManageAccountDevicesLinkView.java -@@ -24,7 +24,6 @@ import org.chromium.chrome.browser.browserservices.intents.WebappConstants; - import org.chromium.chrome.browser.document.ChromeLauncherActivity; - import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; - import org.chromium.components.browser_ui.widget.RoundedCornerImageView; - import org.chromium.components.embedder_support.util.UrlConstants; - import org.chromium.components.signin.Tribool; -@@ -75,27 +74,9 @@ public class ManageAccountDevicesLinkView extends LinearLayout { - LayoutInflater.from(getContext()) - .inflate(R.layout.send_tab_to_self_manage_devices_link, this); - -- AccountInfo account = getSharingAccountInfo(); -- assert account != null; -- -- // The avatar can be null in tests. -- if (account.getAccountImage() != null) { -- RoundedCornerImageView avatarView = findViewById(R.id.account_avatar); -- int accountAvatarSizePx = -- Math.round(ACCOUNT_AVATAR_SIZE_DP * getResources().getDisplayMetrics().density); -- avatarView.setImageBitmap(Bitmap.createScaledBitmap( -- account.getAccountImage(), accountAvatarSizePx, accountAvatarSizePx, false)); -- avatarView.setRoundedCorners(accountAvatarSizePx / 2, accountAvatarSizePx / 2, -- accountAvatarSizePx / 2, accountAvatarSizePx / 2); -- } -- - TextView linkView = findViewById(R.id.manage_devices_link); -- // If the feature is disabled, the email address is displayable by default. -- final boolean canHaveEmailAddressDisplayed = -- account.getAccountCapabilities().canHaveEmailAddressDisplayed() == Tribool.TRUE -- || !ChromeFeatureList.sHideNonDisplayableAccountEmail.isEnabled(); - final String accountFullNameOrEmail = -- canHaveEmailAddressDisplayed ? account.getEmail() : account.getFullName(); -+ "nobody@example.com"; - if (mShowLink) { - SpannableString linkText = SpanApplier.applySpans( - getResources().getString( -@@ -124,11 +105,4 @@ public class ManageAccountDevicesLinkView extends LinearLayout { - IntentUtils.addTrustedIntentExtras(intent); - getContext().startActivity(intent); - } -- -- private static AccountInfo getSharingAccountInfo() { -- IdentityManager identityManager = IdentityServicesProvider.get().getIdentityManager( -- Profile.getLastUsedRegularProfile()); -- return identityManager.findExtendedAccountInfoByEmailAddress( -- identityManager.getPrimaryAccountInfo(ConsentLevel.SIGNIN).getEmail()); -- } - } -diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/send_tab_to_self/SendTabToSelfCoordinator.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/send_tab_to_self/SendTabToSelfCoordinator.java ---- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/send_tab_to_self/SendTabToSelfCoordinator.java -+++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/send_tab_to_self/SendTabToSelfCoordinator.java -@@ -12,18 +12,10 @@ import androidx.annotation.StringRes; - import org.chromium.base.Callback; - import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; --import org.chromium.chrome.browser.signin.services.SigninManager; --import org.chromium.chrome.browser.sync.SyncService; - import org.chromium.chrome.browser.ui.signin.R; --import org.chromium.chrome.browser.ui.signin.account_picker.AccountPickerBottomSheetCoordinator; --import org.chromium.chrome.browser.ui.signin.account_picker.AccountPickerBottomSheetCoordinator.EntryPoint; - import org.chromium.chrome.browser.ui.signin.account_picker.AccountPickerBottomSheetStrings; --import org.chromium.chrome.browser.ui.signin.account_picker.AccountPickerDelegate; - import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; - import org.chromium.components.browser_ui.bottomsheet.EmptyBottomSheetObserver; --import org.chromium.components.signin.AccountUtils; --import org.chromium.components.signin.base.GoogleServiceAuthError; - import org.chromium.ui.base.WindowAndroid; - - import java.util.List; -@@ -33,108 +25,6 @@ import java.util.Optional; - * Coordinator for displaying the send tab to self feature. - */ - public class SendTabToSelfCoordinator { -- /** -- * Waits for Sync to download the list of target devices after sign-in. Aborts if the -- * user dismisses the sign-in bottom sheet ("account picker") before success. -- */ -- private static class TargetDeviceListWaiter -- extends EmptyBottomSheetObserver implements SyncService.SyncStateChangedListener { -- private final BottomSheetController mBottomSheetController; -- private final String mUrl; -- private final Runnable mGotDeviceListCallback; -- private final Profile mProfile; -- -- /** -- * Note there's no need for a notion for a failure callback because in that case the -- * account picker bottom sheet was closed and there's nothing left to do (simply don't -- * show any other bottom sheet). -- */ -- public TargetDeviceListWaiter(BottomSheetController bottomSheetController, String url, -- Runnable gotDeviceListCallback, Profile profile) { -- mBottomSheetController = bottomSheetController; -- mUrl = url; -- mGotDeviceListCallback = gotDeviceListCallback; -- mProfile = profile; -- -- SyncService.get().addSyncStateChangedListener(this); -- mBottomSheetController.addObserver(this); -- notifyAndDestroyIfDone(); -- } -- -- private void destroy() { -- SyncService.get().removeSyncStateChangedListener(this); -- mBottomSheetController.removeObserver(this); -- } -- -- @Override -- public void syncStateChanged() { -- notifyAndDestroyIfDone(); -- } -- -- @Override -- public void onSheetClosed(int reason) { -- // The account picker doesn't dismiss itself, so this must mean the user did. -- destroy(); -- } -- -- private void notifyAndDestroyIfDone() { -- Optional displayReason = -- SendTabToSelfAndroidBridge.getEntryPointDisplayReason(mProfile, mUrl); -- // The model is starting up, keep waiting. -- if (!displayReason.isPresent()) return; -- -- switch (displayReason.get()) { -- case EntryPointDisplayReason.OFFER_SIGN_IN: -- return; -- case EntryPointDisplayReason.INFORM_NO_TARGET_DEVICE: -- case EntryPointDisplayReason.OFFER_FEATURE: -- break; -- } -- -- destroy(); -- mGotDeviceListCallback.run(); -- } -- } -- -- /** Performs sign-in for the promo shown to signed-out users. */ -- private static class SendTabToSelfAccountPickerDelegate implements AccountPickerDelegate { -- private final Runnable mOnSignInCompleteCallback; -- private final Profile mProfile; -- -- public SendTabToSelfAccountPickerDelegate( -- Runnable onSignInCompleteCallback, Profile profile) { -- mOnSignInCompleteCallback = onSignInCompleteCallback; -- mProfile = profile; -- } -- -- @Override -- public void destroy() {} -- -- @Override -- public void signIn( -- String accountEmail, Callback onSignInErrorCallback) { -- SigninManager signinManager = IdentityServicesProvider.get().getSigninManager(mProfile); -- Account account = AccountUtils.createAccountFromName(accountEmail); -- signinManager.signin(account, new SigninManager.SignInCallback() { -- @Override -- public void onSignInComplete() { -- mOnSignInCompleteCallback.run(); -- } -- -- @Override -- public void onSignInAborted() { -- // TODO(crbug.com/1219434) Consider calling onSignInErrorCallback here. -- } -- }); -- } -- -- @Override -- @EntryPoint -- public int getEntryPoint() { -- return EntryPoint.SEND_TAB_TO_SELF; -- } -- } -- - private final Context mContext; - private final WindowAndroid mWindowAndroid; - private final String mUrl; -@@ -153,51 +43,9 @@ public class SendTabToSelfCoordinator { - } - - public void show() { -- Optional displayReason = -- SendTabToSelfAndroidBridge.getEntryPointDisplayReason(mProfile, mUrl); -- if (!displayReason.isPresent()) { -- // This must be the old behavior where the entry point is shown even in states where -- // no promo is shown. -- assert !ChromeFeatureList.isEnabled(ChromeFeatureList.SEND_TAB_TO_SELF_SIGNIN_PROMO); -- MetricsRecorder.recordSendingEvent(SendingEvent.SHOW_NO_TARGET_DEVICE_MESSAGE); -- mController.requestShowContent(new NoTargetDeviceBottomSheetContent(mContext), true); -- return; -- } -- -- switch (displayReason.get()) { -- case EntryPointDisplayReason.INFORM_NO_TARGET_DEVICE: -- MetricsRecorder.recordSendingEvent(SendingEvent.SHOW_NO_TARGET_DEVICE_MESSAGE); -- mController.requestShowContent( -- new NoTargetDeviceBottomSheetContent(mContext), true); -- return; -- case EntryPointDisplayReason.OFFER_FEATURE: -- MetricsRecorder.recordSendingEvent(SendingEvent.SHOW_DEVICE_LIST); -- // TODO(crbug.com/1219434): Merge with INFORM_NO_TARGET_DEVICE, just let the UI -- // differentiate between the 2 by checking the device list size. -- List targetDevices = -- SendTabToSelfAndroidBridge.getAllTargetDeviceInfos(mProfile); -- mController.requestShowContent( -- new DevicePickerBottomSheetContent( -- mContext, mUrl, mTitle, mController, targetDevices, mProfile), -- true); -- return; -- case EntryPointDisplayReason.OFFER_SIGN_IN: { -- MetricsRecorder.recordSendingEvent(SendingEvent.SHOW_SIGNIN_PROMO); -- new AccountPickerBottomSheetCoordinator(mWindowAndroid, mController, -- new SendTabToSelfAccountPickerDelegate(this::onSignInComplete, mProfile), -- new BottomSheetStrings()); -- return; -- } -- } - } - - private void onSignInComplete() { -- new TargetDeviceListWaiter(mController, mUrl, this::onTargetDeviceListReady, mProfile); -- } -- -- private void onTargetDeviceListReady() { -- mController.hideContent(mController.getCurrentSheetContent(), /*animate=*/true); -- show(); - } - - /** A class to store the STTS specific strings for the signin bottom sheet */ -diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/browser/signin/account_consistency_mode_manager.cc ---- a/chrome/browser/signin/account_consistency_mode_manager.cc -+++ b/chrome/browser/signin/account_consistency_mode_manager.cc -@@ -34,9 +34,9 @@ - #error "Dice and Mirror cannot be both enabled." - #endif - --#if !BUILDFLAG(ENABLE_DICE_SUPPORT) && !BUILDFLAG(ENABLE_MIRROR) --#error "Either Dice or Mirror should be enabled." --#endif -+// #if !BUILDFLAG(ENABLE_DICE_SUPPORT) && !BUILDFLAG(ENABLE_MIRROR) -+// #error "Either Dice or Mirror should be enabled." -+// #endif - - using signin::AccountConsistencyMethod; - -@@ -211,6 +211,5 @@ AccountConsistencyModeManager::ComputeAccountConsistencyMethod( - return AccountConsistencyMethod::kDice; - #endif - -- NOTREACHED(); - return AccountConsistencyMethod::kDisabled; - } -diff --git a/chrome/browser/signin/identity_manager_factory.cc b/chrome/browser/signin/identity_manager_factory.cc ---- a/chrome/browser/signin/identity_manager_factory.cc -+++ b/chrome/browser/signin/identity_manager_factory.cc -@@ -74,16 +74,11 @@ IdentityManagerFactory::IdentityManagerFactory() - DependsOn(ProfileAccountManagerFactory::GetInstance()); - #endif - DependsOn(ChromeSigninClientFactory::GetInstance()); -- signin::SetIdentityManagerProvider( -- base::BindRepeating([](content::BrowserContext* context) { -- return GetForProfile(Profile::FromBrowserContext(context)); -- })); - // TODO(crbug.com/1380593): This should declare a dependency to - // CookieSettingsFactory but this causes a hang for some reason. - } - - IdentityManagerFactory::~IdentityManagerFactory() { -- signin::SetIdentityManagerProvider({}); - } - - // static -diff --git a/chrome/browser/signin/identity_services_provider_android.cc b/chrome/browser/signin/identity_services_provider_android.cc ---- a/chrome/browser/signin/identity_services_provider_android.cc -+++ b/chrome/browser/signin/identity_services_provider_android.cc -@@ -7,7 +7,6 @@ - #include "chrome/browser/profiles/profile_android.h" - #include "chrome/browser/signin/identity_manager_factory.h" - #include "chrome/browser/signin/services/android/jni_headers/IdentityServicesProvider_jni.h" --#include "chrome/browser/signin/signin_manager_android_factory.h" - #include "components/signin/public/identity_manager/identity_manager.h" - - using base::android::JavaParamRef; -@@ -38,15 +37,3 @@ JNI_IdentityServicesProvider_GetAccountTrackerService( - ? identity_manager->LegacyGetAccountTrackerServiceJavaObject() - : nullptr; - } -- --static ScopedJavaLocalRef --JNI_IdentityServicesProvider_GetSigninManager( -- JNIEnv* env, -- const JavaParamRef& j_profile_android) { -- Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile_android); -- SigninManagerAndroid* signin_manager = -- SigninManagerAndroidFactory::GetForProfile(profile); -- // Ensuring that the pointer is not null here produces unactionable stack -- // traces, so just let the Java side handle possible issues with null. -- return signin_manager ? signin_manager->GetJavaObject() : nullptr; --} -diff --git a/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/IdentityServicesProvider.java b/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/IdentityServicesProvider.java ---- a/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/IdentityServicesProvider.java -+++ b/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/IdentityServicesProvider.java -@@ -61,22 +61,9 @@ public class IdentityServicesProvider { - return result; - } - -- /** -- * Getter for {@link SigninManager} instance for given profile. -- * @param profile The profile to get regarding sign-in manager. -- * @return a {@link SigninManager} instance, or null if the incognito Profile is supplied. -- */ -- @MainThread -- public @Nullable SigninManager getSigninManager(Profile profile) { -- ThreadUtils.assertOnUiThread(); -- SigninManager result = IdentityServicesProviderJni.get().getSigninManager(profile); -- return result; -- } -- - @NativeMethods - public interface Natives { - IdentityManager getIdentityManager(Profile profile); - AccountTrackerService getAccountTrackerService(Profile profile); -- SigninManager getSigninManager(Profile profile); - } - } -diff --git a/chrome/browser/supervised_user/BUILD.gn b/chrome/browser/supervised_user/BUILD.gn ---- a/chrome/browser/supervised_user/BUILD.gn -+++ b/chrome/browser/supervised_user/BUILD.gn -@@ -81,7 +81,6 @@ if (is_android) { - "//base:jni_java", - "//build/android:build_java", - "//chrome/browser/profiles/android:java", -- "//chrome/browser/signin/services/android:java", - "//chrome/browser/ui/android/strings:ui_strings_grd", - "//components/browser_ui/bottomsheet/android:java", - "//components/browser_ui/widget/android:java", -diff --git a/chrome/browser/supervised_user/android/java/src/org/chromium/chrome/browser/supervised_user/website_approval/WebsiteApprovalMediator.java b/chrome/browser/supervised_user/android/java/src/org/chromium/chrome/browser/supervised_user/website_approval/WebsiteApprovalMediator.java ---- a/chrome/browser/supervised_user/android/java/src/org/chromium/chrome/browser/supervised_user/website_approval/WebsiteApprovalMediator.java -+++ b/chrome/browser/supervised_user/android/java/src/org/chromium/chrome/browser/supervised_user/website_approval/WebsiteApprovalMediator.java -@@ -5,7 +5,6 @@ - package org.chromium.chrome.browser.supervised_user.website_approval; - - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; - import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; - import org.chromium.components.signin.base.AccountInfo; - import org.chromium.components.signin.base.CoreAccountInfo; -@@ -43,28 +42,5 @@ class WebsiteApprovalMediator { - BottomSheetController.StateChangeReason.INTERACTION_COMPLETE); - mCompletionCallback.onWebsiteDenied(); - }); -- -- // Set the child name. We use the given name if there is one for this account, otherwise we -- // use the full account email address. -- IdentityManager identityManager = IdentityServicesProvider.get().getIdentityManager( -- Profile.getLastUsedRegularProfile()); -- String childEmail = CoreAccountInfo.getEmailFrom( -- identityManager.getPrimaryAccountInfo(ConsentLevel.SIGNIN)); -- if (childEmail == null) { -- // This is an unexpected window condition: there is no signed in account. -- // TODO(crbug.com/1330900): dismiss the bottom sheet. -- return; -- } -- AccountInfo childAccountInfo = -- identityManager.findExtendedAccountInfoByEmailAddress(childEmail); -- -- String childNameProperty = childEmail; -- if (childAccountInfo != null && !childAccountInfo.getGivenName().isEmpty()) { -- childNameProperty = childAccountInfo.getGivenName(); -- } -- mModel.set(WebsiteApprovalProperties.CHILD_NAME, childNameProperty); -- -- // Now show the actual content. -- mBottomSheetController.requestShowContent(mSheetContent, true); - } - } -diff --git a/chrome/browser/sync/sync_service_factory.cc b/chrome/browser/sync/sync_service_factory.cc ---- a/chrome/browser/sync/sync_service_factory.cc -+++ b/chrome/browser/sync/sync_service_factory.cc -@@ -81,7 +81,7 @@ - #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || - // BUILDFLAG(IS_WIN) - --namespace { -+/*namespace { - - std::unique_ptr BuildSyncService( - content::BrowserContext* context) { -@@ -191,7 +191,7 @@ std::unique_ptr BuildSyncService( - return sync_service; - } - --} // anonymous namespace -+}*/ // anonymous namespace - - // static - SyncServiceFactory* SyncServiceFactory::GetInstance() { -@@ -282,7 +282,7 @@ SyncServiceFactory::~SyncServiceFactory() = default; - - KeyedService* SyncServiceFactory::BuildServiceInstanceFor( - content::BrowserContext* context) const { -- return BuildSyncService(context).release(); -+ return nullptr; - } - - bool SyncServiceFactory::ServiceIsNULLWhileTesting() const { -@@ -324,9 +324,3 @@ SyncServiceFactory::GetAllSyncServices() { - } - return sync_services; - } -- --// static --BrowserContextKeyedServiceFactory::TestingFactory --SyncServiceFactory::GetDefaultFactory() { -- return base::BindRepeating(&BuildSyncService); --} -diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn ---- a/chrome/browser/ui/android/omnibox/BUILD.gn -+++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -162,7 +162,6 @@ android_library("java") { - "//chrome/browser/profiles/android:java", - "//chrome/browser/search_engines/android:java", - "//chrome/browser/share:java", -- "//chrome/browser/signin/services/android:java", - "//chrome/browser/tab:java", - "//chrome/browser/tabmodel:java", - "//chrome/browser/ui/android/favicon:java", -@@ -460,7 +459,6 @@ robolectric_library("junit") { - "//chrome/browser/profiles/android:java", - "//chrome/browser/search_engines/android:java", - "//chrome/browser/share:java", -- "//chrome/browser/signin/services/android:java", - "//chrome/browser/tab:java", - "//chrome/browser/tabmodel:java", - "//chrome/browser/ui/android/favicon:java", -diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java ---- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -59,7 +59,6 @@ import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; - import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState; - import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManager; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; - import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.theme.ThemeUtils; - import org.chromium.chrome.browser.ui.native_page.NativePage; -diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/ConfirmImportSyncDataDialogCoordinator.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/ConfirmImportSyncDataDialogCoordinator.java ---- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/ConfirmImportSyncDataDialogCoordinator.java -+++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/ConfirmImportSyncDataDialogCoordinator.java -@@ -14,7 +14,6 @@ import androidx.annotation.MainThread; - import org.chromium.base.metrics.RecordUserAction; - import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; - import org.chromium.components.browser_ui.settings.ManagedPreferencesUtils; - import org.chromium.components.browser_ui.widget.RadioButtonWithDescription; - import org.chromium.components.signin.AccountEmailDomainDisplayability; -@@ -94,11 +93,7 @@ public class ConfirmImportSyncDataDialogCoordinator { - mKeepSeparateOption = - mConfirmImportSyncDataView.findViewById(R.id.sync_keep_separate_choice); - -- boolean isCurrentAccountManaged = -- IdentityServicesProvider.get() -- .getSigninManager(Profile.getLastUsedRegularProfile()) -- .getManagementDomain() -- != null; -+ boolean isCurrentAccountManaged = false; - mModel = new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS) - .with(ModalDialogProperties.CANCEL_ON_TOUCH_OUTSIDE, true) - .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT, -diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/ConfirmSyncDataStateMachine.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/ConfirmSyncDataStateMachine.java ---- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/ConfirmSyncDataStateMachine.java -+++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/ConfirmSyncDataStateMachine.java -@@ -176,9 +176,6 @@ public class ConfirmSyncDataStateMachine - } - - private void requestNewAccountManagementStatus() { -- IdentityServicesProvider.get() -- .getSigninManager(Profile.getLastUsedRegularProfile()) -- .isAccountManaged(mNewAccountName, this::setIsNewAccountManaged); - } - - private void setIsNewAccountManaged(Boolean isManaged) { -@@ -194,17 +191,8 @@ public class ConfirmSyncDataStateMachine - assert mNewAccountManaged != null; - assert mState == State.AFTER_NEW_ACCOUNT_DIALOG; - -- if (mNewAccountManaged) { -- // Show 'logging into managed account' dialog -- // This will call back into onConfirm on success. -- mDelegate.showSignInToManagedAccountDialog(this, -- IdentityServicesProvider.get() -- .getSigninManager(Profile.getLastUsedRegularProfile()) -- .extractDomainName(mNewAccountName)); -- } else { -- mDelegate.dismissAllDialogs(); -- progress(); -- } -+ mDelegate.dismissAllDialogs(); -+ progress(); - } - - private void showProgressDialog() { -diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SignOutDialogCoordinator.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SignOutDialogCoordinator.java ---- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SignOutDialogCoordinator.java -+++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SignOutDialogCoordinator.java -@@ -18,7 +18,6 @@ import androidx.annotation.VisibleForTesting; - import org.chromium.chrome.browser.preferences.Pref; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.profiles.ProfileAccountManagementMetrics; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; - import org.chromium.chrome.browser.signin.services.SigninMetricsUtils; - import org.chromium.components.signin.GAIAServiceType; - import org.chromium.components.signin.identitymanager.ConsentLevel; -@@ -95,35 +94,11 @@ public class SignOutDialogCoordinator { - } - - private static @StringRes int getTitleRes(String managedDomain, @ActionType int actionType) { -- if (!IdentityServicesProvider.get() -- .getIdentityManager(Profile.getLastUsedRegularProfile()) -- .hasPrimaryAccount(ConsentLevel.SYNC)) { - return R.string.signout_title; -- } -- if (managedDomain != null) { -- return R.string.signout_managed_account_title; -- } -- switch (actionType) { -- case ActionType.REVOKE_SYNC_CONSENT: -- return R.string.turn_off_sync_title; -- case ActionType.CLEAR_PRIMARY_ACCOUNT: -- return R.string.turn_off_sync_and_signout_title; -- default: -- throw new IllegalArgumentException( -- "Unexpected value for actionType: " + actionType); -- } - } - - private static String getMessage(Context context, String managedDomain) { -- if (!IdentityServicesProvider.get() -- .getIdentityManager(Profile.getLastUsedRegularProfile()) -- .hasPrimaryAccount(ConsentLevel.SYNC)) { - return context.getString(R.string.signout_message); -- } -- if (managedDomain != null) { -- return context.getString(R.string.signout_managed_account_message, managedDomain); -- } -- return context.getString(R.string.turn_off_sync_and_signout_message); - } - - private static int getCheckBoxVisibility(String managedDomain) { -@@ -131,10 +106,7 @@ public class SignOutDialogCoordinator { - // SigninManager. - final boolean allowDeletingData = UserPrefs.get(Profile.getLastUsedRegularProfile()) - .getBoolean(Pref.ALLOW_DELETING_BROWSER_HISTORY); -- final boolean hasSyncConsent = -- IdentityServicesProvider.get() -- .getIdentityManager(Profile.getLastUsedRegularProfile()) -- .hasPrimaryAccount(ConsentLevel.SYNC); -+ final boolean hasSyncConsent = false; - final boolean showCheckBox = (managedDomain == null) && allowDeletingData && hasSyncConsent; - return showCheckBox ? View.VISIBLE : View.GONE; - } -@@ -143,9 +115,7 @@ public class SignOutDialogCoordinator { - @MainThread - SignOutDialogCoordinator(Context context, ModalDialogManager dialogManager, Listener listener, - @ActionType int actionType, @GAIAServiceType int gaiaServiceType) { -- final String managedDomain = IdentityServicesProvider.get() -- .getSigninManager(Profile.getLastUsedRegularProfile()) -- .getManagementDomain(); -+ final String managedDomain = ""; - final View view = inflateView(context, managedDomain, actionType); - mCheckBox = view.findViewById(R.id.remove_local_data); - mCheckBox.setVisibility(getCheckBoxVisibility(managedDomain)); -diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncConsentFragmentBase.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncConsentFragmentBase.java ---- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncConsentFragmentBase.java -+++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncConsentFragmentBase.java -@@ -30,9 +30,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.preferences.Pref; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.signin.services.DisplayableProfileData; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; - import org.chromium.chrome.browser.signin.services.ProfileDataCache; --import org.chromium.chrome.browser.signin.services.SigninManager; - import org.chromium.chrome.browser.signin.services.SigninMetricsUtils; - import org.chromium.chrome.browser.signin.services.SigninMetricsUtils.State; - import org.chromium.chrome.browser.signin.services.UnifiedConsentServiceBridge; -@@ -70,8 +68,7 @@ import java.util.Set; - * what happens after the signin flow. - */ - public abstract class SyncConsentFragmentBase -- extends Fragment implements AccountPickerCoordinator.Listener, AccountsChangeObserver, -- SigninManager.SignInStateObserver { -+ extends Fragment implements AccountPickerCoordinator.Listener, AccountsChangeObserver { - private static final String ARGUMENT_ACCESS_POINT = "SyncConsentFragmentBase.AccessPoint"; - private static final String ARGUMENT_ACCOUNT_NAME = "SyncConsentFragmentBase.AccountName"; - private static final String ARGUMENT_SHOW_TANGIBLE_SYNC_CONSENT_VIEW = -@@ -256,42 +253,8 @@ public abstract class SyncConsentFragmentBase - // this method replaces onSyncAccepted(), the field can be set directly. - protected void signinAndEnableSync( - String accountName, boolean settingsClicked, Runnable callback) { -- AccountManagerFacadeProvider.getInstance().getAccounts().then(accounts -> { -- @Nullable -- Account account = AccountUtils.findAccountByName(accounts, accountName); -- if (account == null) { -- callback.run(); -- return; -- } -- SigninManager signinManager = IdentityServicesProvider.get().getSigninManager( -- Profile.getLastUsedRegularProfile()); -- signinManager.signinAndEnableSync( -- mSigninAccessPoint, account, new SigninManager.SignInCallback() { -- @Override -- public void onSignInComplete() { -- UnifiedConsentServiceBridge.setUrlKeyedAnonymizedDataCollectionEnabled( -- Profile.getLastUsedRegularProfile(), true); -- if (ChromeFeatureList.isEnabled(ChromeFeatureList.TANGIBLE_SYNC) -- && getTangibleSyncGroup() != TangibleSyncGroup.GROUP_F) { -- // Groups A-E are only for enabling History and Tab Sync -- SyncService.get().setSelectedTypes(false, -- Set.of(UserSelectableType.HISTORY, -- UserSelectableType.TABS)); -- } -- if (!settingsClicked) { -- SyncService.get().setFirstSetupComplete( -- SyncFirstSetupCompleteSource.BASIC_FLOW); -- } -- closeAndMaybeOpenSyncSettings(settingsClicked); -- callback.run(); -- } -- -- @Override -- public void onSignInAborted() { -- callback.run(); -- } -- }); -- }); -+ // do nothing -+ callback.run(); - } - - @Override -@@ -344,10 +307,6 @@ public abstract class SyncConsentFragmentBase - : ProfileDataCache.createWithDefaultImageSizeAndNoBadge(requireContext()); - mProfileDataCache.addObserver(mProfileDataCacheObserver); - -- IdentityServicesProvider.get() -- .getSigninManager(Profile.getLastUsedRegularProfile()) -- .addSignInStateObserver(this); -- - // By default this is set to true so that when system back button is pressed user action - // is recorded in onDestroy(). - mRecordUndoSignin = true; -@@ -358,9 +317,6 @@ public abstract class SyncConsentFragmentBase - @Override - public void onDestroy() { - super.onDestroy(); -- IdentityServicesProvider.get() -- .getSigninManager(Profile.getLastUsedRegularProfile()) -- .removeSignInStateObserver(this); - mProfileDataCache.removeObserver(mProfileDataCacheObserver); - if (mConfirmSyncDataStateMachine != null) { - mConfirmSyncDataStateMachine.cancel(/* isBeingDestroyed = */ true); -@@ -453,21 +409,6 @@ public abstract class SyncConsentFragmentBase - mAccountManagerFacade.getAccounts().then(this::updateAccounts); - } - -- /** Implements {@link SigninManager.SignInStateObserver}. */ -- @Override -- public void onSignedIn() { -- final CoreAccountInfo primaryAccount = -- IdentityServicesProvider.get() -- .getIdentityManager(Profile.getLastUsedRegularProfile()) -- .getPrimaryAccountInfo(ConsentLevel.SIGNIN); -- mIsSignedInWithoutSync = -- mSigninAccessPoint == SigninAccessPoint.START_PAGE && primaryAccount != null; -- if (mIsSignedInWithoutSync) { -- mSelectedAccountName = primaryAccount.getEmail(); -- mAccountManagerFacade.getAccounts().then(this::updateAccounts); -- } -- } -- - /** - * Account picker is hidden if there are no accounts on the device. Also, accept button becomes - * "Add account" button in this case. -@@ -730,21 +671,6 @@ public abstract class SyncConsentFragmentBase - - // Don't start sign-in if this fragment has been destroyed. - if (getActivity().isDestroyed()) return; -- -- SigninManager signinManager = -- IdentityServicesProvider.get().getSigninManager( -- Profile.getLastUsedRegularProfile()); -- signinManager.runAfterOperationInProgress(() -> { -- if (wipeData) { -- signinManager.wipeSyncUserData(() -> { -- onSyncAccepted(mSelectedAccountName, settingsClicked, -- () -> mIsSigninInProgress = false); -- }); -- } else { -- onSyncAccepted(mSelectedAccountName, settingsClicked, -- () -> mIsSigninInProgress = false); -- } -- }); - } - - @Override -@@ -811,32 +737,6 @@ public abstract class SyncConsentFragmentBase - } - } - -- @Override -- public void onResume() { -- super.onResume(); -- mAccountManagerFacade.addObserver(this); -- -- final CoreAccountInfo primaryAccount = -- IdentityServicesProvider.get() -- .getIdentityManager(Profile.getLastUsedRegularProfile()) -- .getPrimaryAccountInfo(ConsentLevel.SIGNIN); -- mIsSignedInWithoutSync = -- mSigninAccessPoint == SigninAccessPoint.START_PAGE && primaryAccount != null; -- if (mIsSignedInWithoutSync) { -- mSelectedAccountName = primaryAccount.getEmail(); -- } -- // When a fragment that was in the FragmentManager backstack becomes visible again, the view -- // will be recreated by onCreateView. Update the state of this recreated UI. -- if (mSelectedAccountName != null) { -- updateProfileData(mSelectedAccountName); -- } -- -- updateAccounts( -- AccountUtils.getAccountsIfFulfilledOrEmpty(mAccountManagerFacade.getAccounts())); -- -- if (mSigninView != null) mSigninView.startAnimations(); -- } -- - @Override - public void onPause() { - super.onPause(); -diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncPromoController.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncPromoController.java ---- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncPromoController.java -+++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncPromoController.java -@@ -113,20 +113,7 @@ public class SyncPromoController { - * @param accessPoint The access point for which the impression limit is being checked. - */ - public static boolean canShowSyncPromo(@AccessPoint int accessPoint) { -- switch (accessPoint) { -- case SigninAccessPoint.BOOKMARK_MANAGER: -- return canShowBookmarkPromo(); -- case SigninAccessPoint.NTP_CONTENT_SUGGESTIONS: -- return canShowNTPPromo(); -- case SigninAccessPoint.RECENT_TABS: -- // There is no impression limit or dismiss button in Recent Tabs promo. -- return true; -- case SigninAccessPoint.SETTINGS: -- return canShowSettingsPromo(); -- default: -- assert false : "Unexpected value for access point: " + accessPoint; -- return false; -- } -+ return false; - } - - private static long getNTPSyncPromoResetAfterMillis() { -diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/account_picker/WebSigninAccountPickerDelegate.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/account_picker/WebSigninAccountPickerDelegate.java ---- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/account_picker/WebSigninAccountPickerDelegate.java -+++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/account_picker/WebSigninAccountPickerDelegate.java -@@ -28,7 +28,6 @@ public class WebSigninAccountPickerDelegate implements AccountPickerDelegate { - private final Tab mCurrentTab; - private final WebSigninBridge.Factory mWebSigninBridgeFactory; - private final String mContinueUrl; -- private final SigninManager mSigninManager; - private final IdentityManager mIdentityManager; - private @Nullable WebSigninBridge mWebSigninBridge; - -@@ -43,8 +42,6 @@ public class WebSigninAccountPickerDelegate implements AccountPickerDelegate { - mCurrentTab = currentTab; - mWebSigninBridgeFactory = webSigninBridgeFactory; - mContinueUrl = continueUrl; -- mSigninManager = IdentityServicesProvider.get().getSigninManager( -- Profile.getLastUsedRegularProfile()); - mIdentityManager = IdentityServicesProvider.get().getIdentityManager( - Profile.getLastUsedRegularProfile()); - } -@@ -62,27 +59,7 @@ public class WebSigninAccountPickerDelegate implements AccountPickerDelegate { - // if user retries the sign-in from the error screen, we need to sign out the user - // first before signing in again. - destroyWebSigninBridge(); -- mSigninManager.signOut(SignoutReason.SIGNIN_RETRIGGERED_FROM_WEB_SIGNIN); - } -- AccountInfoServiceProvider.get().getAccountInfoByEmail(accountEmail).then(accountInfo -> { -- mWebSigninBridge = -- mWebSigninBridgeFactory.create(Profile.getLastUsedRegularProfile(), accountInfo, -- createWebSigninBridgeListener( -- mCurrentTab, mContinueUrl, onSignInErrorCallback)); -- mSigninManager.signin(AccountUtils.createAccountFromName(accountEmail), -- new SigninManager.SignInCallback() { -- @Override -- public void onSignInComplete() { -- // After the sign-in is finished in Chrome, we still need to wait for -- // WebSigninBridge to be called to redirect to the continue url. -- } -- -- @Override -- public void onSignInAborted() { -- WebSigninAccountPickerDelegate.this.destroyWebSigninBridge(); -- } -- }); -- }); - } - - @Override -diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java ---- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java -+++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java -@@ -195,10 +195,8 @@ public class SigninFirstRunMediator - mModel.set(SigninFirstRunProperties.FRE_POLICY, frePolicy); - } - -- mModel.set(SigninFirstRunProperties.IS_SIGNIN_SUPPORTED, -- ExternalAuthUtils.getInstance().canUseGooglePlayServices() -- && !isSigninDisabledByPolicy); -- mAllowMetricsAndCrashUploading = !isMetricsReportingDisabledByPolicy; -+ mModel.set(SigninFirstRunProperties.IS_SIGNIN_SUPPORTED, false); -+ mAllowMetricsAndCrashUploading = false; - - mModel.set(SigninFirstRunProperties.FOOTER_STRING, - getFooterString(isMetricsReportingDisabledByPolicy)); -@@ -277,41 +275,6 @@ public class SigninFirstRunMediator - TextUtils.equals(mDefaultAccountName, mSelectedAccountName) - ? MobileFreProgress.WELCOME_SIGNIN_WITH_DEFAULT_ACCOUNT - : MobileFreProgress.WELCOME_SIGNIN_WITH_NON_DEFAULT_ACCOUNT); -- // If the user signs into an account on the FRE, goes to the sync consent page and presses -- // back to come back to the FRE, then there will already be an account signed in. -- @Nullable -- CoreAccountInfo signedInAccount = -- IdentityServicesProvider.get() -- .getIdentityManager(Profile.getLastUsedRegularProfile()) -- .getPrimaryAccountInfo(ConsentLevel.SIGNIN); -- if (signedInAccount != null && signedInAccount.getEmail().equals(mSelectedAccountName)) { -- mDelegate.advanceToNextPage(); -- return; -- } -- mModel.set(SigninFirstRunProperties.SHOW_SIGNIN_PROGRESS_SPINNER_WITH_TEXT, true); -- final SigninManager signinManager = IdentityServicesProvider.get().getSigninManager( -- Profile.getLastUsedRegularProfile()); -- signinManager.signin( -- AccountUtils.createAccountFromName(mSelectedAccountName), new SignInCallback() { -- @Override -- public void onSignInComplete() { -- if (mDestroyed) { -- // FirstRunActivity was destroyed while we were waiting for sign-in. -- return; -- } -- mDelegate.advanceToNextPage(); -- } -- -- @Override -- public void onSignInAborted() { -- // TODO(crbug/1248090): For now we enable the buttons again to not block the -- // users from continuing to the next page. Should show a dialog with the -- // signin error. -- mModel.set(SigninFirstRunProperties.SHOW_SIGNIN_PROGRESS_SPINNER_WITH_TEXT, -- false); -- mModel.set(SigninFirstRunProperties.SHOW_SIGNIN_PROGRESS_SPINNER, false); -- } -- }); - } - - /** -@@ -326,26 +289,9 @@ public class SigninFirstRunMediator - - mDelegate.recordFreProgressHistogram(MobileFreProgress.WELCOME_DISMISS); - mDelegate.acceptTermsOfService(mAllowMetricsAndCrashUploading); -- SigninPreferencesManager.getInstance().temporarilySuppressNewTabPagePromos(); -- if (IdentityServicesProvider.get() -- .getIdentityManager(Profile.getLastUsedRegularProfile()) -- .hasPrimaryAccount(ConsentLevel.SIGNIN)) { -- mModel.set(SigninFirstRunProperties.SHOW_SIGNIN_PROGRESS_SPINNER, true); -- SignOutCallback signOutCallback = () -> { -- if (mDestroyed) { -- // FirstRunActivity was destroyed while we were waiting for the sign-out. -- return; -- } -- -- mDelegate.advanceToNextPage(); -- }; -- IdentityServicesProvider.get() -- .getSigninManager(Profile.getLastUsedRegularProfile()) -- .signOut(SignoutReason.ABORT_SIGNIN, signOutCallback, -- /* forceWipeUserData= */ false); -- } else { -- mDelegate.advanceToNextPage(); -- } -+ -+ // Bromite: there is no identity provider, always advance to next page -+ mDelegate.advanceToNextPage(); - } - - /** -diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd ---- a/chrome/browser/ui/android/strings/android_chrome_strings.grd -+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -281,9 +281,6 @@ CHAR_LIMIT guidelines: - - Sign in to Chrome - -- -- You are currently customizing your Sync settings. To finish turning on sync, tap the Confirm button near the bottom of the screen. Navigate up -- - - Sync and personalize across devices - -@@ -396,21 +393,6 @@ CHAR_LIMIT guidelines: - - Because the preloaded pages are encrypted, Google will not learn anything about the preloaded page content. Google servers will learn which sites are privately preloaded. This information is only used to preload the pages, and is not linked to other information from your Google Account. - -- -- Make searches and browsing better -- -- -- Sends URLs of pages you visit to Google -- -- -- For more settings that relate to privacy, security, and data collection, see <link>Sync and Google services</link> -- -- -- For more settings that relate to privacy, security, and data collection, see <link1>Sync</link1> and <link2>Google services</link2> -- -- -- For more settings that relate to privacy, security, and data collection, see <link>Google services</link> -- - - Help improve Chrome\u2019s features and performance - -diff --git a/components/password_manager/core/browser/leak_detection_delegate.cc b/components/password_manager/core/browser/leak_detection_delegate.cc ---- a/components/password_manager/core/browser/leak_detection_delegate.cc -+++ b/components/password_manager/core/browser/leak_detection_delegate.cc -@@ -55,7 +55,7 @@ void LeakDetectionDelegate::StartLeakCheck(const PasswordForm& credentials) { - DCHECK(!credentials.password_value.empty()); - - leak_check_ = leak_factory_->TryCreateLeakCheck( -- this, client_->GetIdentityManager(), client_->GetURLLoaderFactory(), -+ this, nullptr, client_->GetURLLoaderFactory(), - client_->GetChannel()); - // Reset the helper to avoid notifications from the currently running check. - helper_.reset(); -diff --git a/components/password_manager/core/browser/password_form_manager.cc b/components/password_manager/core/browser/password_form_manager.cc ---- a/components/password_manager/core/browser/password_form_manager.cc -+++ b/components/password_manager/core/browser/password_form_manager.cc -@@ -42,7 +42,6 @@ - #include "components/password_manager/core/common/password_manager_features.h" - #include "components/password_manager/core/common/password_manager_pref_names.h" - #include "components/prefs/pref_service.h" --#include "components/signin/public/identity_manager/identity_manager.h" - #include "google_apis/gaia/core_account_id.h" - #include "third_party/abseil-cpp/absl/types/optional.h" - #include "third_party/abseil-cpp/absl/types/variant.h" -@@ -304,27 +303,7 @@ bool PasswordFormManager::WasUnblocklisted() const { - } - - bool PasswordFormManager::IsMovableToAccountStore() const { -- DCHECK( -- client_->GetPasswordFeatureManager()->ShouldShowAccountStorageBubbleUi()) -- << "Ensure that the client supports moving passwords for this user!"; -- signin::IdentityManager* identity_manager = client_->GetIdentityManager(); -- DCHECK(identity_manager); -- const std::string gaia_id = -- identity_manager->GetPrimaryAccountInfo(signin::ConsentLevel::kSignin) -- .gaia; -- DCHECK(!gaia_id.empty()) << "Cannot move without signed in user"; -- -- const std::u16string& username = GetPendingCredentials().username_value; -- const std::u16string& password = GetPendingCredentials().password_value; -- // If no match in the profile store with the same username and password exist, -- // then there is nothing to move. -- auto is_movable = [&](const PasswordForm* match) { -- return !match->IsUsingAccountStore() && match->username_value == username && -- match->password_value == password; -- }; -- return base::ranges::any_of(form_fetcher_->GetBestMatches(), is_movable) && -- !form_fetcher_->IsMovingBlocked(GaiaIdHash::FromGaiaId(gaia_id), -- username); -+ return false; - } - - void PasswordFormManager::Save() { -@@ -491,17 +470,6 @@ void PasswordFormManager::MoveCredentialsToAccountStore() { - void PasswordFormManager::BlockMovingCredentialsToAccountStore() { - // Nothing to do if there is no signed in user or the credentials are already - // blocked for moving. -- if (!IsMovableToAccountStore()) -- return; -- const std::string gaia_id = -- client_->GetIdentityManager() -- ->GetPrimaryAccountInfo(signin::ConsentLevel::kSignin) -- .gaia; -- // The above call to IsMovableToAccountStore() guarantees there is a signed in -- // user. -- DCHECK(!gaia_id.empty()); -- password_save_manager_->BlockMovingToAccountStoreFor( -- GaiaIdHash::FromGaiaId(gaia_id)); - } - - bool PasswordFormManager::IsNewLogin() const { -diff --git a/components/password_manager/core/browser/password_manager_client_helper.cc b/components/password_manager/core/browser/password_manager_client_helper.cc ---- a/components/password_manager/core/browser/password_manager_client_helper.cc -+++ b/components/password_manager/core/browser/password_manager_client_helper.cc -@@ -14,31 +14,10 @@ - #include "components/password_manager/core/browser/password_sync_util.h" - #include "components/password_manager/core/common/password_manager_pref_names.h" - #include "components/prefs/pref_service.h" --#include "components/signin/public/identity_manager/account_info.h" --#include "components/signin/public/identity_manager/identity_manager.h" - #include "google_apis/gaia/gaia_auth_util.h" - - namespace password_manager { - --namespace { -- --#if !BUILDFLAG(IS_IOS) && !BUILDFLAG(IS_ANDROID) --constexpr int kMaxMoveToAccountOffersForNonOptedInUser = 5; -- --bool IsPrimaryAccountSignIn(const signin::IdentityManager& identity_manager, -- const std::u16string& username, -- const std::string& signon_realm) { -- CoreAccountInfo primary_account = -- identity_manager.GetPrimaryAccountInfo(signin::ConsentLevel::kSignin); -- return sync_util::IsGaiaCredentialPage(signon_realm) && -- !primary_account.IsEmpty() && -- gaia::AreEmailsSame(base::UTF16ToUTF8(username), -- primary_account.email); --} --#endif // !BUILDFLAG(IS_IOS) && !BUILDFLAG(IS_ANDROID) -- --} // namespace -- - PasswordManagerClientHelper::PasswordManagerClientHelper( - PasswordManagerClient* delegate) - : delegate_(delegate) { -@@ -108,29 +87,7 @@ bool PasswordManagerClientHelper::ShouldPromptToEnableAutoSignIn() const { - bool PasswordManagerClientHelper::ShouldPromptToMovePasswordToAccount( - const PasswordFormManagerForUI& submitted_manager) const { - #if !BUILDFLAG(IS_IOS) && !BUILDFLAG(IS_ANDROID) -- PasswordFeatureManager* feature_manager = -- delegate_->GetPasswordFeatureManager(); -- if (!feature_manager->ShouldShowAccountStorageBubbleUi()) -- return false; -- if (feature_manager->GetDefaultPasswordStore() == -- PasswordForm::Store::kProfileStore) { -- return false; -- } -- if (!submitted_manager.IsMovableToAccountStore()) -- return false; -- if (delegate_->IsIncognito()) -- return false; -- // It's not useful to store the password for the primary account inside -- // that same account. -- if (IsPrimaryAccountSignIn( -- *delegate_->GetIdentityManager(), -- submitted_manager.GetPendingCredentials().username_value, -- submitted_manager.GetPendingCredentials().signon_realm)) { -- return false; -- } -- return feature_manager->IsOptedInForAccountStorage() || -- feature_manager->GetMoveOfferedToNonOptedInUserCount() < -- kMaxMoveToAccountOffersForNonOptedInUser; -+ return false; - #else - // On Android and iOS, prompting to move after using a password isn't - // implemented. -diff --git a/components/password_manager/core/browser/sync_credentials_filter.cc b/components/password_manager/core/browser/sync_credentials_filter.cc ---- a/components/password_manager/core/browser/sync_credentials_filter.cc -+++ b/components/password_manager/core/browser/sync_credentials_filter.cc -@@ -10,11 +10,7 @@ - #include "base/metrics/user_metrics.h" - #include "components/password_manager/core/browser/password_form_manager.h" - #include "components/password_manager/core/browser/password_manager_util.h" --#include "components/password_manager/core/browser/password_sync_util.h" - #include "components/password_manager/core/common/password_manager_features.h" --#include "components/signin/public/identity_manager/account_info.h" --#include "components/signin/public/identity_manager/identity_manager.h" --#include "google_apis/gaia/gaia_auth_util.h" - - namespace password_manager { - -@@ -34,67 +30,26 @@ bool SyncCredentialsFilter::ShouldSave(const PasswordForm& form) const { - if (form.form_data.is_gaia_with_skip_save_password_form) - return false; - -- const syncer::SyncService* sync_service = -- sync_service_factory_function_.Run(); -- const signin::IdentityManager* identity_manager = -- client_->GetIdentityManager(); -- -- if (base::FeatureList::IsEnabled(features::kEnablePasswordsAccountStorage)) { -- // If kEnablePasswordsAccountStorage is enabled, then don't allow saving the -- // password if it corresponds to the primary account. Note that if the user -- // is just signing in to the first Gaia account, then IdentityManager might -- // not know about the account yet. -- if (sync_util::IsGaiaCredentialPage(form.signon_realm)) { -- CoreAccountInfo primary_account = identity_manager->GetPrimaryAccountInfo( -- signin::ConsentLevel::kSignin); -- if (primary_account.IsEmpty() || -- gaia::AreEmailsSame(base::UTF16ToUTF8(form.username_value), -- primary_account.email)) { -- return false; -- } -- } -- } else { -- // If kEnablePasswordsAccountStorage is NOT enabled, then don't allow saving -- // the password for the sync account specifically. -- if (sync_util::IsSyncAccountCredential(form.url, form.username_value, -- sync_service, identity_manager)) { -- return false; -- } -- } -- - return true; - } - - bool SyncCredentialsFilter::ShouldSaveGaiaPasswordHash( - const PasswordForm& form) const { -- if (base::FeatureList::IsEnabled(features::kPasswordReuseDetectionEnabled)) { -- return !client_->IsIncognito() && -- sync_util::IsGaiaCredentialPage(form.signon_realm); -- } - return false; - } - - bool SyncCredentialsFilter::ShouldSaveEnterprisePasswordHash( - const PasswordForm& form) const { -- return !client_->IsIncognito() && sync_util::ShouldSaveEnterprisePasswordHash( -- form, *client_->GetPrefs()); -+ return false; - } - - bool SyncCredentialsFilter::IsSyncAccountEmail( - const std::string& username) const { -- return sync_util::IsSyncAccountEmail(username, client_->GetIdentityManager()); -+ return false; - } - - void SyncCredentialsFilter::ReportFormLoginSuccess( - const PasswordFormManager& form_manager) const { -- const PasswordForm& form = form_manager.GetPendingCredentials(); -- if (!form_manager.IsNewLogin() && -- sync_util::IsSyncAccountCredential(form.url, form.username_value, -- sync_service_factory_function_.Run(), -- client_->GetIdentityManager())) { -- base::RecordAction(base::UserMetricsAction( -- "PasswordManager_SyncCredentialFilledAndLoginSuccessfull")); -- } - } - - } // namespace password_manager -diff --git a/components/signin/features.gni b/components/signin/features.gni ---- a/components/signin/features.gni -+++ b/components/signin/features.gni -@@ -5,7 +5,7 @@ - import("//build/config/chromeos/ui_mode.gni") - - # Dice is supported on the platform (but not necessarily enabled). --enable_dice_support = is_linux || is_mac || is_win || is_fuchsia -+enable_dice_support = false - - # Mirror is enabled and other account consistency mechanisms are not available. --enable_mirror = is_android || is_chromeos || is_ios -+enable_mirror = false -diff --git a/components/signin/internal/identity_manager/primary_account_manager.cc b/components/signin/internal/identity_manager/primary_account_manager.cc ---- a/components/signin/internal/identity_manager/primary_account_manager.cc -+++ b/components/signin/internal/identity_manager/primary_account_manager.cc -@@ -169,21 +169,15 @@ void PrimaryAccountManager::Initialize(PrefService* local_state) { - base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); - ScopedPrefCommit scoped_pref_commit(client_->GetPrefs(), - /*commit_on_destroy*/ false); -- if (cmd_line->HasSwitch(switches::kClearTokenService)) -+ if ((true) || cmd_line->HasSwitch(switches::kClearTokenService)) - SetPrimaryAccountInternal(CoreAccountInfo(), false, scoped_pref_commit); - -- std::string pref_account_id = -- client_->GetPrefs()->GetString(prefs::kGoogleServicesAccountId); -+ std::string pref_account_id; - - // Initial value for the kGoogleServicesConsentedToSync preference if it is - // missing. -- const PrefService::Preference* consented_pref = -- client_->GetPrefs()->FindPreference( -- prefs::kGoogleServicesConsentedToSync); -- if (consented_pref->IsDefaultValue()) { -- client_->GetPrefs()->SetBoolean(prefs::kGoogleServicesConsentedToSync, -- !pref_account_id.empty()); -- } -+ client_->GetPrefs()->SetBoolean(prefs::kGoogleServicesConsentedToSync, -+ false); - - #if BUILDFLAG(IS_CHROMEOS_ASH) - if (!pref_account_id.empty()) { -@@ -213,8 +207,6 @@ void PrimaryAccountManager::Initialize(PrefService* local_state) { - SetPrimaryAccountInternal(CoreAccountInfo(), /*consented_to_sync=*/false, - scoped_pref_commit); - SetSyncPrimaryAccountInternal(account_info); -- } else { -- SetPrimaryAccountInternal(account_info, consented, scoped_pref_commit); - } - - // Instrument metrics to know what fraction of users without a primary -@@ -357,6 +349,7 @@ void PrimaryAccountManager::RecordHadPreviousSyncAccount() const { - - bool PrimaryAccountManager::HasPrimaryAccount( - signin::ConsentLevel consent_level) const { -+ if ((true)) return false; - bool consented_pref = - client_->GetPrefs()->GetBoolean(prefs::kGoogleServicesConsentedToSync); - if (primary_account_info().account_id.empty()) { -diff --git a/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.cc b/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.cc ---- a/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.cc -+++ b/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.cc -@@ -14,7 +14,6 @@ - #include "base/memory/raw_ptr.h" - #include "base/metrics/histogram_functions.h" - #include "base/metrics/histogram_macros.h" --#include "components/signin/public/android/jni_headers/ProfileOAuth2TokenServiceDelegate_jni.h" - #include "components/signin/public/base/account_consistency_method.h" - #include "components/signin/public/identity_manager/account_info.h" - #include "google_apis/gaia/gaia_auth_util.h" -@@ -91,20 +90,7 @@ AndroidAccessTokenFetcher::~AndroidAccessTokenFetcher() {} - void AndroidAccessTokenFetcher::Start(const std::string& client_id, - const std::string& client_secret, - const std::vector& scopes) { -- JNIEnv* env = AttachCurrentThread(); -- std::string scope = CombineScopes(scopes); -- ScopedJavaLocalRef j_email = -- ConvertUTF8ToJavaString(env, account_id_); -- ScopedJavaLocalRef j_scope = ConvertUTF8ToJavaString(env, scope); -- std::unique_ptr heap_callback( -- new FetchOAuth2TokenCallback( -- base::BindOnce(&AndroidAccessTokenFetcher::OnAccessTokenResponse, -- weak_factory_.GetWeakPtr()))); -- -- // Call into Java to get a new token. -- signin::Java_ProfileOAuth2TokenServiceDelegate_getAccessTokenFromNative( -- env, oauth2_token_service_delegate_->GetJavaObject(), j_email, j_scope, -- reinterpret_cast(heap_callback.release())); -+ CancelRequest(); - } - - void AndroidAccessTokenFetcher::CancelRequest() { -@@ -154,13 +140,6 @@ ProfileOAuth2TokenServiceDelegateAndroid:: - fire_refresh_token_loaded_(RT_LOAD_NOT_START) { - DVLOG(1) << "ProfileOAuth2TokenServiceDelegateAndroid::ctor"; - DCHECK(account_tracker_service_); -- -- JNIEnv* env = AttachCurrentThread(); -- base::android::ScopedJavaLocalRef local_java_ref = -- signin::Java_ProfileOAuth2TokenServiceDelegate_Constructor( -- env, reinterpret_cast(this), -- account_tracker_service_->GetJavaObject()); -- java_ref_.Reset(env, local_java_ref.obj()); - } - - ProfileOAuth2TokenServiceDelegateAndroid:: -@@ -168,30 +147,12 @@ ProfileOAuth2TokenServiceDelegateAndroid:: - - ScopedJavaLocalRef - ProfileOAuth2TokenServiceDelegateAndroid::GetJavaObject() { -- return ScopedJavaLocalRef(java_ref_); -+ return nullptr; - } - - bool ProfileOAuth2TokenServiceDelegateAndroid::RefreshTokenIsAvailable( - const CoreAccountId& account_id) const { -- DVLOG(1) -- << "ProfileOAuth2TokenServiceDelegateAndroid::RefreshTokenIsAvailable" -- << " account= " << account_id; -- std::string account_name = MapAccountIdToAccountName(account_id); -- if (account_name.empty()) { -- // This corresponds to the case when the account with id |account_id| is not -- // present on the device and thus was not seeded. -- DVLOG(1) -- << "ProfileOAuth2TokenServiceDelegateAndroid::RefreshTokenIsAvailable" -- << " cannot find account name for account id " << account_id; -- return false; -- } -- JNIEnv* env = AttachCurrentThread(); -- ScopedJavaLocalRef j_account_name = -- ConvertUTF8ToJavaString(env, account_name); -- jboolean refresh_token_is_available = -- signin::Java_ProfileOAuth2TokenServiceDelegate_hasOAuth2RefreshToken( -- env, java_ref_, j_account_name); -- return refresh_token_is_available == JNI_TRUE; -+ return false; - } - - std::vector -@@ -235,49 +196,11 @@ void ProfileOAuth2TokenServiceDelegateAndroid::OnAccessTokenInvalidated( - const std::string& client_id, - const OAuth2AccessTokenManager::ScopeSet& scopes, - const std::string& access_token) { -- ValidateAccountId(account_id); -- JNIEnv* env = AttachCurrentThread(); -- ScopedJavaLocalRef j_access_token = -- ConvertUTF8ToJavaString(env, access_token); -- signin::Java_ProfileOAuth2TokenServiceDelegate_invalidateAccessToken( -- env, java_ref_, j_access_token); - } - - void ProfileOAuth2TokenServiceDelegateAndroid:: - ReloadAllAccountsFromSystemWithPrimaryAccount( - const absl::optional& primary_account_id) { -- JNIEnv* env = AttachCurrentThread(); -- -- ScopedJavaLocalRef j_account_id = -- primary_account_id.has_value() -- ? ConvertUTF8ToJavaString(env, primary_account_id->ToString()) -- : nullptr; -- signin:: -- Java_ProfileOAuth2TokenServiceDelegate_seedAndReloadAccountsWithPrimaryAccount( -- env, java_ref_, j_account_id); --} -- --void ProfileOAuth2TokenServiceDelegateAndroid:: -- ReloadAllAccountsWithPrimaryAccountAfterSeeding( -- JNIEnv* env, -- const base::android::JavaParamRef& j_primary_account_id, -- const base::android::JavaParamRef& -- j_device_account_names) { -- absl::optional primary_account_id; -- if (j_primary_account_id) { -- primary_account_id = CoreAccountId::FromString( -- ConvertJavaStringToUTF8(env, j_primary_account_id)); -- } -- std::vector device_account_names; -- base::android::AppendJavaStringArrayToStringVector( -- env, j_device_account_names, &device_account_names); -- std::vector account_ids; -- for (const std::string& name : device_account_names) { -- CoreAccountId id(MapAccountNameToAccountId(name)); -- if (!id.empty()) -- account_ids.push_back(std::move(id)); -- } -- UpdateAccountList(primary_account_id, GetValidAccounts(), account_ids); - } - - void ProfileOAuth2TokenServiceDelegateAndroid::UpdateAccountList( -@@ -398,11 +321,6 @@ void ProfileOAuth2TokenServiceDelegateAndroid::RevokeAllCredentials() { - - for (const CoreAccountId& account : accounts_to_revoke) - FireRefreshTokenRevoked(account); -- -- JNIEnv* env = AttachCurrentThread(); -- signin:: -- Java_ProfileOAuth2TokenServiceDelegate_invalidateAccountsSeedingStatus( -- env, java_ref_); - } - - void ProfileOAuth2TokenServiceDelegateAndroid::LoadCredentials( -@@ -438,40 +356,3 @@ ProfileOAuth2TokenServiceDelegateAndroid::MapAccountNameToAccountId( - << "Can't find account id, account_name=" << account_name; - return account_id; - } -- --namespace signin { -- --// Called from Java when fetching of an OAuth2 token is finished. The --// |authToken| param is only valid when |result| is true. --// |expiration_time_secs| param is the number of seconds (NOT milliseconds) --// after the Unix epoch when the token is scheduled to expire. --// It is set to 0 if there's no known expiration time. --void JNI_ProfileOAuth2TokenServiceDelegate_OnOAuth2TokenFetched( -- JNIEnv* env, -- const JavaParamRef& authToken, -- const jlong expiration_time_secs, -- jboolean isTransientError, -- jlong nativeCallback) { -- std::string token; -- if (authToken) -- token = ConvertJavaStringToUTF8(env, authToken); -- std::unique_ptr heap_callback( -- reinterpret_cast(nativeCallback)); -- GoogleServiceAuthError err = GoogleServiceAuthError::AuthErrorNone(); -- if (!authToken) { -- err = -- isTransientError -- ? GoogleServiceAuthError(GoogleServiceAuthError::CONNECTION_FAILED) -- : GoogleServiceAuthError::FromInvalidGaiaCredentialsReason( -- GoogleServiceAuthError::InvalidGaiaCredentialsReason:: -- CREDENTIALS_REJECTED_BY_SERVER); -- } -- -- const base::Time expiration_time = -- expiration_time_secs == 0 -- ? base::Time() -- : base::Time::FromJavaTime(expiration_time_secs * 1000); -- -- std::move(*heap_callback).Run(err, token, expiration_time); --} --} // namespace signin -diff --git a/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.h b/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.h ---- a/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.h -+++ b/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.h -@@ -57,14 +57,6 @@ class ProfileOAuth2TokenServiceDelegateAndroid - void ReloadAllAccountsFromSystemWithPrimaryAccount( - const absl::optional& primary_account_id) override; - -- // Resumes the reload of accounts once the account seeding is complete. -- // TODO(crbug.com/934688) Once ProfileOAuth2TokenServiceDelegate.java is -- // internalized, use CoreAccountId instead of String. -- void ReloadAllAccountsWithPrimaryAccountAfterSeeding( -- JNIEnv* env, -- const base::android::JavaParamRef& j_primary_account_id, -- const base::android::JavaParamRef& j_device_account_names); -- - // Takes a the signed in sync account as well as all the other - // android account ids and check the token status of each. - // NOTE: TokenAvailable notifications will be sent for all accounts, even if -@@ -115,8 +107,6 @@ class ProfileOAuth2TokenServiceDelegateAndroid - // Set accounts that have been advertised by OnRefreshTokenAvailable. - virtual void SetAccounts(const std::vector& accounts); - -- base::android::ScopedJavaGlobalRef java_ref_; -- - // Accounts that have been advertised by OnRefreshTokenAvailable. - std::vector accounts_; - -diff --git a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java b/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java ---- a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java -+++ b/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java -@@ -132,13 +132,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { - } - - protected boolean hasFeatures(Account account, String[] features) { -- if (hasGetAccountsPermission()) { -- try { -- return mAccountManager.hasFeatures(account, features, null, null).getResult(); -- } catch (AuthenticatorException | IOException | OperationCanceledException e) { -- Log.e(TAG, "Error while checking features: ", e); -- } -- } - return false; - } - -@@ -179,25 +172,9 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { - public void updateCredentials( - Account account, Activity activity, final Callback callback) { - ThreadUtils.assertOnUiThread(); -- AccountManagerCallback realCallback = future -> { -- Bundle bundle = null; -- try { -- bundle = future.getResult(); -- } catch (AuthenticatorException | IOException e) { -- Log.e(TAG, "Error while update credentials: ", e); -- } catch (OperationCanceledException e) { -- Log.w(TAG, "Updating credentials was cancelled."); -- } -- boolean success = -- bundle != null && bundle.getString(AccountManager.KEY_ACCOUNT_TYPE) != null; - if (callback != null) { -- callback.onResult(success); -+ callback.onResult(false); - } -- }; -- // Android 4.4 throws NullPointerException if null is passed -- Bundle emptyOptions = new Bundle(); -- mAccountManager.updateCredentials( -- account, "android", emptyOptions, activity, realCallback, null); - } - - @Nullable -diff --git a/components/signin/public/android/java/src/org/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate.java b/components/signin/public/android/java/src/org/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate.java ---- a/components/signin/public/android/java/src/org/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate.java -+++ b/components/signin/public/android/java/src/org/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate.java -@@ -82,31 +82,6 @@ final class ProfileOAuth2TokenServiceDelegate { - private void getAccessTokenFromNative( - String accountEmail, String scope, final long nativeCallback) { - assert accountEmail != null : "Account email cannot be null!"; -- mAccountManagerFacade.getAccounts().then(accounts -> { -- final Account account = AccountUtils.findAccountByName(accounts, accountEmail); -- if (account == null) { -- ThreadUtils.postOnUiThread(() -> { -- ProfileOAuth2TokenServiceDelegateJni.get().onOAuth2TokenFetched( -- null, AccessTokenData.NO_KNOWN_EXPIRATION_TIME, false, nativeCallback); -- }); -- return; -- } -- String oauth2Scope = OAUTH2_SCOPE_PREFIX + scope; -- getAccessToken(account, oauth2Scope, new GetAccessTokenCallback() { -- @Override -- public void onGetTokenSuccess(AccessTokenData token) { -- ProfileOAuth2TokenServiceDelegateJni.get().onOAuth2TokenFetched( -- token.getToken(), token.getExpirationTimeSecs(), false, nativeCallback); -- } -- -- @Override -- public void onGetTokenFailure(boolean isTransientError) { -- ProfileOAuth2TokenServiceDelegateJni.get().onOAuth2TokenFetched(null, -- AccessTokenData.NO_KNOWN_EXPIRATION_TIME, isTransientError, -- nativeCallback); -- } -- }); -- }); - } - - /** -@@ -168,32 +143,5 @@ final class ProfileOAuth2TokenServiceDelegate { - @CalledByNative - void seedAndReloadAccountsWithPrimaryAccount(@Nullable String primaryAccountId) { - ThreadUtils.assertOnUiThread(); -- mAccountTrackerService.seedAccountsIfNeeded(() -> { -- final List accounts = AccountUtils.getAccountsIfFulfilledOrEmpty( -- AccountManagerFacadeProvider.getInstance().getAccounts()); -- ProfileOAuth2TokenServiceDelegateJni.get() -- .reloadAllAccountsWithPrimaryAccountAfterSeeding( -- mNativeProfileOAuth2TokenServiceDelegate, primaryAccountId, -- AccountUtils.toAccountNames(accounts).toArray(new String[0])); -- }); -- } -- -- @NativeMethods -- interface Natives { -- /** -- * Called to C++ when fetching of an OAuth2 token is finished. -- * @param authToken The string value of the OAuth2 token. -- * @param expirationTimeSecs The number of seconds after the Unix epoch when the token is -- * scheduled to expire. It is set to 0 if there's no known expiration time. -- * @param isTransientError Indicates if the error is transient (network timeout or -- * * unavailable, etc) or persistent (bad credentials, permission denied, etc). -- * @param nativeCallback the pointer to the native callback that should be run upon -- * completion. -- */ -- void onOAuth2TokenFetched(String authToken, long expirationTimeSecs, -- boolean isTransientError, long nativeCallback); -- void reloadAllAccountsWithPrimaryAccountAfterSeeding( -- long nativeProfileOAuth2TokenServiceDelegateAndroid, @Nullable String accountId, -- String[] deviceAccountNames); - } - } -diff --git a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java b/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java ---- a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java -+++ b/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java -@@ -98,54 +98,8 @@ public class HttpNegotiateAuthenticator { - - @Override - public void run(AccountManagerFuture future) { -- Account[] accounts; -- try { -- accounts = future.getResult(); -- } catch (OperationCanceledException | AuthenticatorException | IOException e) { -- Log.w(TAG, "ERR_UNEXPECTED: Error while attempting to retrieve accounts.", e); -- HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject, -- HttpNegotiateAuthenticator.this, NetError.ERR_UNEXPECTED, null); -- return; -- } -- -- if (accounts.length == 0) { -- Log.w(TAG, "ERR_MISSING_AUTH_CREDENTIALS: No account provided for the kerberos " -- + "authentication. Please verify the configuration policies and " -- + "that the CONTACTS runtime permission is granted. "); -- HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject, -- HttpNegotiateAuthenticator.this, NetError.ERR_MISSING_AUTH_CREDENTIALS, -- null); -- return; -- } -- -- if (accounts.length > 1) { -- Log.w(TAG, "ERR_MISSING_AUTH_CREDENTIALS: Found %d accounts eligible for the " -- + "kerberos authentication. Please fix the configuration by " -- + "providing a single account.", -- accounts.length); -- HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject, -- HttpNegotiateAuthenticator.this, NetError.ERR_MISSING_AUTH_CREDENTIALS, -- null); -- return; -- } -- -- if (lacksPermission(ContextUtils.getApplicationContext(), -- "android.permission.USE_CREDENTIALS", true)) { -- // Protecting the AccountManager#getAuthToken call. -- // API < 23 Requires the USE_CREDENTIALS permission or throws an exception. -- // API >= 23 USE_CREDENTIALS permission is removed -- Log.e(TAG, "ERR_MISCONFIGURED_AUTH_ENVIRONMENT: USE_CREDENTIALS permission not " -- + "granted. Aborting authentication."); -- HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject, -- HttpNegotiateAuthenticator.this, -- NetError.ERR_MISCONFIGURED_AUTH_ENVIRONMENT, null); -- return; -- } -- mRequestData.account = accounts[0]; -- mRequestData.accountManager.getAuthToken(mRequestData.account, -- mRequestData.authTokenType, mRequestData.options, true /* notifyAuthFailure */, -- new GetTokenCallback(mRequestData), -- new Handler(ThreadUtils.getUiThreadLooper())); -+ // account-based authentication removed for privacy-violations concerns -+ return; - } - } - -@@ -158,42 +112,8 @@ public class HttpNegotiateAuthenticator { - - @Override - public void run(AccountManagerFuture future) { -- Bundle result; -- try { -- result = future.getResult(); -- } catch (OperationCanceledException | AuthenticatorException | IOException e) { -- Log.w(TAG, "ERR_UNEXPECTED: Error while attempting to obtain a token.", e); -- HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject, -- HttpNegotiateAuthenticator.this, NetError.ERR_UNEXPECTED, null); -- return; -- } -- -- if (result.containsKey(AccountManager.KEY_INTENT)) { -- final Context appContext = ContextUtils.getApplicationContext(); -- -- // We wait for a broadcast that should be sent once the user is done interacting -- // with the notification -- // TODO(dgn) We currently hang around if the notification is swiped away, until -- // a LOGIN_ACCOUNTS_CHANGED_ACTION filter is received. It might be for something -- // unrelated then we would wait again here. Maybe we should limit the number of -- // retries in some way? -- BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { -- -- @Override -- public void onReceive(Context context, Intent intent) { -- appContext.unregisterReceiver(this); -- mRequestData.accountManager.getAuthToken(mRequestData.account, -- mRequestData.authTokenType, mRequestData.options, -- true /* notifyAuthFailure */, new GetTokenCallback(mRequestData), -- null); -- } -- -- }; -- ContextUtils.registerProtectedBroadcastReceiver(appContext, broadcastReceiver, -- new IntentFilter(AccountManager.LOGIN_ACCOUNTS_CHANGED_ACTION)); -- } else { -- processResult(result, mRequestData); -- } -+ // account-based authentication removed for privacy-violations concerns -+ return; - } - } - -diff --git a/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java b/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java ---- a/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java -+++ b/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java -@@ -93,7 +93,6 @@ public class OAuthTokenFetcher { - - /** Begins fetching a token. Should be called on the main thread. */ - public void fetch() { -- fetchImpl(null); - } - - /** -@@ -102,7 +101,6 @@ public class OAuthTokenFetcher { - * @param expiredToken A previously-fetched token which has expired. - */ - public void clearAndFetch(String expiredToken) { -- fetchImpl(expiredToken); - } - - private void fetchImpl(final String expiredToken) { --- -2.25.1