Bug 1613589 - Persist TabProgressListener::mRequestCount across process switches. r=Gijs

Differential Revision: https://phabricator.services.mozilla.com/D78838
This commit is contained in:
Matt Woodrow 2020-06-09 09:46:45 +00:00
Родитель 1928cfcda5
Коммит 71638cf5c0
3 изменённых файлов: 8 добавлений и 4 удалений

Просмотреть файл

@ -1846,6 +1846,7 @@
aBrowser.webProgress.removeProgressListener(filter); aBrowser.webProgress.removeProgressListener(filter);
filter.removeProgressListener(listener); filter.removeProgressListener(listener);
let stateFlags = listener.mStateFlags; let stateFlags = listener.mStateFlags;
let requestCount = listener.mRequestCount;
// We'll be creating a new listener, so destroy the old one. // We'll be creating a new listener, so destroy the old one.
listener.destroy(); listener.destroy();
@ -1931,6 +1932,7 @@
let expectInitialAboutBlank = !switchingInProgressLoad; let expectInitialAboutBlank = !switchingInProgressLoad;
if (expectInitialAboutBlank) { if (expectInitialAboutBlank) {
stateFlags = 0; stateFlags = 0;
requestCount = 0;
} }
// Create a new tab progress listener for the new browser we just injected, // Create a new tab progress listener for the new browser we just injected,
@ -1941,7 +1943,8 @@
aBrowser, aBrowser,
expectInitialAboutBlank, expectInitialAboutBlank,
false, false,
stateFlags stateFlags,
requestCount
); );
this._tabListeners.set(tab, listener); this._tabListeners.set(tab, listener);
filter.addProgressListener(listener, Ci.nsIWebProgress.NOTIFY_ALL); filter.addProgressListener(listener, Ci.nsIWebProgress.NOTIFY_ALL);
@ -5804,7 +5807,8 @@
aBrowser, aBrowser,
aStartsBlank, aStartsBlank,
aWasPreloadedBrowser, aWasPreloadedBrowser,
aOrigStateFlags aOrigStateFlags,
aOrigRequestCount
) { ) {
let stateFlags = aOrigStateFlags || 0; let stateFlags = aOrigStateFlags || 0;
// Initialize mStateFlags to non-zero e.g. when creating a progress // Initialize mStateFlags to non-zero e.g. when creating a progress
@ -5829,7 +5833,7 @@
this.mTotalProgress = 0; this.mTotalProgress = 0;
// count of open requests (should always be 0 or 1) // count of open requests (should always be 0 or 1)
this.mRequestCount = 0; this.mRequestCount = aOrigRequestCount || 0;
} }
destroy() { destroy() {

Просмотреть файл

@ -84,7 +84,6 @@ support-files = file_anchor_elements.html
skip-if = (verify && (os == 'win' || os == 'mac')) skip-if = (verify && (os == 'win' || os == 'mac'))
[browser_preloadedBrowser_zoom.js] [browser_preloadedBrowser_zoom.js]
[browser_progress_keyword_search_handling.js] [browser_progress_keyword_search_handling.js]
skip-if = fission #Bug 1613589
[browser_reload_deleted_file.js] [browser_reload_deleted_file.js]
skip-if = (debug && os == 'mac') || (debug && os == 'linux' && bits == 64) #Bug 1421183, disabled on Linux/OSX for leaked windows skip-if = (debug && os == 'mac') || (debug && os == 'linux' && bits == 64) #Bug 1421183, disabled on Linux/OSX for leaked windows
[browser_tabCloseSpacer.js] [browser_tabCloseSpacer.js]

Просмотреть файл

@ -13,6 +13,7 @@ add_task(async function setup() {
registerCleanupFunction(() => { registerCleanupFunction(() => {
Services.prefs.clearUserPref(kDocChanPref); Services.prefs.clearUserPref(kDocChanPref);
}); });
await Services.search.init();
}); });
/* /*