browser.runtime.onMessage.addListener( function( request, sender, sendResponse ) { console.log( "background runtime Listener", request ); switch ( request.type ) { case msg.MESSAGE_ACTION.shortcuts: getCurTab( { url: request.value.url }, tabs => { browser.tabs.sendMessage( tabs[0].id, msg.Add( msg.MESSAGE_ACTION.shortcuts )); }); break; case msg.MESSAGE_ACTION.browser_action: getCurTab( { url: request.value.url }, tabs => { if ( tabs && tabs.length > 0 && tabs[0].url == request.value.url ) { setMenuAndIcon( tabs[0].id, request.value.code ); } else console.error( request ); }); break; case msg.MESSAGE_ACTION.new_tab: browser.tabs.create({ url: request.value.url }); break; case msg.MESSAGE_ACTION.menu: const { id, value } = request.value; // hack code refresh options menu changed, and not saved storage storage.option.menu[id] = value; value === true ? menu.Create( id ) : menu.Remove( id ); break; case msg.MESSAGE_ACTION.updated: watch.Push( request.value.type, request.value.value ); break; case msg.MESSAGE_ACTION.save_verify: sendResponse( watch.Lock( request.value.url )); break; case msg.MESSAGE_ACTION.auth: browser.tabs.create({ url: browser.extension.getURL( "options/options.html#labs?auth=" + request.value.name.toLowerCase() ) }); break; case msg.MESSAGE_ACTION.auth_success: getCurTab( { url: request.value.url }, tabs => { if ( tabs && tabs.length > 0 ) { chrome.tabs.remove( tabs[0].id ); getCurTab( { "active": true }, tabs => { tabs.forEach( tab => browser.tabs.sendMessage( tab.id, msg.Add( msg.MESSAGE_ACTION.export, {type: request.value.name.toLowerCase()} )) ); }); } }); break; } });
/** * Get newsites handler * @param {object} count: update site cou */ function getNewsitesHandler( result ) { watch.Push( "site", true ); }