Skip to content
This repository has been archived by the owner on Nov 1, 2022. It is now read-only.

Work in progress: Complete browser-state migration #10212

Merged
merged 2 commits into from
Jun 7, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .buildconfig.yml
Original file line number Diff line number Diff line change
Expand Up @@ -211,10 +211,6 @@ projects:
path: components/browser/menu2
description: 'An immutable customizable menu for browsers.'
publish: true
browser-session:
path: components/browser/session
description: 'An abstract layer hiding the actual browser engine implementation.'
publish: true
browser-session-storage:
path: components/browser/session-storage
description: 'Component for saving and restoring the browser state.'
Expand Down
1 change: 0 additions & 1 deletion CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
/components/browser/menu/ @mozilla-mobile/act
/components/browser/menu2/ @jonalmeida
/components/browser/search/ @pocmo
/components/browser/session/ @pocmo @csadilek
/components/browser/state/ @pocmo @csadilek
/components/browser/storage-memory/ @grigoryk
/components/browser/storage-sync/ @grigoryk
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,10 @@ High-level components for building browser(-like) apps.

* ⚪ [**Menu 2**](components/browser/menu2/README.md) - A generic menu with customizable items primarily for browser toolbars.

* 🔵 [**Session**](components/browser/session/README.md) - A generic representation of a browser session.

* 🔵 [**Session-Storage**](components/browser/session-storage/README.md) - Component for saving and restoring the browser state.

* 🔵 [**State**](components/browser/state/README.md) - Component for maintaining the centralized state of the browser and its components.

* 🔵 [**Storage-Memory**](components/browser/storage-memory/README.md) - An in-memory implementation of browser storage.

* 🔵 [**Storage-Sync**](components/browser/storage-sync/README.md) - A syncable implementation of browser storage backed by [application-services' Places lib](https://github.com/mozilla/application-services).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -538,9 +538,7 @@ class GeckoEngineSession(
): GeckoResult<GeckoSession> {
val newEngineSession = GeckoEngineSession(runtime, privateMode, defaultSettings, openGeckoSession = false)
notifyObservers {
MainScope().launch {
onWindowRequest(GeckoWindowRequest(uri, newEngineSession))
}
onWindowRequest(GeckoWindowRequest(uri, newEngineSession))
}
return GeckoResult.fromValue(newEngineSession.geckoSession)
}
Expand Down
2 changes: 0 additions & 2 deletions components/browser/session-storage/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ dependencies {

testImplementation project(':support-test')
testImplementation project(':support-test-libstate')
testImplementation project(':browser-session')
testImplementation project(':feature-tabs')
testImplementation Dependencies.androidx_test_core
testImplementation Dependencies.androidx_test_junit
Expand All @@ -58,7 +57,6 @@ dependencies {

androidTestImplementation project(':browser-engine-gecko')
androidTestImplementation project(':support-android-test')
androidTestImplementation project(':browser-session')
androidTestImplementation project(':feature-tabs')
androidTestImplementation Dependencies.androidx_test_core
androidTestImplementation Dependencies.androidx_test_runner
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.runBlocking
import mozilla.components.browser.engine.gecko.GeckoEngine
import mozilla.components.browser.session.Session
import mozilla.components.browser.session.SessionManager
import mozilla.components.browser.session.engine.EngineMiddleware
import mozilla.components.browser.state.engine.EngineMiddleware
import mozilla.components.browser.state.selector.selectedTab
import mozilla.components.browser.state.store.BrowserStore
import mozilla.components.concept.engine.Engine
Expand Down Expand Up @@ -45,9 +43,8 @@ class FullRestoreTest {
// Set up
// -------------------------------------------------------------------------------------

val (sessionManager, store) = createSessionManagerAndStore(engine)

val tabsUseCases = TabsUseCases(store, sessionManager)
val store = createStore(engine)
val tabsUseCases = TabsUseCases(store)

// -------------------------------------------------------------------------------------
// Add a tab
Expand All @@ -74,8 +71,8 @@ class FullRestoreTest {

val storage = SessionStorage(context, engine)

val (newSessionManager, newStore) = createSessionManagerAndStore(engine)
val newUseCases = TabsUseCases(newStore, newSessionManager)
val newStore = createStore(engine)
val newUseCases = TabsUseCases(newStore)

assertNull(newStore.state.selectedTab)

Expand All @@ -94,28 +91,15 @@ class FullRestoreTest {
}
}

private fun createSessionManagerAndStore(
private fun createStore(
engine: Engine
): Pair<SessionManager, BrowserStore> {
): BrowserStore {
return runBlocking(Dispatchers.Main) {
val lookup = SessionManagerLookup()

val store = BrowserStore(middleware = EngineMiddleware.create(engine, lookup::lookup))

val sessionManager = SessionManager(engine, store)
lookup.sessionManager = sessionManager

Pair(sessionManager, store)
BrowserStore(middleware = EngineMiddleware.create(engine))
}
}
}

private class SessionManagerLookup {
var sessionManager: SessionManager? = null

fun lookup(tabId: String): Session? = sessionManager!!.findSessionById(tabId)
}

private fun waitFor(timeoutMs: Long = 10000, cadence: Long = 100, predicate: () -> Boolean) {
val start = SystemClock.elapsedRealtime()

Expand Down
120 changes: 0 additions & 120 deletions components/browser/session/README.md

This file was deleted.

60 changes: 0 additions & 60 deletions components/browser/session/build.gradle

This file was deleted.

21 changes: 0 additions & 21 deletions components/browser/session/proguard-rules.pro

This file was deleted.

5 changes: 0 additions & 5 deletions components/browser/session/src/main/AndroidManifest.xml

This file was deleted.

Loading