Backed out changeset 3492eea6f5f5 (bug 1656562) for browser_ext_themes_ntp_colors_perwindow.js leaks. CLOSED TREE

DONTBUILD
This commit is contained in:
Cosmin Sabou 2020-11-05 07:59:42 +02:00
parent d1d71a8e1a
commit 9cfe871d07
4 changed files with 21 additions and 22 deletions

View File

@ -14,6 +14,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
DEFAULT_SITES: "resource://activity-stream/lib/DefaultSites.jsm",
ExperimentAPI: "resource://messaging-system/experiments/ExperimentAPI.jsm",
shortURL: "resource://activity-stream/lib/ShortURL.jsm",
Services: "resource://gre/modules/Services.jsm",
TippyTopProvider: "resource://activity-stream/lib/TippyTopProvider.jsm",
});
@ -189,8 +190,8 @@ class AboutWelcomeChild extends JSWindowActorChild {
defineAs: "AWGetSelectedTheme",
});
Cu.exportFunction(this.AWGetRegion.bind(this), window, {
defineAs: "AWGetRegion",
Cu.exportFunction(this.AWWaitForRegionChange.bind(this), window, {
defineAs: "AWWaitForRegionChange",
});
Cu.exportFunction(this.AWSelectTheme.bind(this), window, {
@ -365,8 +366,21 @@ class AboutWelcomeChild extends JSWindowActorChild {
return this.wrapPromise(this.sendQuery("AWPage:WAIT_FOR_MIGRATION_CLOSE"));
}
AWGetRegion() {
return this.wrapPromise(this.sendQuery("AWPage:GET_REGION"));
AWWaitForRegionChange() {
return this.wrapPromise(
new Promise(resolve =>
Services.prefs.addObserver(SEARCH_REGION_PREF, function observer(
subject,
topic,
data
) {
if (data === SEARCH_REGION_PREF && topic === "nsPref:changed") {
Services.prefs.removeObserver(SEARCH_REGION_PREF, observer);
resolve(searchRegion);
}
})
)
);
}
/**

View File

@ -22,7 +22,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
AboutWelcomeTelemetry:
"resource://activity-stream/aboutwelcome/lib/AboutWelcomeTelemetry.jsm",
AttributionCode: "resource:///modules/AttributionCode.jsm",
Region: "resource://gre/modules/Region.jsm",
});
XPCOMUtils.defineLazyGetter(this, "log", () => {
@ -223,21 +222,7 @@ class AboutWelcomeParent extends JSWindowActorParent {
key => LIGHT_WEIGHT_THEMES[key] === activeTheme?.id
);
return themeShortName?.toLowerCase();
case "AWPage:GET_REGION":
return new Promise(resolve => {
if (Region.home !== null) {
resolve(Region.home);
}
Services.obs.addObserver(function observer(aSubject, aTopic, aData) {
if (
aData === Region.REGION_UPDATED &&
aTopic === Region.REGION_TOPIC
) {
Services.obs.removeObserver(observer, aTopic);
resolve(Region.home);
}
}, Region.REGION_TOPIC);
});
case "AWPage:WAIT_FOR_MIGRATION_CLOSE":
return new Promise(resolve =>
Services.ww.registerNotification(function observer(subject, topic) {

View File

@ -388,7 +388,7 @@ const MultiStageAboutWelcome = props => {
const [region, setRegion] = Object(react__WEBPACK_IMPORTED_MODULE_0__["useState"])(null);
Object(react__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(() => {
(async () => {
setRegion((await window.AWGetRegion()));
setRegion((await window.AWWaitForRegionChange()));
})();
}, []); // Get the active theme so the rendering code can make it selected
// by default.

View File

@ -64,7 +64,7 @@ export const MultiStageAboutWelcome = props => {
const [region, setRegion] = useState(null);
useEffect(() => {
(async () => {
setRegion(await window.AWGetRegion());
setRegion(await window.AWWaitForRegionChange());
})();
}, []);