browser.tabs.onUpdated.addListener( function( tabId, changeInfo, tab ) { watch.Pull( tabId ); if ( changeInfo.status == "complete" ) { console.log( "background tabs Listener:update", tabId, changeInfo, tab ); if ( tab.url.startsWith( "http://ksria.com/simpread/auth.html" )) { const url = tab.url.replace( "http://ksria.com/simpread/auth.html?id=", "" ), id = url.includes( "#" ) || url.includes( "&" ) ? url.substr( 0, url.search( /\S(#|&)/ ) + 1 ) : url ; browser.tabs.query( {}, tabs => { const opts = tabs.find( tab => tab.url.includes( browser.extension.getURL( "options/options.html" ) )); if ( opts ) { browser.tabs.sendMessage( opts.id, msg.Add( msg.MESSAGE_ACTION.redirect_uri, { uri: tab.url, id } )); chrome.tabs.remove( tabId ); } }); } if ( !tab.url.startsWith( "chrome://" ) ) { browser.tabs.sendMessage( tabId, msg.Add( msg.MESSAGE_ACTION.tab_selected, { is_update: true } )); } else { setMenuAndIcon( tab.id, -1 ); } } });
browser.tabs.onRemoved.addListener( tabId => watch.Pull( tabId ));