Bug 741738 - Count impressions for each doorhanger notification type, r=mak

This commit is contained in:
Theo Chevalier 2012-09-16 23:38:57 +02:00
parent d07eea05b5
commit d135fa8444

View File

@ -1593,15 +1593,38 @@
<field name="_brandBundle" readonly="true">
Services.strings.createBundle("chrome://branding/locale/brand.properties");
</field>
<property name="_viewsLeftMap">
<getter><![CDATA[
let viewsLeftMap = {};
try {
viewsLeftMap = JSON.parse(Services.prefs.getCharPref("browser.syncPromoViewsLeftMap"));
} catch (ex) {
// If the old preference exists, migrate it to the new one.
try {
let oldPref = Services.prefs.getIntPref("browser.syncPromoViewsLeft");
Services.prefs.clearUserPref("browser.syncPromoViewsLeft");
viewsLeftMap.bookmarks = oldPref;
viewsLeftMap.passwords = oldPref;
Services.prefs.setCharPref("browser.syncPromoViewsLeftMap",
JSON.stringify(viewsLeftMap));
} catch (ex2) {}
}
return viewsLeftMap;
]]></getter>
</property>
<property name="_viewsLeft">
<getter><![CDATA[
try {
return Services.prefs.getIntPref("browser.syncPromoViewsLeft");
} catch(ex) {}
return 5;
let views = 5;
if (this._viewsLeftMap[this._notificationType] !== undefined) {
views = this._viewsLeftMap[this._notificationType];
}
return views;
]]></getter>
<setter><![CDATA[
Services.prefs.setIntPref("browser.syncPromoViewsLeft", val);
let map = this._viewsLeftMap !== undefined ? this._viewsLeftMap : {};
map[this._notificationType] = val;
Services.prefs.setCharPref("browser.syncPromoViewsLeftMap",
JSON.stringify(map));
return val;
]]></setter>
</property>