1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- // Copyright 2015 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef COMPONENTS_SYNC_SESSIONS_LOCAL_SESSION_EVENT_ROUTER_H_
- #define COMPONENTS_SYNC_SESSIONS_LOCAL_SESSION_EVENT_ROUTER_H_
- #include "url/gurl.h"
- namespace sync_sessions {
- class SyncedTabDelegate;
- // An interface defining the ways in which local open tab events can interact
- // with session sync. All local tab events flow to sync via this interface.
- // In that way it is analogous to sync changes flowing to the local model
- // via ProcessSyncChanges, just with a more granular breakdown.
- class LocalSessionEventHandler {
- public:
- LocalSessionEventHandler(const LocalSessionEventHandler&) = delete;
- LocalSessionEventHandler& operator=(const LocalSessionEventHandler&) = delete;
- virtual ~LocalSessionEventHandler() {}
- // Called when asynchronous session restore has completed. On Android, this
- // can be called multiple times (e.g. transition from a CCT without tabbed
- // window to actually starting a tabbed activity).
- virtual void OnSessionRestoreComplete() = 0;
- // A local navigation event took place that affects the synced session
- // for this instance of Chrome.
- virtual void OnLocalTabModified(SyncedTabDelegate* modified_tab) = 0;
- protected:
- LocalSessionEventHandler() {}
- };
- // The LocalSessionEventRouter is responsible for hooking itself up to various
- // notification sources in the browser process and forwarding relevant
- // events to a handler as defined in the LocalSessionEventHandler contract.
- class LocalSessionEventRouter {
- public:
- LocalSessionEventRouter(const LocalSessionEventRouter&) = delete;
- LocalSessionEventRouter& operator=(const LocalSessionEventRouter&) = delete;
- virtual ~LocalSessionEventRouter() {}
- virtual void StartRoutingTo(LocalSessionEventHandler* handler) = 0;
- virtual void Stop() = 0;
- protected:
- LocalSessionEventRouter() {}
- };
- } // namespace sync_sessions
- #endif // COMPONENTS_SYNC_SESSIONS_LOCAL_SESSION_EVENT_ROUTER_H_
|