Newer
Older
/**
* Application settings content script.
*
* @module content-scripts/settings
*/
'use strict';
* Fires once the content script worker is initialized.
*
* @param {Object} initialState The initial state of the settings module.
self.port.once('worker:initialized', function (initialState) {
/**
* Fires once a preference has been fetched.
*
* @param {Object} preference The externally fetched preference.
* @listens main/preference:fetched
*/
self.port.on('preference:fetched', function () {
// TODO Re-render the user interface.
});
/**
* Applies a given localization to marked document elements.
* https://bugzilla.mozilla.org/show_bug.cgi?id=787351
*
* @param {Object} l10n A localization object.
function applyL10n (l10n) {
var l10nKeys = Object.keys(l10n);
l10nKeys.forEach(function (l10nKey) {
var elements = document.querySelectorAll('[data-l10n-id="' + l10nKey + '"]');
for (let element of elements) {
element.textContent = l10n[l10nKey];
}
});
}
/**
* Fetch preference event emitter.
*
* @event preference:fetch
* @property {String} preferenceKey The key of the requested preference.
*/
function fetchPreference (preferenceKey) {
self.port.emit('preference:fetch', preferenceKey);
}
/**
* Preference changed event emitter.
*
* @event preference:changed
* @property {Object} preference The updated preference.
function preferenceChanged (preference) {
self.port.emit('preference:changed', preference);
}