Commit 218f546c authored by Roman Sorokin's avatar Roman Sorokin Committed by Commit Bot

[Suggested files] Guard search_controller_ usage by weak pointer

Fixed: 1067461
Change-Id: I5b9709f24bde696fb43be85d7a82b166132d0e64
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2134232Reviewed-by: default avatarJia Meng <jiameng@chromium.org>
Reviewed-by: default avatarTony Yeoman <tby@chromium.org>
Commit-Queue: Roman Sorokin [CET] <rsorokin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#756585}
parent f8dff148
...@@ -166,14 +166,7 @@ IN_PROC_BROWSER_TEST_F(UserAddingScreenTest, PRE_AddingSeveralUsers) { ...@@ -166,14 +166,7 @@ IN_PROC_BROWSER_TEST_F(UserAddingScreenTest, PRE_AddingSeveralUsers) {
StartupUtils::MarkOobeCompleted(); StartupUtils::MarkOobeCompleted();
} }
// TODO(crbug.com/1067461): Flakes on ASAN and linux-chromeos-dbg IN_PROC_BROWSER_TEST_F(UserAddingScreenTest, AddingSeveralUsers) {
#if defined(OS_CHROMEOS) && (defined(ADDRESS_SANITIZER) || \
defined(MEMORY_SANITIZER) || !defined(NDEBUG))
#define MAYBE_AddingSeveralUsers DISABLED_AddingSeveralUsers
#else
#define MAYBE_AddingSeveralUsers AddingSeveralUsers
#endif
IN_PROC_BROWSER_TEST_F(UserAddingScreenTest, MAYBE_AddingSeveralUsers) {
EXPECT_EQ(session_manager::SessionState::LOGIN_PRIMARY, EXPECT_EQ(session_manager::SessionState::LOGIN_PRIMARY,
session_manager::SessionManager::Get()->session_state()); session_manager::SessionManager::Get()->session_state());
......
...@@ -111,16 +111,23 @@ DriveQuickAccessProvider::DriveQuickAccessProvider( ...@@ -111,16 +111,23 @@ DriveQuickAccessProvider::DriveQuickAccessProvider(
drive_service_->AddObserver(this); drive_service_->AddObserver(this);
} }
DriveQuickAccessProvider::~DriveQuickAccessProvider() = default; DriveQuickAccessProvider::~DriveQuickAccessProvider() {
if (drive_service_)
drive_service_->RemoveObserver(this);
}
void DriveQuickAccessProvider::OnFileSystemMounted() { void DriveQuickAccessProvider::OnFileSystemMounted() {
// Warm up the result cache by fetching results from the Drive QuickAccess API // Warm up the result cache by fetching results from the Drive QuickAccess API
// as soon as DriveFS is mounted. This ensures the first use of the launcher // as soon as DriveFS is mounted. This ensures the first use of the launcher
// displays Drive results. This is called on login, and when resuming from // displays Drive results. This is called on login, and when resuming from
// sleep. // sleep.
GetQuickAccessItems(base::BindOnce(&SearchController::Start, GetQuickAccessItems(
base::Unretained(search_controller_), base::BindOnce(&DriveQuickAccessProvider::StartSearchController,
base::string16())); weak_factory_.GetWeakPtr()));
}
void DriveQuickAccessProvider::StartSearchController() {
search_controller_->Start(base::string16());
} }
void DriveQuickAccessProvider::Start(const base::string16& query) { void DriveQuickAccessProvider::Start(const base::string16& query) {
......
...@@ -47,6 +47,8 @@ class DriveQuickAccessProvider : public SearchProvider, ...@@ -47,6 +47,8 @@ class DriveQuickAccessProvider : public SearchProvider,
base::OnceCallback<void()> on_done, base::OnceCallback<void()> on_done,
const std::vector<drive::QuickAccessItem>& drive_results); const std::vector<drive::QuickAccessItem>& drive_results);
void StartSearchController();
Profile* const profile_; Profile* const profile_;
drive::DriveIntegrationService* const drive_service_; drive::DriveIntegrationService* const drive_service_;
SearchController* const search_controller_; SearchController* const search_controller_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment