forked from mirrors/gecko-dev
This commit adopts the new `RemoteCommandStore` interface to queue and flush outgoing tab management commands. It works like this: * `DeviceCommandQueue` provides a generic interface for queueing and flushing device commands. Any queueable command can implement the `DeviceCommandQueue.Type` marker interface. * `RemoteTabsCommandQueue` specializes `DeviceCommandQueue` for remote tabs commands. The implementation wraps the Rust `RemoteCommandStore` interface. * `SyncedTabsCommands` connects a `RemoteTabsCommandQueue` to an `FxaAccountManager` for sending the commands. * `BackgroundServices` observes the `SyncedTabsCommands` queue, and schedules a `SyncedTabsCommandsFlushWorker` to flush the queue when a command is added. * The synced tabs `DefaultPresenter` also observes the `SyncedTabsCommands` queue, and refreshes the list of tabs when the queue is updated. The queue allows for retries if the command can't be sent, for eventual expiration of commands that haven't been sent, and for undoing a close, though the latter two aren't implemented in this commit. Differential Revision: https://phabricator.services.mozilla.com/D210887 |
||
|---|---|---|
| .. | ||
| _archive | ||
| _data | ||
| _includes | ||
| _layouts | ||
| _posts | ||
| assets | ||
| contribute | ||
| rfcs | ||
| ui | ||
| 404.html | ||
| _config.yml | ||
| blog.md | ||
| changelog.md | ||
| changelog_archive.md | ||
| CNAME | ||
| components.md | ||
| contributing.md | ||
| Gemfile | ||
| Gemfile.lock | ||
| index.md | ||