mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-12 22:28:59 +02:00
Differential Revision: https://phabricator.services.mozilla.com/D9045 --HG-- rename : browser/components/newtab/locales/ach/strings.properties => browser/components/newtab/locales-src/ach/strings.properties rename : browser/components/newtab/locales/an/strings.properties => browser/components/newtab/locales-src/an/strings.properties rename : browser/components/newtab/locales/ar/strings.properties => browser/components/newtab/locales-src/ar/strings.properties rename : browser/components/newtab/locales/ast/strings.properties => browser/components/newtab/locales-src/ast/strings.properties rename : browser/components/newtab/locales/az/strings.properties => browser/components/newtab/locales-src/az/strings.properties rename : browser/components/newtab/locales/be/strings.properties => browser/components/newtab/locales-src/be/strings.properties rename : browser/components/newtab/locales/bg/strings.properties => browser/components/newtab/locales-src/bg/strings.properties rename : browser/components/newtab/locales/bn-BD/strings.properties => browser/components/newtab/locales-src/bn-BD/strings.properties rename : browser/components/newtab/locales/bn-IN/strings.properties => browser/components/newtab/locales-src/bn-IN/strings.properties rename : browser/components/newtab/locales/br/strings.properties => browser/components/newtab/locales-src/br/strings.properties rename : browser/components/newtab/locales/bs/strings.properties => browser/components/newtab/locales-src/bs/strings.properties rename : browser/components/newtab/locales/ca/strings.properties => browser/components/newtab/locales-src/ca/strings.properties rename : browser/components/newtab/locales/cak/strings.properties => browser/components/newtab/locales-src/cak/strings.properties rename : browser/components/newtab/locales/crh/strings.properties => browser/components/newtab/locales-src/crh/strings.properties rename : browser/components/newtab/locales/cs/strings.properties => browser/components/newtab/locales-src/cs/strings.properties rename : browser/components/newtab/locales/cy/strings.properties => browser/components/newtab/locales-src/cy/strings.properties rename : browser/components/newtab/locales/da/strings.properties => browser/components/newtab/locales-src/da/strings.properties rename : browser/components/newtab/locales/de/strings.properties => browser/components/newtab/locales-src/de/strings.properties rename : browser/components/newtab/locales/dsb/strings.properties => browser/components/newtab/locales-src/dsb/strings.properties rename : browser/components/newtab/locales/el/strings.properties => browser/components/newtab/locales-src/el/strings.properties rename : browser/components/newtab/locales/en-CA/strings.properties => browser/components/newtab/locales-src/en-CA/strings.properties rename : browser/components/newtab/locales/en-GB/strings.properties => browser/components/newtab/locales-src/en-GB/strings.properties rename : browser/components/newtab/locales/en-US/strings.properties => browser/components/newtab/locales-src/en-US/strings.properties rename : browser/components/newtab/locales/eo/strings.properties => browser/components/newtab/locales-src/eo/strings.properties rename : browser/components/newtab/locales/es-AR/strings.properties => browser/components/newtab/locales-src/es-AR/strings.properties rename : browser/components/newtab/locales/es-CL/strings.properties => browser/components/newtab/locales-src/es-CL/strings.properties rename : browser/components/newtab/locales/es-ES/strings.properties => browser/components/newtab/locales-src/es-ES/strings.properties rename : browser/components/newtab/locales/es-MX/strings.properties => browser/components/newtab/locales-src/es-MX/strings.properties rename : browser/components/newtab/locales/et/strings.properties => browser/components/newtab/locales-src/et/strings.properties rename : browser/components/newtab/locales/eu/strings.properties => browser/components/newtab/locales-src/eu/strings.properties rename : browser/components/newtab/locales/fa/strings.properties => browser/components/newtab/locales-src/fa/strings.properties rename : browser/components/newtab/locales/ff/strings.properties => browser/components/newtab/locales-src/ff/strings.properties rename : browser/components/newtab/locales/fi/strings.properties => browser/components/newtab/locales-src/fi/strings.properties rename : browser/components/newtab/locales/fr/strings.properties => browser/components/newtab/locales-src/fr/strings.properties rename : browser/components/newtab/locales/fy-NL/strings.properties => browser/components/newtab/locales-src/fy-NL/strings.properties rename : browser/components/newtab/locales/ga-IE/strings.properties => browser/components/newtab/locales-src/ga-IE/strings.properties rename : browser/components/newtab/locales/gd/strings.properties => browser/components/newtab/locales-src/gd/strings.properties rename : browser/components/newtab/locales/gl/strings.properties => browser/components/newtab/locales-src/gl/strings.properties rename : browser/components/newtab/locales/gn/strings.properties => browser/components/newtab/locales-src/gn/strings.properties rename : browser/components/newtab/locales/gu-IN/strings.properties => browser/components/newtab/locales-src/gu-IN/strings.properties rename : browser/components/newtab/locales/he/strings.properties => browser/components/newtab/locales-src/he/strings.properties rename : browser/components/newtab/locales/hi-IN/strings.properties => browser/components/newtab/locales-src/hi-IN/strings.properties rename : browser/components/newtab/locales/hr/strings.properties => browser/components/newtab/locales-src/hr/strings.properties rename : browser/components/newtab/locales/hsb/strings.properties => browser/components/newtab/locales-src/hsb/strings.properties rename : browser/components/newtab/locales/hu/strings.properties => browser/components/newtab/locales-src/hu/strings.properties rename : browser/components/newtab/locales/hy-AM/strings.properties => browser/components/newtab/locales-src/hy-AM/strings.properties rename : browser/components/newtab/locales/ia/strings.properties => browser/components/newtab/locales-src/ia/strings.properties rename : browser/components/newtab/locales/id/strings.properties => browser/components/newtab/locales-src/id/strings.properties rename : browser/components/newtab/locales/is/strings.properties => browser/components/newtab/locales-src/is/strings.properties rename : browser/components/newtab/locales/it/strings.properties => browser/components/newtab/locales-src/it/strings.properties rename : browser/components/newtab/locales/ja-JP-mac/strings.properties => browser/components/newtab/locales-src/ja-JP-mac/strings.properties rename : browser/components/newtab/locales/ja/strings.properties => browser/components/newtab/locales-src/ja/strings.properties rename : browser/components/newtab/locales/ka/strings.properties => browser/components/newtab/locales-src/ka/strings.properties rename : browser/components/newtab/locales/kab/strings.properties => browser/components/newtab/locales-src/kab/strings.properties rename : browser/components/newtab/locales/kk/strings.properties => browser/components/newtab/locales-src/kk/strings.properties rename : browser/components/newtab/locales/km/strings.properties => browser/components/newtab/locales-src/km/strings.properties rename : browser/components/newtab/locales/kn/strings.properties => browser/components/newtab/locales-src/kn/strings.properties rename : browser/components/newtab/locales/ko/strings.properties => browser/components/newtab/locales-src/ko/strings.properties rename : browser/components/newtab/locales/lij/strings.properties => browser/components/newtab/locales-src/lij/strings.properties rename : browser/components/newtab/locales/lo/strings.properties => browser/components/newtab/locales-src/lo/strings.properties rename : browser/components/newtab/locales/lt/strings.properties => browser/components/newtab/locales-src/lt/strings.properties rename : browser/components/newtab/locales/ltg/strings.properties => browser/components/newtab/locales-src/ltg/strings.properties rename : browser/components/newtab/locales/lv/strings.properties => browser/components/newtab/locales-src/lv/strings.properties rename : browser/components/newtab/locales/mai/strings.properties => browser/components/newtab/locales-src/mai/strings.properties rename : browser/components/newtab/locales/mk/strings.properties => browser/components/newtab/locales-src/mk/strings.properties rename : browser/components/newtab/locales/ml/strings.properties => browser/components/newtab/locales-src/ml/strings.properties rename : browser/components/newtab/locales/mr/strings.properties => browser/components/newtab/locales-src/mr/strings.properties rename : browser/components/newtab/locales/ms/strings.properties => browser/components/newtab/locales-src/ms/strings.properties rename : browser/components/newtab/locales/my/strings.properties => browser/components/newtab/locales-src/my/strings.properties rename : browser/components/newtab/locales/nb-NO/strings.properties => browser/components/newtab/locales-src/nb-NO/strings.properties rename : browser/components/newtab/locales/ne-NP/strings.properties => browser/components/newtab/locales-src/ne-NP/strings.properties rename : browser/components/newtab/locales/nl/strings.properties => browser/components/newtab/locales-src/nl/strings.properties rename : browser/components/newtab/locales/nn-NO/strings.properties => browser/components/newtab/locales-src/nn-NO/strings.properties rename : browser/components/newtab/locales/oc/strings.properties => browser/components/newtab/locales-src/oc/strings.properties rename : browser/components/newtab/locales/pa-IN/strings.properties => browser/components/newtab/locales-src/pa-IN/strings.properties rename : browser/components/newtab/locales/pl/strings.properties => browser/components/newtab/locales-src/pl/strings.properties rename : browser/components/newtab/locales/pt-BR/strings.properties => browser/components/newtab/locales-src/pt-BR/strings.properties rename : browser/components/newtab/locales/pt-PT/strings.properties => browser/components/newtab/locales-src/pt-PT/strings.properties rename : browser/components/newtab/locales/rm/strings.properties => browser/components/newtab/locales-src/rm/strings.properties rename : browser/components/newtab/locales/ro/strings.properties => browser/components/newtab/locales-src/ro/strings.properties rename : browser/components/newtab/locales/ru/strings.properties => browser/components/newtab/locales-src/ru/strings.properties rename : browser/components/newtab/locales/si/strings.properties => browser/components/newtab/locales-src/si/strings.properties rename : browser/components/newtab/locales/sk/strings.properties => browser/components/newtab/locales-src/sk/strings.properties rename : browser/components/newtab/locales/sl/strings.properties => browser/components/newtab/locales-src/sl/strings.properties rename : browser/components/newtab/locales/sq/strings.properties => browser/components/newtab/locales-src/sq/strings.properties rename : browser/components/newtab/locales/sr/strings.properties => browser/components/newtab/locales-src/sr/strings.properties rename : browser/components/newtab/locales/sv-SE/strings.properties => browser/components/newtab/locales-src/sv-SE/strings.properties rename : browser/components/newtab/locales/ta/strings.properties => browser/components/newtab/locales-src/ta/strings.properties rename : browser/components/newtab/locales/te/strings.properties => browser/components/newtab/locales-src/te/strings.properties rename : browser/components/newtab/locales/th/strings.properties => browser/components/newtab/locales-src/th/strings.properties rename : browser/components/newtab/locales/tl/strings.properties => browser/components/newtab/locales-src/tl/strings.properties rename : browser/components/newtab/locales/tr/strings.properties => browser/components/newtab/locales-src/tr/strings.properties rename : browser/components/newtab/locales/uk/strings.properties => browser/components/newtab/locales-src/uk/strings.properties rename : browser/components/newtab/locales/ur/strings.properties => browser/components/newtab/locales-src/ur/strings.properties rename : browser/components/newtab/locales/uz/strings.properties => browser/components/newtab/locales-src/uz/strings.properties rename : browser/components/newtab/locales/vi/strings.properties => browser/components/newtab/locales-src/vi/strings.properties rename : browser/components/newtab/locales/zh-CN/strings.properties => browser/components/newtab/locales-src/zh-CN/strings.properties rename : browser/components/newtab/locales/zh-TW/strings.properties => browser/components/newtab/locales-src/zh-TW/strings.properties extra : moz-landing-system : lando
114 lines
3.6 KiB
JavaScript
114 lines
3.6 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
"use strict";
|
|
|
|
const {actionCreators: ac, actionTypes: at} = ChromeUtils.import("resource://activity-stream/common/Actions.jsm", {});
|
|
|
|
const MIGRATION_ENDED_EVENT = "Migration:Ended";
|
|
const MS_PER_DAY = 86400000;
|
|
|
|
ChromeUtils.import("resource://gre/modules/Services.jsm");
|
|
|
|
ChromeUtils.defineModuleGetter(this, "MigrationUtils", "resource:///modules/MigrationUtils.jsm");
|
|
ChromeUtils.defineModuleGetter(this, "ProfileAge", "resource://gre/modules/ProfileAge.jsm");
|
|
|
|
this.ManualMigration = class ManualMigration {
|
|
constructor() {
|
|
Services.obs.addObserver(this, MIGRATION_ENDED_EVENT);
|
|
}
|
|
|
|
get migrationLastShownDate() {
|
|
return this.store.getState().Prefs.values.migrationLastShownDate;
|
|
}
|
|
|
|
set migrationLastShownDate(newDate) {
|
|
this.store.dispatch(ac.SetPref("migrationLastShownDate", newDate));
|
|
}
|
|
|
|
get migrationRemainingDays() {
|
|
return this.store.getState().Prefs.values.migrationRemainingDays;
|
|
}
|
|
|
|
set migrationRemainingDays(newDate) {
|
|
this.store.dispatch(ac.SetPref("migrationRemainingDays", newDate));
|
|
}
|
|
|
|
uninit() {
|
|
Services.obs.removeObserver(this, MIGRATION_ENDED_EVENT);
|
|
}
|
|
|
|
async isMigrationMessageExpired() {
|
|
let profileAge = await ProfileAge();
|
|
let profileCreationDate = await profileAge.created;
|
|
let daysSinceProfileCreation = (Date.now() - profileCreationDate) / MS_PER_DAY;
|
|
|
|
// We don't want to show the migration message to profiles older than 3 days.
|
|
if (daysSinceProfileCreation > 3) {
|
|
return true;
|
|
}
|
|
|
|
let migrationLastShownDate = new Date(this.migrationLastShownDate * 1000);
|
|
let today = new Date();
|
|
// Round down to midnight.
|
|
today = new Date(today.getFullYear(), today.getMonth(), today.getDate());
|
|
if (migrationLastShownDate < today) {
|
|
let migrationRemainingDays = this.migrationRemainingDays - 1;
|
|
|
|
this.migrationRemainingDays = migrationRemainingDays;
|
|
|
|
// .valueOf returns a value that is too large to store so we need to divide by 1000.
|
|
this.migrationLastShownDate = today.valueOf() / 1000;
|
|
|
|
if (migrationRemainingDays <= 0) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* While alreadyExpired is false the migration message is displayed and we also
|
|
* keep checking if we should expire it. Broadcast expiration to store.
|
|
*
|
|
* @param {bool} alreadyExpired Pref flag that is false for the first 3 active days,
|
|
* time in which we display the migration message to the user.
|
|
*/
|
|
async expireIfNecessary(alreadyExpired) {
|
|
if (!alreadyExpired && await this.isMigrationMessageExpired()) {
|
|
this.expireMigration();
|
|
}
|
|
}
|
|
|
|
expireMigration() {
|
|
this.store.dispatch(ac.SetPref("migrationExpired", true));
|
|
}
|
|
|
|
/**
|
|
* Event listener for migration wizard completion event.
|
|
*/
|
|
observe() {
|
|
this.expireMigration();
|
|
this.store.dispatch({type: at.MIGRATION_COMPLETED});
|
|
}
|
|
|
|
async onAction(action) {
|
|
switch (action.type) {
|
|
case at.PREFS_INITIAL_VALUES:
|
|
await this.expireIfNecessary(action.data.migrationExpired);
|
|
break;
|
|
case at.MIGRATION_START:
|
|
MigrationUtils.showMigrationWizard(action._target.browser.ownerGlobal, [MigrationUtils.MIGRATION_ENTRYPOINT_NEWTAB]);
|
|
break;
|
|
case at.MIGRATION_CANCEL:
|
|
this.expireMigration();
|
|
break;
|
|
case at.UNINIT:
|
|
this.uninit();
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
|
|
const EXPORTED_SYMBOLS = ["ManualMigration"];
|