BookmarkManager: Fix 'new folder text field size changes on clicking it' issue.
[chromium-blink-merge.git] / chrome / browser / sync / test / integration / migration_watcher.h
blobc8ca9f8e5cb7c45ca227b8ad9f9727a9510374e0
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_SYNC_TEST_INTEGRATION_MIGRATION_WATCHER_H_
6 #define CHROME_BROWSER_SYNC_TEST_INTEGRATION_MIGRATION_WATCHER_H_
8 #include "base/macros.h"
9 #include "components/sync_driver/backend_migrator.h"
10 #include "sync/internal_api/public/base/model_type.h"
12 class ProfileSyncServiceHarness;
13 class MigrationWaiter;
15 // Helper class to observe and record migration state.
16 class MigrationWatcher : public browser_sync::MigrationObserver {
17 public:
18 explicit MigrationWatcher(ProfileSyncServiceHarness* harness);
19 ~MigrationWatcher() override;
21 // Returns true if the observed profile has a migration in progress.
22 bool HasPendingBackendMigration() const;
24 // Returns the set of types this class has observed being migrated.
25 syncer::ModelTypeSet GetMigratedTypes() const;
27 // Implementation of browser_sync::MigrationObserver.
28 void OnMigrationStateChange() override;
30 // Registers the |waiter| to receive callbacks on migration state change.
31 void set_migration_waiter(MigrationWaiter* waiter);
33 // Unregisters the current MigrationWaiter, if any.
34 void clear_migration_waiter();
36 private:
37 // The ProfileSyncServiceHarness to watch.
38 ProfileSyncServiceHarness* const harness_;
40 // The set of data types currently undergoing migration.
41 syncer::ModelTypeSet pending_types_;
43 // The set of data types for which migration is complete. Accumulated by
44 // successive calls to OnMigrationStateChanged.
45 syncer::ModelTypeSet migrated_types_;
47 // The MigrationWatier that is waiting for this migration to complete.
48 MigrationWaiter* migration_waiter_;
50 DISALLOW_COPY_AND_ASSIGN(MigrationWatcher);
53 #endif // CHROME_BROWSER_SYNC_TEST_INTEGRATION_MIGRATION_WATCHER_H_