diff --git a/app/src/common/shared/org/mozilla/vrbrowser/browser/HistoryStore.kt b/app/src/common/shared/org/mozilla/vrbrowser/browser/HistoryStore.kt index f8b7dfe17..2e02d6c89 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/browser/HistoryStore.kt +++ b/app/src/common/shared/org/mozilla/vrbrowser/browser/HistoryStore.kt @@ -17,6 +17,8 @@ import mozilla.components.support.base.log.logger.Logger import org.mozilla.vrbrowser.VRBrowserApplication import org.mozilla.vrbrowser.utils.SystemUtils import java.util.concurrent.CompletableFuture +import java.util.stream.Collectors +import java.util.stream.Stream class HistoryStore constructor(val context: Context) { @@ -25,6 +27,14 @@ class HistoryStore constructor(val context: Context) { private var listeners = ArrayList() private var storage = (context.applicationContext as VRBrowserApplication).places.history + companion object { + @JvmStatic + val BLOCK_LIST: MutableList = Stream.of( + "https://accounts.firefox.com/authorization", + "https://accounts.firefox.com/oauth" + ).collect(Collectors.toList()) + } + // Bookmarks might have changed during sync, so notify our listeners. private val syncStatusObserver = object : SyncStatusObserver { override fun onStarted() {} @@ -93,13 +103,21 @@ class HistoryStore constructor(val context: Context) { } fun recordVisit(aURL: String, pageVisit: PageVisit) = GlobalScope.future { - storage.recordVisit(aURL, pageVisit) - notifyListeners() + if(BLOCK_LIST.stream().noneMatch { + aURL.startsWith(it) + }) { + storage.recordVisit(aURL, pageVisit) + notifyListeners() + } } fun recordObservation(aURL: String, observation: PageObservation) = GlobalScope.future { - storage.recordObservation(aURL, observation) - notifyListeners() + if(BLOCK_LIST.stream().noneMatch { + aURL.startsWith(it) + }) { + storage.recordObservation(aURL, observation) + notifyListeners() + } } fun deleteHistory(aUrl: String, timestamp: Long) = GlobalScope.future { diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/Windows.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/Windows.java index 9cc6a8619..0d01cbe9a 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/Windows.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/Windows.java @@ -15,6 +15,7 @@ import org.mozilla.vrbrowser.R; import org.mozilla.vrbrowser.VRBrowserApplication; import org.mozilla.vrbrowser.browser.Accounts; +import org.mozilla.vrbrowser.browser.HistoryStore; import org.mozilla.vrbrowser.browser.Media; import org.mozilla.vrbrowser.browser.Services; import org.mozilla.vrbrowser.browser.SettingsStore; @@ -41,7 +42,6 @@ import java.util.Collections; import java.util.List; import java.util.stream.Collectors; -import java.util.stream.Stream; import mozilla.components.concept.sync.AccountObserver; import mozilla.components.concept.sync.AuthType; @@ -72,11 +72,6 @@ public class Windows implements TrayListener, TopBarWidget.Delegate, TitleBarWid private static final int TAB_SENT_NOTIFICATION_ID = 1; private static final int BOOKMARK_ADDED_NOTIFICATION_ID = 2; - // Restore URLs blocklist - private static final List SAVE_BLOCKLIST = Stream.of( - "https://accounts.firefox.com/oauth/" - ).collect(Collectors.toList()); - class WindowState { WindowPlacement placement; int textureWidth; @@ -211,7 +206,7 @@ public void saveState() { ArrayList sessions = SessionStore.get().getSortedSessions(false); state.tabs = sessions.stream() .map(Session::getSessionState) - .filter(sessionState -> SAVE_BLOCKLIST.stream().noneMatch(uri -> + .filter(sessionState -> HistoryStore.getBLOCK_LIST().stream().noneMatch(uri -> sessionState.mUri != null && sessionState.mUri.startsWith(uri) )) .collect(Collectors.toCollection(ArrayList::new));