Bug 1035439 - Part 2: Show closed tabs of the current private state in RecentTabsPanel. r=margaret

This commit is contained in:
Brian Nicholson 2014-07-14 17:21:14 -07:00
parent 5dfe091a95
commit fb97fd1f5f
2 changed files with 13 additions and 8 deletions

View File

@ -34,8 +34,6 @@ import android.database.MatrixCursor.RowBuilder;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.Loader; import android.support.v4.content.Loader;
import android.support.v4.widget.CursorAdapter;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -252,9 +250,7 @@ public class RecentTabsPanel extends HomeFragment
mClosedTabs = closedTabs; mClosedTabs = closedTabs;
// Reload the cursor to show recently closed tabs. // Reload the cursor to show recently closed tabs.
if (mClosedTabs.length > 0 && canLoad()) { getLoaderManager().restartLoader(LOADER_ID_RECENT_TABS, null, mCursorLoaderCallbacks);
getLoaderManager().restartLoader(LOADER_ID_RECENT_TABS, null, mCursorLoaderCallbacks);
}
} }
}); });
} }
@ -310,8 +306,8 @@ public class RecentTabsPanel extends HomeFragment
for (int i = 0; i < length; i++) { for (int i = 0; i < length; i++) {
final String url = closedTabs[i].url; final String url = closedTabs[i].url;
// Don't show recent tabs for about:home. // Don't show recent tabs for about:home or about:privatebrowsing.
if (!AboutPages.isAboutHome(url)) { if (!AboutPages.isTitlelessAboutPage(url)) {
// If this is the first closed tab we're adding, add a header for the section. // If this is the first closed tab we're adding, add a header for the section.
if (visibleClosedTabs == 0) { if (visibleClosedTabs == 0) {
addRow(c, null, context.getString(R.string.home_closed_tabs_title), RecentTabs.TYPE_HEADER); addRow(c, null, context.getString(R.string.home_closed_tabs_title), RecentTabs.TYPE_HEADER);

View File

@ -18,6 +18,7 @@ XPCOMUtils.defineLazyServiceGetter(this, "CrashReporter",
XPCOMUtils.defineLazyModuleGetter(this, "Task", "resource://gre/modules/Task.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "Task", "resource://gre/modules/Task.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "OS", "resource://gre/modules/osfile.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "OS", "resource://gre/modules/osfile.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "sendMessageToJava", "resource://gre/modules/Messaging.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "sendMessageToJava", "resource://gre/modules/Messaging.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "PrivateBrowsingUtils", "resource://gre/modules/PrivateBrowsingUtils.jsm");
function dump(a) { function dump(a) {
Services.console.logStringMessage(a); Services.console.logStringMessage(a);
@ -373,6 +374,13 @@ SessionStore.prototype = {
this.saveStateDelayed(); this.saveStateDelayed();
this._updateCrashReportURL(aWindow); this._updateCrashReportURL(aWindow);
// If the selected tab has changed while listening for closed tab
// notifications, we may have switched between different private browsing
// modes.
if (this._notifyClosedTabs) {
this._sendClosedTabsToJava(aWindow);
}
}, },
saveStateDelayed: function ss_saveStateDelayed() { saveStateDelayed: function ss_saveStateDelayed() {
@ -923,9 +931,10 @@ SessionStore.prototype = {
throw (Components.returnCode = Cr.NS_ERROR_INVALID_ARG); throw (Components.returnCode = Cr.NS_ERROR_INVALID_ARG);
let closedTabs = this._windows[aWindow.__SSID].closedTabs; let closedTabs = this._windows[aWindow.__SSID].closedTabs;
let isPrivate = PrivateBrowsingUtils.isWindowPrivate(aWindow.BrowserApp.selectedBrowser.contentWindow);
let tabs = closedTabs let tabs = closedTabs
.filter(tab => !tab.isPrivate) .filter(tab => tab.isPrivate == isPrivate)
.map(function (tab) { .map(function (tab) {
// Get the url and title for the last entry in the session history. // Get the url and title for the last entry in the session history.
let lastEntry = tab.entries[tab.entries.length - 1]; let lastEntry = tab.entries[tab.entries.length - 1];