Skip to content

Instantly share code, notes, and snippets.

@gbaptista
Created March 11, 2018 15:56
Show Gist options
  • Save gbaptista/983437d50e5450e75af8d2fbe6fa3112 to your computer and use it in GitHub Desktop.
Save gbaptista/983437d50e5450e75af8d2fbe6fa3112 to your computer and use it in GitHub Desktop.
Luminous contentScripts.register demo
var update_content_script_settings = function() {
// contentScripts.register not available
}
if(typeof browser !== 'undefined' && browser.contentScripts) {
var registered_content_scripts = [];
async function register_content_script(data, i) {
registered_content_scripts[i] = await browser.contentScripts.register({
runAt: 'document_start',
matches: ['<all_urls>'],
allFrames: true,
js: [{
code: "var luminous_settings = JSON.parse('" + JSON.stringify(data) + "'); intialize_luminous_injections('content_scripts_register');"
}]
});
}
update_content_script_settings = function(data) {
var pending = false;
for(i in registered_content_scripts) {
if(!registered_content_scripts[i]) {
pending = true;
} else if(registered_content_scripts[i] != 'unregistered') {
registered_content_scripts[i].unregister();
registered_content_scripts[i] = 'unregistered';
}
}
if(!pending) {
registered_content_scripts = [];
}
registered_content_scripts.push(null);
register_content_script(data, registered_content_scripts.length - 1);
}
}
var update_cached_settings = function() {
chrome.storage.sync.get(null, function(sync_data) {
if(sync_data) {
settings_defined = true;
cached_settings = sync_data;
update_content_script_settings(cached_settings['injection_disabled']);
}
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment