[waffle]Save the guest DSE prepopulated id in a local state pref
We save the prepopulated id of the search engine that is chosen in the
search engine choice dialog while in a guest session.
This will later be used to decide whether the dialog should be
displayed and to set the default search engine in guest mode.
NO_IFTTT=Formatting changes triggered IFTTT
Fixed: b:364233322
Change-Id: Ibb5aa5377d82e26173d6819bed2fdfd737bfdbaf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5832487
Reviewed-by: Nicolas Dossou-Gbété <[email protected]>
Reviewed-by: David Roger <[email protected]>
Commit-Queue: Jack Yammine <[email protected]>
Auto-Submit: Jack Yammine <[email protected]>
Reviewed-by: Arthur Sonzogni <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1351921}
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index f4bb519..5dc4b0f 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -170,6 +170,7 @@
#include "components/safe_browsing/content/common/file_type_policies_prefs.h"
#include "components/safe_browsing/core/common/safe_browsing_prefs.h"
#include "components/saved_tab_groups/pref_names.h"
+#include "components/search_engines/search_engine_choice/search_engine_choice_service.h"
#include "components/search_engines/template_url_prepopulate_data.h"
#include "components/security_interstitials/content/insecure_form_blocking_page.h"
#include "components/security_interstitials/content/stateful_ssl_host_state_delegate.h"
@@ -1581,6 +1582,7 @@
#endif
RegisterScreenshotPrefs(registry);
safe_browsing::RegisterLocalStatePrefs(registry);
+ search_engines::SearchEngineChoiceService::RegisterLocalStatePrefs(registry);
secure_origin_allowlist::RegisterPrefs(registry);
segmentation_platform::SegmentationPlatformService::RegisterLocalStatePrefs(
registry);
diff --git a/chrome/browser/resources/search_engine_choice/app.html.ts b/chrome/browser/resources/search_engine_choice/app.html.ts
index 7921895..d455e8a 100644
--- a/chrome/browser/resources/search_engine_choice/app.html.ts
+++ b/chrome/browser/resources/search_engine_choice/app.html.ts
@@ -44,7 +44,9 @@
</cr-radio-group>
</div>
<div id="buttonContainer">
- <cr-checkbox ?hidden="${!this.showGuestCheckbox_}">
+ <cr-checkbox ?hidden="${!this.showGuestCheckbox_}"
+ ?checked="${this.saveGuestModeSearchEngineChoice_}"
+ @checked-changed="${this.onCheckboxStateChange_}">
$i18n{guestCheckboxText}
</cr-checkbox>
<cr-button class="action-button" id="actionButton"
@@ -57,7 +59,8 @@
</cr-button>
</div>
-${this.showInfoDialog_ ? html`
+${
+ this.showInfoDialog_ ? html`
<cr-dialog id="infoDialog" show-on-attach>
<div slot="title">
<img class="info-dialog-illustration" alt="">
@@ -75,6 +78,7 @@
</cr-button>
</div>
</cr-dialog>
-` : ''}
+` :
+ ''}
<!--_html_template_end_-->`;
}
diff --git a/chrome/browser/resources/search_engine_choice/app.ts b/chrome/browser/resources/search_engine_choice/app.ts
index 70a283d..0fc6092 100644
--- a/chrome/browser/resources/search_engine_choice/app.ts
+++ b/chrome/browser/resources/search_engine_choice/app.ts
@@ -4,6 +4,7 @@
import 'chrome://resources/cr_components/localized_link/localized_link.js';
import 'chrome://resources/cr_elements/cr_button/cr_button.js';
+import 'chrome://resources/cr_elements/cr_checkbox/cr_checkbox.js';
import 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
import 'chrome://resources/cr_elements/cr_checkbox/cr_checkbox.js';
import 'chrome://resources/cr_elements/cr_radio_group/cr_radio_group.js';
@@ -77,6 +78,7 @@
protected actionButtonText_: string = '';
protected showGuestCheckbox_: boolean =
loadTimeData.getBoolean('showGuestCheckbox');
+ protected saveGuestModeSearchEngineChoice_: boolean = false;
private resizeObserver_: ResizeObserver|null = null;
private pageHandler_: PageHandlerRemote =
@@ -193,9 +195,15 @@
this.pageHandler_.handleLearnMoreLinkClicked();
}
+ protected onCheckboxStateChange_(e: CustomEvent<{value: boolean}>) {
+ this.saveGuestModeSearchEngineChoice_ = e.detail.value;
+ }
+
protected onActionButtonClicked_() {
if (this.hasUserScrolledToTheBottom_) {
- this.pageHandler_.handleSearchEngineChoiceSelected(this.selectedChoice_);
+ this.pageHandler_.handleSearchEngineChoiceSelected(
+ this.selectedChoice_,
+ this.showGuestCheckbox_ && this.saveGuestModeSearchEngineChoice_);
return;
}
diff --git a/chrome/browser/search_engine_choice/search_engine_choice_dialog_browsertest.cc b/chrome/browser/search_engine_choice/search_engine_choice_dialog_browsertest.cc
index 97e9ae6..ce7324b9 100644
--- a/chrome/browser/search_engine_choice/search_engine_choice_dialog_browsertest.cc
+++ b/chrome/browser/search_engine_choice/search_engine_choice_dialog_browsertest.cc
@@ -85,10 +85,12 @@
});
ON_CALL(*this, NotifyChoiceMade)
- .WillByDefault([this](int prepopulate_id, EntryPoint entry_point) {
+ .WillByDefault([this](int prepopulate_id,
+ bool save_guest_mode_selection,
+ EntryPoint entry_point) {
number_of_browsers_with_dialogs_open_ = 0;
- SearchEngineChoiceDialogService::NotifyChoiceMade(prepopulate_id,
- entry_point);
+ SearchEngineChoiceDialogService::NotifyChoiceMade(
+ prepopulate_id, save_guest_mode_selection, entry_point);
});
}
~MockSearchEngineChoiceDialogService() override = default;
@@ -111,7 +113,7 @@
}
MOCK_METHOD(bool, RegisterDialog, (Browser&, base::OnceClosure), (override));
- MOCK_METHOD(void, NotifyChoiceMade, (int, EntryPoint), (override));
+ MOCK_METHOD(void, NotifyChoiceMade, (int, bool, EntryPoint), (override));
private:
unsigned int number_of_browsers_with_dialogs_open_ = 0;
@@ -411,7 +413,8 @@
// Simulate a dialog closing event for the first profile and test that the
// dialogs for that profile are closed.
first_profile_service->NotifyChoiceMade(
- /*prepopulate_id=*/1, EntryPoint::kDialog);
+ /*prepopulate_id=*/1, /*save_guest_mode_selection=*/false,
+ EntryPoint::kDialog);
CheckDefaultWasSetRecorded();
EXPECT_FALSE(first_profile_service->IsShowingDialog(
*first_browser_with_first_profile));
@@ -499,6 +502,7 @@
// Choose the first search engine to close the dialog.
TemplateURL* first_search_engine = service->GetSearchEngines().at(0);
service->NotifyChoiceMade(first_search_engine->prepopulate_id(),
+ /*save_guest_mode_selection=*/false,
EntryPoint::kDialog);
}
@@ -656,7 +660,8 @@
EXPECT_NE(default_search_engine_id, kBingId);
// Set the pref and simulate a dialog closing event.
- service->NotifyChoiceMade(kBingId, EntryPoint::kDialog);
+ service->NotifyChoiceMade(kBingId, /*save_guest_mode_selection=*/false,
+ EntryPoint::kDialog);
EXPECT_FALSE(service->IsShowingDialog(*browser()));
histogram_tester().ExpectUniqueSample(
search_engines::kSearchEngineChoiceScreenDefaultSearchEngineTypeHistogram,
@@ -679,7 +684,7 @@
// Complete the choice for the first guest profile.
first_service->NotifyChoiceMade(
- TemplateURLPrepopulateData::bing.id,
+ TemplateURLPrepopulateData::bing.id, /*save_guest_mode_selection=*/false,
SearchEngineChoiceDialogService::EntryPoint::kDialog);
EXPECT_FALSE(first_service->IsShowingDialog(*first_guest_session));
@@ -778,7 +783,8 @@
// The first item was Google, pick the second then.
prepopulate_id = service->GetSearchEngines().at(1)->prepopulate_id();
}
- service->NotifyChoiceMade(prepopulate_id, EntryPoint::kDialog);
+ service->NotifyChoiceMade(prepopulate_id, /*save_guest_mode_selection=*/false,
+ EntryPoint::kDialog);
// Choice prefs have been written.
ASSERT_NE(profile->GetPrefs()->GetInt64(
diff --git a/chrome/browser/search_engine_choice/search_engine_choice_dialog_service.cc b/chrome/browser/search_engine_choice/search_engine_choice_dialog_service.cc
index 559bb36..ba4282e 100644
--- a/chrome/browser/search_engine_choice/search_engine_choice_dialog_service.cc
+++ b/chrome/browser/search_engine_choice/search_engine_choice_dialog_service.cc
@@ -133,8 +133,10 @@
search_engine_choice_service_(search_engine_choice_service),
template_url_service_(template_url_service) {}
-void SearchEngineChoiceDialogService::NotifyChoiceMade(int prepopulate_id,
- EntryPoint entry_point) {
+void SearchEngineChoiceDialogService::NotifyChoiceMade(
+ int prepopulate_id,
+ bool save_guest_mode_selection,
+ EntryPoint entry_point) {
int country_id = search_engine_choice_service_->GetCountryId();
SCOPED_CRASH_KEY_STRING32(
"ChoiceService", "choice_country",
@@ -193,6 +195,12 @@
NOTREACHED(base::NotFatalUntil::M127);
} else {
+ if (base::FeatureList::IsEnabled(
+ switches::kSearchEngineChoiceGuestExperience) &&
+ profile_->IsGuestSession() && save_guest_mode_selection) {
+ g_browser_process->local_state()->SetInt64(
+ prefs::kDefaultSearchProviderGuestModePrepopulatedId, prepopulate_id);
+ }
template_url_service_->SetUserSelectedDefaultSearchProvider(
selected_engine, search_engines::ChoiceMadeLocation::kChoiceScreen);
}
diff --git a/chrome/browser/search_engine_choice/search_engine_choice_dialog_service.h b/chrome/browser/search_engine_choice/search_engine_choice_dialog_service.h
index e6767d08..9df7097 100644
--- a/chrome/browser/search_engine_choice/search_engine_choice_dialog_service.h
+++ b/chrome/browser/search_engine_choice/search_engine_choice_dialog_service.h
@@ -73,9 +73,13 @@
// corresponding preferences.
// `prepopulate_id` is the `prepopulate_id` of the search engine found in
// `components/search_engines/template_url_data.h`. It will always be > 0.
- // `entry_point` is the view in which the UI is rendered.
- // Virtual to be able to mock in tests.
- virtual void NotifyChoiceMade(int prepopulate_id, EntryPoint entry_point);
+ // `save_guest_mode_selection` will save the guest mode selection so that the
+ // users are not prompted at every guest session launch.
+ // `entry_point` is the view in which the UI is rendered. Virtual to be able
+ // to mock in tests.
+ virtual void NotifyChoiceMade(int prepopulate_id,
+ bool save_guest_mode_selection,
+ EntryPoint entry_point);
// Informs the service that the learn more link was clicked. This is used to
// record histograms. `entry_point` is the view in which the UI is rendered.
diff --git a/chrome/browser/search_engine_choice/search_engine_choice_dialog_service_unittest.cc b/chrome/browser/search_engine_choice/search_engine_choice_dialog_service_unittest.cc
index 366fa01..a6dbdd5 100644
--- a/chrome/browser/search_engine_choice/search_engine_choice_dialog_service_unittest.cc
+++ b/chrome/browser/search_engine_choice/search_engine_choice_dialog_service_unittest.cc
@@ -293,6 +293,7 @@
search_engine_choice_dialog_service->NotifyChoiceMade(
TemplateURLPrepopulateData::google.id,
+ /*save_guest_mode_selection=*/false,
SearchEngineChoiceDialogService::EntryPoint::kDialog);
histogram_tester().ExpectBucketCount(
search_engines::kSearchEngineChoiceScreenEventsHistogram,
@@ -309,6 +310,7 @@
search_engine_choice_dialog_service->NotifyChoiceMade(
TemplateURLPrepopulateData::google.id,
+ /*save_guest_mode_selection=*/false,
SearchEngineChoiceDialogService::EntryPoint::kFirstRunExperience);
histogram_tester().ExpectBucketCount(
search_engines::kSearchEngineChoiceScreenEventsHistogram,
@@ -324,6 +326,7 @@
search_engine_choice_dialog_service->NotifyChoiceMade(
TemplateURLPrepopulateData::google.id,
+ /*save_guest_mode_selection=*/false,
SearchEngineChoiceDialogService::EntryPoint::kProfileCreation);
histogram_tester().ExpectBucketCount(
search_engines::kSearchEngineChoiceScreenEventsHistogram,
@@ -336,6 +339,55 @@
}
TEST_F(SearchEngineChoiceDialogServiceTest,
+ NotifyChoiceMade_Guest_SaveSelection) {
+ base::test::ScopedFeatureList feature_list{
+ switches::kSearchEngineChoiceGuestExperience};
+
+ EXPECT_FALSE(g_browser_process->local_state()->HasPrefPath(
+ prefs::kDefaultSearchProviderGuestModePrepopulatedId));
+
+ SearchEngineChoiceDialogService* search_engine_choice_dialog_service =
+ SearchEngineChoiceDialogServiceFactory::GetForProfile(profile());
+ profile()->SetGuestSession(/*guest=*/true);
+
+ const int kPrepopulatedId =
+ search_engine_choice_dialog_service->GetSearchEngines()
+ .at(0)
+ ->prepopulate_id();
+
+ search_engine_choice_dialog_service->NotifyChoiceMade(
+ kPrepopulatedId, /*save_guest_mode_selection=*/true,
+ SearchEngineChoiceDialogService::EntryPoint::kDialog);
+ EXPECT_EQ(g_browser_process->local_state()->GetInt64(
+ prefs::kDefaultSearchProviderGuestModePrepopulatedId),
+ kPrepopulatedId);
+}
+
+TEST_F(SearchEngineChoiceDialogServiceTest,
+ NotifyChoiceMade_Guest_DontSaveSelection) {
+ base::test::ScopedFeatureList feature_list{
+ switches::kSearchEngineChoiceGuestExperience};
+
+ EXPECT_FALSE(g_browser_process->local_state()->HasPrefPath(
+ prefs::kDefaultSearchProviderGuestModePrepopulatedId));
+
+ SearchEngineChoiceDialogService* search_engine_choice_dialog_service =
+ SearchEngineChoiceDialogServiceFactory::GetForProfile(profile());
+ profile()->SetGuestSession(/*guest=*/true);
+
+ const int kPrepopulatedId =
+ search_engine_choice_dialog_service->GetSearchEngines()
+ .at(0)
+ ->prepopulate_id();
+
+ search_engine_choice_dialog_service->NotifyChoiceMade(
+ kPrepopulatedId, /*save_guest_mode_selection=*/false,
+ SearchEngineChoiceDialogService::EntryPoint::kDialog);
+ EXPECT_FALSE(g_browser_process->local_state()->HasPrefPath(
+ prefs::kDefaultSearchProviderGuestModePrepopulatedId));
+}
+
+TEST_F(SearchEngineChoiceDialogServiceTest,
DoNotDisplayDialogIfPolicyIsSetDynamically) {
SearchEngineChoiceDialogService* search_engine_choice_dialog_service =
GetSearchEngineChoiceDialogService();
@@ -368,7 +420,8 @@
int prepopulate_id =
parent_profile_choice_service->GetSearchEngines().at(0)->prepopulate_id();
parent_profile_choice_service->NotifyChoiceMade(
- prepopulate_id, SearchEngineChoiceDialogService::EntryPoint::kDialog);
+ prepopulate_id, /*save_guest_mode_selection=*/false,
+ SearchEngineChoiceDialogService::EntryPoint::kDialog);
EXPECT_EQ(TemplateURLServiceFactory::GetForProfile(profile())
->GetDefaultSearchProvider()
@@ -395,7 +448,8 @@
.at(0)
->prepopulate_id();
incognito_profile_choice_service->NotifyChoiceMade(
- prepopulate_id, SearchEngineChoiceDialogService::EntryPoint::kDialog);
+ prepopulate_id, /*save_guest_mode_selection=*/false,
+ SearchEngineChoiceDialogService::EntryPoint::kDialog);
EXPECT_EQ(TemplateURLServiceFactory::GetForProfile(incognito_profile)
->GetDefaultSearchProvider()
@@ -430,7 +484,8 @@
search_engine_choice_service->GetSearchEngines().at(0)->prepopulate_id();
search_engine_choice_service->NotifyChoiceMade(
- prepopulated_id, SearchEngineChoiceDialogService::EntryPoint::kDialog);
+ prepopulated_id, /*save_guest_mode_selection=*/false,
+ SearchEngineChoiceDialogService::EntryPoint::kDialog);
EXPECT_TRUE(search_engine_choice_service->CanSuppressPrivacySandboxPromo());
}
@@ -442,7 +497,7 @@
search_engine_choice_service->GetSearchEngines().at(0)->prepopulate_id();
search_engine_choice_service->NotifyChoiceMade(
- prepopulated_id,
+ prepopulated_id, /*save_guest_mode_selection=*/false,
SearchEngineChoiceDialogService::EntryPoint::kFirstRunExperience);
EXPECT_FALSE(search_engine_choice_service->CanSuppressPrivacySandboxPromo());
}
@@ -455,7 +510,7 @@
search_engine_choice_service->GetSearchEngines().at(0)->prepopulate_id();
search_engine_choice_service->NotifyChoiceMade(
- prepopulated_id,
+ prepopulated_id, /*save_guest_mode_selection=*/false,
SearchEngineChoiceDialogService::EntryPoint::kProfileCreation);
EXPECT_FALSE(search_engine_choice_service->CanSuppressPrivacySandboxPromo());
}
diff --git a/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt_helper_browsertest.cc b/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt_helper_browsertest.cc
index d10192c0..cecdc11 100644
--- a/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt_helper_browsertest.cc
+++ b/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt_helper_browsertest.cc
@@ -603,7 +603,7 @@
SearchEngineChoiceDialogServiceFactory::GetForProfile(
browser()->profile());
search_engine_choice_dialog_service->NotifyChoiceMade(
- /*prepopulate_id=*/1,
+ /*prepopulate_id=*/1, /*save_guest_mode_selection=*/false,
SearchEngineChoiceDialogService::EntryPoint::kDialog);
// Make sure that the Privacy Sandbox prompt doesn't get displayed on the next
diff --git a/chrome/browser/ui/webui/search_engine_choice/search_engine_choice.mojom b/chrome/browser/ui/webui/search_engine_choice/search_engine_choice.mojom
index 678b9a52..8580b11 100644
--- a/chrome/browser/ui/webui/search_engine_choice/search_engine_choice.mojom
+++ b/chrome/browser/ui/webui/search_engine_choice/search_engine_choice.mojom
@@ -21,17 +21,19 @@
kAtTheBottomWithErrorMargin = 1,
kNotAtTheBottom = 2,
};
-// LINT.ThenChange(/tools/metrics/histograms/enums.xml:SearchEngineChoiceScrollState)
+
+ // LINT.ThenChange(/tools/metrics/histograms/enums.xml:SearchEngineChoiceScrollState)
// Displays the Search Engine Choice dialog.
// Triggered by the `displayDialog()` call in
// `chrome/browser/resources/search_engine_choice/app.ts`
DisplayDialog();
- // Changes the search engine based on the user's choice.
- // Triggered by the `handleSearchEngineChoiceSelected()` call in
- // `chrome/browser/resources/search_engine_choice/app.ts`
- HandleSearchEngineChoiceSelected(int32 prepopulate_id);
+ // Updates the search engine based on the user's selection.
+ // If `save_guest_mode_selection` is true, also saves the search engine
+ // preference for future guest mode sessions.
+ HandleSearchEngineChoiceSelected(
+ int32 prepopulate_id, bool save_guest_mode_selection);
// Notifies the `SearchEngineChoiceDialogService` that the learn more link was
// clicked.
diff --git a/chrome/browser/ui/webui/search_engine_choice/search_engine_choice_handler.cc b/chrome/browser/ui/webui/search_engine_choice/search_engine_choice_handler.cc
index ef8964a..2099951 100644
--- a/chrome/browser/ui/webui/search_engine_choice/search_engine_choice_handler.cc
+++ b/chrome/browser/ui/webui/search_engine_choice/search_engine_choice_handler.cc
@@ -11,7 +11,7 @@
SearchEngineChoiceHandler::SearchEngineChoiceHandler(
mojo::PendingReceiver<search_engine_choice::mojom::PageHandler> receiver,
base::OnceCallback<void()> display_dialog_callback,
- base::OnceCallback<void(int)> handle_choice_selected_callback,
+ base::OnceCallback<void(int, bool)> handle_choice_selected_callback,
base::RepeatingCallback<void()> handle_learn_more_clicked_callback,
base::OnceCallback<void()> handle_more_button_clicked_callback)
: receiver_(this, std::move(receiver)),
@@ -37,9 +37,11 @@
}
void SearchEngineChoiceHandler::HandleSearchEngineChoiceSelected(
- int prepopulate_id) {
+ int prepopulate_id,
+ bool save_guest_mode_selection) {
if (handle_choice_selected_callback_) {
- std::move(handle_choice_selected_callback_).Run(prepopulate_id);
+ std::move(handle_choice_selected_callback_)
+ .Run(prepopulate_id, save_guest_mode_selection);
}
}
diff --git a/chrome/browser/ui/webui/search_engine_choice/search_engine_choice_handler.h b/chrome/browser/ui/webui/search_engine_choice/search_engine_choice_handler.h
index 932a759..23393a5c2 100644
--- a/chrome/browser/ui/webui/search_engine_choice/search_engine_choice_handler.h
+++ b/chrome/browser/ui/webui/search_engine_choice/search_engine_choice_handler.h
@@ -16,7 +16,7 @@
explicit SearchEngineChoiceHandler(
mojo::PendingReceiver<search_engine_choice::mojom::PageHandler> receiver,
base::OnceCallback<void()> display_dialog_callback,
- base::OnceCallback<void(int)> handle_choice_selected_callback,
+ base::OnceCallback<void(int, bool)> handle_choice_selected_callback,
base::RepeatingCallback<void()> handle_learn_more_clicked_callback,
base::OnceCallback<void()> handle_more_button_clicked_callback);
@@ -28,7 +28,9 @@
// search_engine_choice::mojom::PageHandler:
void DisplayDialog() override;
- void HandleSearchEngineChoiceSelected(int32_t prepopulate_id) override;
+ void HandleSearchEngineChoiceSelected(
+ int32_t prepopulate_id,
+ bool save_guest_mode_selection) override;
void HandleLearnMoreLinkClicked() override;
void HandleMoreButtonClicked() override;
void RecordScrollState(search_engine_choice::mojom::PageHandler_ScrollState
@@ -37,7 +39,7 @@
private:
mojo::Receiver<search_engine_choice::mojom::PageHandler> receiver_;
base::OnceCallback<void()> display_dialog_callback_;
- base::OnceCallback<void(int)> handle_choice_selected_callback_;
+ base::OnceCallback<void(int, bool)> handle_choice_selected_callback_;
base::RepeatingCallback<void()> handle_learn_more_clicked_callback_;
base::OnceCallback<void()> handle_more_button_clicked_callback_;
};
diff --git a/chrome/browser/ui/webui/search_engine_choice/search_engine_choice_ui.cc b/chrome/browser/ui/webui/search_engine_choice/search_engine_choice_ui.cc
index d92938b8..c320671 100644
--- a/chrome/browser/ui/webui/search_engine_choice/search_engine_choice_ui.cc
+++ b/chrome/browser/ui/webui/search_engine_choice/search_engine_choice_ui.cc
@@ -162,7 +162,9 @@
}
}
-void SearchEngineChoiceUI::HandleSearchEngineChoiceMade(int prepopulate_id) {
+void SearchEngineChoiceUI::HandleSearchEngineChoiceMade(
+ int prepopulate_id,
+ bool save_guest_mode_selection) {
if (entry_point_ != SearchEngineChoiceDialogService::EntryPoint::kDialog) {
// If this callback is null, then this method has already been called, which
// is a bug. (Or the initialization was skipped, but that would point to
@@ -173,8 +175,8 @@
SearchEngineChoiceDialogService* search_engine_choice_dialog_service =
SearchEngineChoiceDialogServiceFactory::GetForProfile(&profile_.get());
- search_engine_choice_dialog_service->NotifyChoiceMade(prepopulate_id,
- entry_point_);
+ search_engine_choice_dialog_service->NotifyChoiceMade(
+ prepopulate_id, save_guest_mode_selection, entry_point_);
// Notify that the choice was made.
if (on_choice_made_callback_) {
diff --git a/chrome/browser/ui/webui/search_engine_choice/search_engine_choice_ui.h b/chrome/browser/ui/webui/search_engine_choice/search_engine_choice_ui.h
index c1f65729..776a314 100644
--- a/chrome/browser/ui/webui/search_engine_choice/search_engine_choice_ui.h
+++ b/chrome/browser/ui/webui/search_engine_choice/search_engine_choice_ui.h
@@ -51,7 +51,8 @@
override;
// Notifies the search engine choice service that a choice has been made.
- void HandleSearchEngineChoiceMade(int prepopulate_id);
+ void HandleSearchEngineChoiceMade(int prepopulate_id,
+ bool save_guest_mode_selection);
// Notifies the search engine choice service that the learn more link was
// clicked.