Skip to content
This repository has been archived by the owner on Jul 22, 2024. It is now read-only.

Clear GV history after wiping of the history #1874

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@ public void removeVideoAvailabilityListener(VideoAvailabilityListener aListener)
mVideoAvailabilityListeners.remove(aListener);
}

public void restore(SessionStack store, int currentSessionId) {
public void restore(@NonNull SessionStack store, int currentSessionId) {
mSessions.clear();

mPreviousGeckoSessionId = store.mPreviousGeckoSessionId;
Expand Down Expand Up @@ -383,21 +383,25 @@ private int createSession(@NonNull SessionSettings aSettings) {
}

private void recreateAllSessions() {
recreateAllSessions(true);
}

private void recreateAllSessions(boolean restoreState) {
Map<Integer, SessionState> sessions = (Map<Integer, SessionState>) mSessions.clone();
for (Integer sessionId : sessions.keySet()) {
recreateSession(sessionId);
recreateSession(sessionId, restoreState);
}
}

private void recreateSession(int sessionId) {
private void recreateSession(int sessionId, boolean restoreState) {
SessionState previousSessionState = mSessions.get(sessionId);

previousSessionState.mSession.stop();
previousSessionState.mSession.close();

int newSessionId = createSession(previousSessionState.mSettings);
GeckoSession session = mSessions.get(newSessionId).mSession;
if (previousSessionState.mSessionState != null)
if (restoreState && previousSessionState.mSessionState != null)
session.restoreState(previousSessionState.mSessionState);
setCurrentSession(newSessionId);
removeSession(sessionId);
Expand Down Expand Up @@ -877,6 +881,14 @@ public void clearCache(final long clearFlags) {
}
}

public void clearHistory() {
if (mRuntime != null) {
String currentUri = getCurrentUri();
recreateAllSessions(false);
getCurrentSession().loadUri(currentUri);
}
}

// NavigationDelegate

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,12 @@ public void clearCache(long clearFlags) {
}
}

public void clearHistory() {
for (Map.Entry<Integer, SessionStack> entry : mSessionStacks.entrySet()) {
entry.getValue().clearHistory();
}
}

// Permission Delegate

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ default void onBookmarksHidden(WindowWidget aWindow) {}
private WidgetPlacement mPlacementBeforeResize;
private boolean mIsResizing;
private boolean mIsFullScreen;
private boolean mAfterFirstlPaint;
private boolean mAfterFirstPaint;

public interface WindowDelegate {
void onFocusRequest(@NonNull WindowWidget aWindow);
Expand Down Expand Up @@ -524,7 +524,7 @@ public void setWindowPlacement(@NonNull Windows.WindowPlacement aPlacement) {
}
}

public @NonNull Windows.WindowPlacement getmWindowPlacementBeforeFullscreen() {
public @NonNull Windows.WindowPlacement getWindowPlacementBeforeFullscreen() {
return mWindowPlacementBeforeFullscreen;
}

Expand Down Expand Up @@ -1137,15 +1137,16 @@ public void showClearCacheDialog() {
store.deleteVisitsBetween(todayLimit, currentTime);
break;
case ClearCacheDialogWidget.YESTERDAY:
store.deleteVisitsBetween(yesterdayLimit, todayLimit);
store.deleteVisitsBetween(yesterdayLimit, currentTime);
break;
case ClearCacheDialogWidget.LAST_WEEK:
store.deleteVisitsBetween(oneWeekLimit, yesterdayLimit);
store.deleteVisitsBetween(oneWeekLimit, currentTime);
break;
case ClearCacheDialogWidget.EVERYTHING:
store.deleteEverything();
break;
}
SessionStore.get().clearHistory();
}
});
mClearCacheDialog.show(REQUEST_FOCUS);
Expand Down Expand Up @@ -1435,7 +1436,7 @@ public void onContextMenu(GeckoSession session, int screenX, int screenY, Contex

@Override
public void onFirstComposite(@NonNull GeckoSession session) {
if (!mAfterFirstlPaint) {
if (!mAfterFirstPaint) {
return;
}
if (mFirstDrawCallback != null) {
Expand All @@ -1446,13 +1447,13 @@ public void onFirstComposite(@NonNull GeckoSession session) {

@Override
public void onFirstContentfulPaint(@NonNull GeckoSession session) {
if (mAfterFirstlPaint) {
if (mAfterFirstPaint) {
return;
}
if (mFirstDrawCallback != null) {
ThreadUtils.postToUiThread(mFirstDrawCallback);
mFirstDrawCallback = null;
mAfterFirstlPaint = true;
mAfterFirstPaint = true;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public void load(WindowWidget aWindow) {
WidgetPlacement widgetPlacement;
if (aWindow.isFullScreen()) {
widgetPlacement = aWindow.getBeforeFullscreenPlacement();
placement = aWindow.getmWindowPlacementBeforeFullscreen();
placement = aWindow.getWindowPlacementBeforeFullscreen();
} else if (aWindow.isResizing()) {
widgetPlacement = aWindow.getBeforeResizePlacement();
placement = aWindow.getWindowPlacement();
Expand Down Expand Up @@ -126,7 +126,7 @@ private void saveState() {
try (Writer writer = new FileWriter(file)) {
WindowsState state = new WindowsState();
state.privateMode = mPrivateMode;
state.focusedWindowPlacement = mFocusedWindow.isFullScreen() ? mFocusedWindow.getmWindowPlacementBeforeFullscreen() : mFocusedWindow.getWindowPlacement();
state.focusedWindowPlacement = mFocusedWindow.isFullScreen() ? mFocusedWindow.getWindowPlacementBeforeFullscreen() : mFocusedWindow.getWindowPlacement();
for (WindowWidget window : mRegularWindows) {
WindowState windowState = new WindowState();
windowState.load(window);
Expand Down