Chromium Code Reviews| Index: chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc |
| diff --git a/chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc b/chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc |
| index 92be5ac0857c7914241041c20d3e04922c918960..6003ec8a0ff4d03079a1e96f92b406997d357fc4 100644 |
| --- a/chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc |
| +++ b/chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc |
| @@ -3,6 +3,7 @@ |
| // found in the LICENSE file. |
| #include "base/macros.h" |
| +#include "base/run_loop.h" |
| #include "base/test/histogram_tester.h" |
| #include "chrome/browser/sessions/session_service.h" |
| #include "chrome/browser/sync/test/integration/profile_sync_service_harness.h" |
| @@ -324,7 +325,7 @@ IN_PROC_BROWSER_TEST_F(SingleClientSessionsSyncTest, TabMovedToOtherWindow) { |
| } |
| // crbug.com/689662 |
| -#if defined(OS_CHROMEOS) || defined(OS_WIN) |
| +#if defined(OS_CHROMEOS) |
| #define MAYBE_CookieJarMismatch DISABLED_CookieJarMismatch |
| #else |
| #define MAYBE_CookieJarMismatch CookieJarMismatch |
| @@ -351,25 +352,32 @@ IN_PROC_BROWSER_TEST_F(SingleClientSessionsSyncTest, MAYBE_CookieJarMismatch) { |
| ASSERT_TRUE(GetFakeServer()->GetLastCommitMessage(&message)); |
| ASSERT_TRUE(message.commit().config_params().cookie_jar_mismatch()); |
| - // It is possible that multiple sync cycles occured during the call to |
| + // It is possible that multiple sync cycles occurred during the call to |
| // OpenTab, which would cause multiple identical samples. |
| ExpectUniqueSampleGE(histogram_tester, "Sync.CookieJarMatchOnNavigation", |
| false, 1); |
| ExpectUniqueSampleGE(histogram_tester, "Sync.CookieJarEmptyOnMismatch", |
| true, 1); |
| - |
| - // Trigger a cookie jar change (user signing in to content area). |
| - gaia::ListedAccount signed_in_account; |
| - signed_in_account.id = |
| - GetClient(0)->service()->signin()->GetAuthenticatedAccountId(); |
| - std::vector<gaia::ListedAccount> accounts; |
| - std::vector<gaia::ListedAccount> signed_out_accounts; |
| - accounts.push_back(signed_in_account); |
| - GoogleServiceAuthError error(GoogleServiceAuthError::NONE); |
| - GetClient(0)->service()->OnGaiaAccountsInCookieUpdated( |
| - accounts, signed_out_accounts, error); |
| } |
| + // Trigger a cookie jar change (user signing in to content area). |
| + gaia::ListedAccount signed_in_account; |
| + signed_in_account.id = |
| + GetClient(0)->service()->signin()->GetAuthenticatedAccountId(); |
| + std::vector<gaia::ListedAccount> accounts; |
| + std::vector<gaia::ListedAccount> signed_out_accounts; |
| + accounts.push_back(signed_in_account); |
| + GoogleServiceAuthError error(GoogleServiceAuthError::NONE); |
| + |
| + // Updating the cookie jar has to travel to the sync engine. It is possible |
| + // something is already running or scheduled to run on the sync thread. We |
| + // want to block here and not create the HistogramTester below until we know |
| + // the cookie jar stats have been updated. |
| + base::RunLoop run_loop; |
| + GetClient(0)->service()->OnGaiaAccountsInCookieUpdatedWithCallback( |
| + accounts, signed_out_accounts, error, run_loop.QuitClosure()); |
| + run_loop.Run(); |
|
pavely
2017/03/20 04:32:02
Waiting for values to arrive on sync thread doesn'
|
| + |
| { |
| HistogramTester histogram_tester; |