summaryrefslogtreecommitdiffstats
path: root/browser/components/uitour/UITour-lib.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/uitour/UITour-lib.js')
-rw-r--r--browser/components/uitour/UITour-lib.js331
1 files changed, 0 insertions, 331 deletions
diff --git a/browser/components/uitour/UITour-lib.js b/browser/components/uitour/UITour-lib.js
deleted file mode 100644
index 7fe820185..000000000
--- a/browser/components/uitour/UITour-lib.js
+++ /dev/null
@@ -1,331 +0,0 @@
-/* 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/. */
-
-// create namespace
-if (typeof Mozilla == 'undefined') {
- var Mozilla = {};
-}
-
-(function($) {
- 'use strict';
-
- // create namespace
- if (typeof Mozilla.UITour == 'undefined') {
- Mozilla.UITour = {};
- }
-
- var themeIntervalId = null;
- function _stopCyclingThemes() {
- if (themeIntervalId) {
- clearInterval(themeIntervalId);
- themeIntervalId = null;
- }
- }
-
- function _sendEvent(action, data) {
- var event = new CustomEvent('mozUITour', {
- bubbles: true,
- detail: {
- action: action,
- data: data || {}
- }
- });
-
- document.dispatchEvent(event);
- }
-
- function _generateCallbackID() {
- return Math.random().toString(36).replace(/[^a-z]+/g, '');
- }
-
- function _waitForCallback(callback) {
- var id = _generateCallbackID();
-
- function listener(event) {
- if (typeof event.detail != 'object')
- return;
- if (event.detail.callbackID != id)
- return;
-
- document.removeEventListener('mozUITourResponse', listener);
- callback(event.detail.data);
- }
- document.addEventListener('mozUITourResponse', listener);
-
- return id;
- }
-
- var notificationListener = null;
- function _notificationListener(event) {
- if (typeof event.detail != 'object')
- return;
- if (typeof notificationListener != 'function')
- return;
-
- notificationListener(event.detail.event, event.detail.params);
- }
-
- Mozilla.UITour.DEFAULT_THEME_CYCLE_DELAY = 10 * 1000;
-
- Mozilla.UITour.CONFIGNAME_SYNC = 'sync';
- Mozilla.UITour.CONFIGNAME_AVAILABLETARGETS = 'availableTargets';
-
- Mozilla.UITour.ping = function(callback) {
- var data = {};
- if (callback) {
- data.callbackID = _waitForCallback(callback);
- }
- _sendEvent('ping', data);
- };
-
- Mozilla.UITour.observe = function(listener, callback) {
- notificationListener = listener;
-
- if (listener) {
- document.addEventListener('mozUITourNotification',
- _notificationListener);
- Mozilla.UITour.ping(callback);
- } else {
- document.removeEventListener('mozUITourNotification',
- _notificationListener);
- }
- };
-
- Mozilla.UITour.registerPageID = function(pageID) {
- _sendEvent('registerPageID', {
- pageID: pageID
- });
- };
-
- Mozilla.UITour.showHeartbeat = function(message, thankyouMessage, flowId, engagementURL,
- learnMoreLabel, learnMoreURL, options) {
- var args = {
- message: message,
- thankyouMessage: thankyouMessage,
- flowId: flowId,
- engagementURL: engagementURL,
- learnMoreLabel: learnMoreLabel,
- learnMoreURL: learnMoreURL,
- };
-
- if (options) {
- for (var option in options) {
- if (!options.hasOwnProperty(option)) {
- continue;
- }
- args[option] = options[option];
- }
- }
-
- _sendEvent('showHeartbeat', args);
- };
-
- Mozilla.UITour.showHighlight = function(target, effect) {
- _sendEvent('showHighlight', {
- target: target,
- effect: effect
- });
- };
-
- Mozilla.UITour.hideHighlight = function() {
- _sendEvent('hideHighlight');
- };
-
- Mozilla.UITour.showInfo = function(target, title, text, icon, buttons, options) {
- var buttonData = [];
- if (Array.isArray(buttons)) {
- for (var i = 0; i < buttons.length; i++) {
- buttonData.push({
- label: buttons[i].label,
- icon: buttons[i].icon,
- style: buttons[i].style,
- callbackID: _waitForCallback(buttons[i].callback)
- });
- }
- }
-
- var closeButtonCallbackID, targetCallbackID;
- if (options && options.closeButtonCallback)
- closeButtonCallbackID = _waitForCallback(options.closeButtonCallback);
- if (options && options.targetCallback)
- targetCallbackID = _waitForCallback(options.targetCallback);
-
- _sendEvent('showInfo', {
- target: target,
- title: title,
- text: text,
- icon: icon,
- buttons: buttonData,
- closeButtonCallbackID: closeButtonCallbackID,
- targetCallbackID: targetCallbackID
- });
- };
-
- Mozilla.UITour.hideInfo = function() {
- _sendEvent('hideInfo');
- };
-
- Mozilla.UITour.previewTheme = function(theme) {
- _stopCyclingThemes();
-
- _sendEvent('previewTheme', {
- theme: JSON.stringify(theme)
- });
- };
-
- Mozilla.UITour.resetTheme = function() {
- _stopCyclingThemes();
-
- _sendEvent('resetTheme');
- };
-
- Mozilla.UITour.cycleThemes = function(themes, delay, callback) {
- _stopCyclingThemes();
-
- if (!delay) {
- delay = Mozilla.UITour.DEFAULT_THEME_CYCLE_DELAY;
- }
-
- function nextTheme() {
- var theme = themes.shift();
- themes.push(theme);
-
- _sendEvent('previewTheme', {
- theme: JSON.stringify(theme),
- state: true
- });
-
- callback(theme);
- }
-
- themeIntervalId = setInterval(nextTheme, delay);
- nextTheme();
- };
-
- Mozilla.UITour.showMenu = function(name, callback) {
- var showCallbackID;
- if (callback)
- showCallbackID = _waitForCallback(callback);
-
- _sendEvent('showMenu', {
- name: name,
- showCallbackID: showCallbackID,
- });
- };
-
- Mozilla.UITour.hideMenu = function(name) {
- _sendEvent('hideMenu', {
- name: name
- });
- };
-
- Mozilla.UITour.showNewTab = function() {
- _sendEvent('showNewTab');
- };
-
- Mozilla.UITour.getConfiguration = function(configName, callback) {
- _sendEvent('getConfiguration', {
- callbackID: _waitForCallback(callback),
- configuration: configName,
- });
- };
-
- Mozilla.UITour.setConfiguration = function(configName, configValue) {
- _sendEvent('setConfiguration', {
- configuration: configName,
- value: configValue,
- });
- };
-
- /**
- * Request the browser open the Firefox Accounts page.
- *
- * @param {Object} extraURLCampaignParams - An object containing additional
- * paramaters for the URL opened by the browser for reasons of promotional
- * campaign tracking. Each attribute of the object must have a name that
- * is a string, begins with "utm_" and contains only only alphanumeric
- * characters, dashes or underscores. The values may be any string and will
- * automatically be encoded.
- */
- Mozilla.UITour.showFirefoxAccounts = function(extraURLCampaignParams) {
- _sendEvent('showFirefoxAccounts', {
- extraURLCampaignParams: JSON.stringify(extraURLCampaignParams),
- });
- };
-
- Mozilla.UITour.resetFirefox = function() {
- _sendEvent('resetFirefox');
- };
-
- Mozilla.UITour.addNavBarWidget= function(name, callback) {
- _sendEvent('addNavBarWidget', {
- name: name,
- callbackID: _waitForCallback(callback),
- });
- };
-
- Mozilla.UITour.setDefaultSearchEngine = function(identifier) {
- _sendEvent('setDefaultSearchEngine', {
- identifier: identifier,
- });
- };
-
- Mozilla.UITour.setTreatmentTag = function(name, value) {
- _sendEvent('setTreatmentTag', {
- name: name,
- value: value
- });
- };
-
- Mozilla.UITour.getTreatmentTag = function(name, callback) {
- _sendEvent('getTreatmentTag', {
- name: name,
- callbackID: _waitForCallback(callback)
- });
- };
-
- Mozilla.UITour.setSearchTerm = function(term) {
- _sendEvent('setSearchTerm', {
- term: term
- });
- };
-
- Mozilla.UITour.openSearchPanel = function(callback) {
- _sendEvent('openSearchPanel', {
- callbackID: _waitForCallback(callback)
- });
- };
-
- Mozilla.UITour.forceShowReaderIcon = function() {
- _sendEvent('forceShowReaderIcon');
- };
-
- Mozilla.UITour.toggleReaderMode = function() {
- _sendEvent('toggleReaderMode');
- };
-
- Mozilla.UITour.openPreferences = function(pane) {
- _sendEvent('openPreferences', {
- pane: pane
- });
- };
-
- /**
- * Closes the tab where this code is running. As usual, if the tab is in the
- * foreground, the tab that was displayed before is selected.
- *
- * The last tab in the current window will never be closed, in which case
- * this call will have no effect. The calling code is expected to take an
- * action after a small timeout in order to handle this case, for example by
- * displaying a goodbye message or a button to restart the tour.
- */
- Mozilla.UITour.closeTab = function() {
- _sendEvent('closeTab');
- };
-})();
-
-// Make this library Require-able.
-if (typeof module !== 'undefined' && module.exports) {
- module.exports = Mozilla.UITour;
-}