mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 559991. Zoom flicker when switching quickly between tabs. r=gavin.sharp a=blocking-betaN
This commit is contained in:
parent
1e48d1c5b6
commit
5de8c7aeb3
@ -256,10 +256,10 @@ var FullZoom = {
|
||||
var self = this;
|
||||
Services.contentPrefs.getPref(aURI, this.name, function (aResult) {
|
||||
// Check that we're still where we expect to be in case this took a while.
|
||||
let isSaneURI = (aBrowser && aBrowser.currentURI) ?
|
||||
aURI.equals(aBrowser.currentURI) : false;
|
||||
if (!aBrowser || isSaneURI)
|
||||
self._applyPrefToSetting(aResult, aBrowser);
|
||||
let browser = aBrowser || gBrowser.selectedBrowser;
|
||||
if (aURI.equals(browser.currentURI)) {
|
||||
self._applyPrefToSetting(aResult, browser);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
|
@ -138,6 +138,7 @@ _BROWSER_FILES = \
|
||||
browser_bug555224.js \
|
||||
browser_bug555767.js \
|
||||
browser_bug556061.js \
|
||||
browser_bug559991.js \
|
||||
browser_bug561623.js \
|
||||
browser_bug562649.js \
|
||||
browser_bug563588.js \
|
||||
|
64
browser/base/content/test/browser_bug559991.js
Normal file
64
browser/base/content/test/browser_bug559991.js
Normal file
@ -0,0 +1,64 @@
|
||||
function test() {
|
||||
|
||||
// ----------
|
||||
// Test setup
|
||||
|
||||
waitForExplicitFinish();
|
||||
|
||||
let oldOLC = FullZoom.onLocationChange;
|
||||
FullZoom.onLocationChange = function(aURI, aIsTabSwitch, aBrowser) {
|
||||
// Ignore calls that are not about tab switching on this test
|
||||
if (aIsTabSwitch)
|
||||
oldOLC.call(FullZoom, aURI, aIsTabSwitch, aBrowser);
|
||||
};
|
||||
|
||||
gPrefService.setBoolPref("browser.zoom.updateBackgroundTabs", true);
|
||||
gPrefService.setBoolPref("browser.zoom.siteSpecific", true);
|
||||
|
||||
let oldAPTS = FullZoom._applyPrefToSetting;
|
||||
let uri = "http://example.org/browser/browser/base/content/test/dummy_page.html";
|
||||
|
||||
// ------------------------------------------------------
|
||||
// Test 1 - Zoom should not be called if URIs don't match
|
||||
FullZoom._applyPrefToSetting = function() {
|
||||
ok(false, "This should not be called");
|
||||
};
|
||||
FullZoom.onLocationChange(makeURI(uri), true);
|
||||
|
||||
let tab = gBrowser.addTab();
|
||||
tab.linkedBrowser.addEventListener("load", function(event) {
|
||||
tab.linkedBrowser.removeEventListener("load", arguments.callee, true);
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// Test 2 - Trigger a tab switch that should now update the zoom level
|
||||
FullZoom._applyPrefToSetting = function() {
|
||||
ok(true, "applyPrefToSetting was called");
|
||||
endTest();
|
||||
}
|
||||
gBrowser.selectedTab = tab;
|
||||
|
||||
}, true);
|
||||
tab.linkedBrowser.loadURI(uri);
|
||||
|
||||
// -------------
|
||||
// Test clean-up
|
||||
function endTest() {
|
||||
gBrowser.removeTab(tab);
|
||||
FullZoom._applyPrefToSetting = oldAPTS;
|
||||
FullZoom.onLocationChange = oldOLC;
|
||||
|
||||
oldAPTS = null;
|
||||
oldOLC = null;
|
||||
tab = null;
|
||||
|
||||
if (gPrefService.prefHasUserValue("browser.zoom.updateBackgroundTabs"))
|
||||
gPrefService.clearUserPref("browser.zoom.updateBackgroundTabs");
|
||||
|
||||
if (gPrefService.prefHasUserValue("browser.zoom.siteSpecific"))
|
||||
gPrefService.clearUserPref("browser.zoom.siteSpecific");
|
||||
|
||||
finish();
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user