forked from mirrors/gecko-dev
* Issue https://github.com/mozilla-mobile/android-components/issues/10197: Move EngineObserver and EngineMiddleware to browser-state and refactor SessionManager dependency away. * Issue https://github.com/mozilla-mobile/android-components/issues/3532: Migrate TabsUseCases to use BrowserStore exclusively. * Issue https://github.com/mozilla-mobile/android-components/issues/10209: Migrate SessionUseCases to use BrowserStore exclusively. * Issue https://github.com/mozilla-mobile/android-components/issues/3532, https://github.com/mozilla-mobile/android-components/issues/10209: Migrate components to use new UseCase APIs. * Issue https://github.com/mozilla-mobile/android-components/issues/10209: Migrate UndoMiddleware to use BrowserStore. * Issue https://github.com/mozilla-mobile/android-components/issues/3532: Migrate CustomTabsUseCases to use BrowserStore. * Issue https://github.com/mozilla-mobile/android-components/issues/10211: Migrate sample-browser to not depend on browser-session. * Issue https://github.com/mozilla-mobile/android-components/issues/10209: Remove browser-session dependency. * Issue https://github.com/mozilla-mobile/android-components/issues/3532: feature-tabs: Remove browser-session dependency. * Issue https://github.com/mozilla-mobile/android-components/issues/10209: Fix UndoMiddlewareTest * Issue https://github.com/mozilla-mobile/android-components/issues/10209: Refactor SessionUseCasesTest to not use SessionManager. * Issue https://github.com/mozilla-mobile/android-components/issues/10209: Fix SessionFeatureTest. * Refactor support-migration tests to not use SessionManager. * Fix tests in feature-contextmenu. * Refactor feature-recentlyclosed tests to not use SessionManager * Refactor browser-session-storage tests to not use SessionManager * Refactor feature-intent tests to not use SessionManager * Refactor feature-tabs tests to not use SessionManager pt. 1 * Refactor feature-customtabs tests to not depend on browser-session. * Make sure initial load url flags are correct * Refactor feature-tabs tests to not use SessionManager pt. 2 * Refactor browser-state tests to not depend on browser-session. * SearchUseCasesTest: Use addTab use case instead of addPrivateTab. * Samples Browser: Remove unused drawable. * Fix feature-pwa tests * Remove browser-session. * Make sure engine session is linked for window requests * Make sure engine session is linked when provided with tab * Make sure engine session is linked when provided with tab pt. 2 * Prevent engine session from being created multiple times * Prevent engine session from being created multiple times pt. 2 * Prevent engine session from being created multiple times pt. 3 * Part 4: REFACTOR ALL THE THINGS * Update tests. * Add additional test for multiple CreateEngineSessionAction dispatching. * Refactor, some docs and tests * Fix CustomTabs tests...
23 lines
1.1 KiB
Markdown
23 lines
1.1 KiB
Markdown
# [Android Components](../../../README.md) > Browser > State
|
|
|
|
The `browser-state` component is responsible for maintaining the centralized state of a [browser engine](../../concept/engine/README.md).
|
|
|
|
The immutable `BrowserState` can be accessed and observed via the `BrowserStore`. Apps and other components can dispatch `Action`s on the store in order to trigger the creation of a new `BrowserState`.
|
|
|
|
Patterns and concepts this component uses are heavily inspired by Redux. Therefore the [Redux documentation](https://redux.js.org/introduction/getting-started) is an excellent resource for learning about some of those concepts.
|
|
|
|
## Usage
|
|
|
|
### Setting up the dependency
|
|
|
|
Use Gradle to download the library from [maven.mozilla.org](https://maven.mozilla.org/) ([Setup repository](../../../README.md#maven-repository)):
|
|
|
|
```Groovy
|
|
implementation "org.mozilla.components:browser-state:{latest-version}
|
|
```
|
|
|
|
## License
|
|
|
|
This Source Code Form is subject to the terms of the Mozilla Public
|
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
file, You can obtain one at http://mozilla.org/MPL/2.0/
|