55 lines
2.1 KiB
JavaScript
55 lines
2.1 KiB
JavaScript
/**
|
|
* Provides infrastructure for automated onboarding components tests.
|
|
*/
|
|
|
|
"use strict";
|
|
|
|
/* global Cc, Ci, Cu */
|
|
ChromeUtils.import("resource://gre/modules/Preferences.jsm");
|
|
ChromeUtils.import("resource://gre/modules/Services.jsm");
|
|
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
|
|
|
XPCOMUtils.defineLazyServiceGetter(this, "resProto",
|
|
"@mozilla.org/network/protocol;1?name=resource",
|
|
"nsISubstitutingProtocolHandler");
|
|
|
|
// Load our bootstrap extension manifest so we can access our chrome/resource URIs.
|
|
// Cargo culted from formautofill system add-on
|
|
const EXTENSION_ID = "onboarding@mozilla.org";
|
|
let extensionDir = Services.dirsvc.get("GreD", Ci.nsIFile);
|
|
extensionDir.append("browser");
|
|
extensionDir.append("features");
|
|
extensionDir.append(EXTENSION_ID);
|
|
let resourceURI;
|
|
// If the unpacked extension doesn't exist, use the packed version.
|
|
if (!extensionDir.exists()) {
|
|
extensionDir.leafName += ".xpi";
|
|
|
|
resourceURI = "jar:" + Services.io.newFileURI(extensionDir).spec + "!/chrome/content/";
|
|
} else {
|
|
resourceURI = Services.io.newFileURI(extensionDir).spec + "/chrome/content/";
|
|
}
|
|
Components.manager.addBootstrappedManifestLocation(extensionDir);
|
|
|
|
resProto.setSubstitution("onboarding", Services.io.newURI(resourceURI));
|
|
|
|
const TOURSET_VERSION = 1;
|
|
const NEXT_TOURSET_VERSION = 2;
|
|
const PREF_TOUR_TYPE = "browser.onboarding.tour-type";
|
|
const PREF_TOURSET_VERSION = "browser.onboarding.tourset-version";
|
|
const PREF_SEEN_TOURSET_VERSION = "browser.onboarding.seen-tourset-version";
|
|
|
|
function resetOnboardingDefaultState() {
|
|
// All the prefs should be reset to what prefs should looks like in a new user profile
|
|
Services.prefs.setIntPref(PREF_TOURSET_VERSION, TOURSET_VERSION);
|
|
Services.prefs.clearUserPref(PREF_SEEN_TOURSET_VERSION);
|
|
Services.prefs.clearUserPref(PREF_TOUR_TYPE);
|
|
}
|
|
|
|
function resetOldProfileDefaultState() {
|
|
// All the prefs should be reset to what prefs should looks like in a older new user profile
|
|
Services.prefs.setIntPref(PREF_TOURSET_VERSION, TOURSET_VERSION);
|
|
Services.prefs.setIntPref(PREF_SEEN_TOURSET_VERSION, 0);
|
|
Services.prefs.clearUserPref(PREF_TOUR_TYPE);
|
|
}
|