11let el = document . querySelector ( '.chrome-tabs' ) ;
22let chromeTabs = new ChromeTabs ( ) ;
33let tabs = [ ] ;
4+ let deletedTabs = [ ] ;
45chromeTabs . init ( el ) ;
56document . getElementById ( 'add-tab' ) . addEventListener ( 'click' , function ( e ) {
67 chromeTabs . addTab ( {
@@ -20,9 +21,12 @@ el.addEventListener('activeTabChange', function ({ detail }) {
2021 let iframes = document . querySelectorAll ( '[data-iframe-id]' ) ;
2122 iframes . forEach ( ( iframe ) => {
2223 iframe . classList . add ( 'dnone' ) ;
24+ updateURLBar ( "" ) ;
2325 } )
2426 if ( iframeID ) {
2527 showIframe ( tabId ) ;
28+ updateURLBar ( iframeID . contentWindow . location . href ) ;
29+ updateTabDetail ( iframeID . contentWindow . document . title , iframeID . contentWindow . document . querySelector ( 'link[rel="favicon"]' ) ? iframeID . contentWindow . document . querySelector ( 'link[rel="favicon"]' ) . href : 'favicon.ico' , tabId ) ;
2630 }
2731} ) ;
2832function showIframe ( tabId ) {
@@ -58,7 +62,8 @@ function hideIframe(tabId) {
5862 }
5963}
6064function tabAdded ( detail ) {
61- let tabLength = tabs . length ;
65+ let tabLength = tabs . length + deletedTabs . length ;
66+ console . log ( tabLength ) ;
6267 //add a id to the tab
6368 detail . tabEl . setAttribute ( 'data-tab-id' , tabLength ) ;
6469 tabs . push ( {
@@ -71,25 +76,32 @@ function tabAdded(detail) {
7176function tabRemoved ( detail ) {
7277 let tabId = detail . tabEl . getAttribute ( 'data-tab-id' ) ;
7378 tabs = tabs . filter ( ( tab ) => tab . id != tabId ) ;
79+ let iframe = document . querySelector ( `[data-iframe-id="${ tabId } "]` ) ;
80+ if ( iframe ) {
81+ iframe . remove ( ) ;
82+ }
83+ deletedTabs . push ( tabId ) ;
7484}
7585function handoffToTABS ( url ) {
86+ //if there is a current iframe, delete it
87+ let i = chromeTabs . activeTabEl . getAttribute ( 'data-tab-id' ) ;
88+ let isCurentTabHaveIframe = document . querySelector ( `[data-iframe-id="${ i } "]` ) ;
89+ if ( isCurentTabHaveIframe ) {
90+ isCurentTabHaveIframe . remove ( ) ;
91+ }
7692 let iframe = document . createElement ( 'iframe' ) ;
7793 iframe . setAttribute ( 'src' , url ) ;
7894 iframe . setAttribute ( 'id' , 'iframe' ) ;
7995 let tabId = chromeTabs . activeTabEl . getAttribute ( 'data-tab-id' ) ;
8096 iframe . setAttribute ( 'data-iframe-id' , tabId ) ;
8197 document . body . appendChild ( iframe ) ;
82- pageLoaded ( ) ;
83- }
84- function changeTabDetail ( title , favicon ) {
85- let tabId = chromeTabs . activeTabEl
86- //get the div chrome-tab-content
87- let tabContent = tabId . querySelector ( '.chrome-tab-content' ) ;
88- let tabTitle = tabContent . querySelector ( '.chrome-tab-title' ) ;
89- let tabFavicon = tabContent . querySelector ( '.chrome-tab-favicon' ) ;
90- tabTitle . innerHTML = title ;
91- //the tab favicon is set with a background image
92- tabFavicon . style . backgroundImage = `url(${ favicon } )` ;
98+ isIframeLoaded ( )
99+ function resetOmniBox ( ) {
100+ document . getElementById ( "uv-form" ) . style . marginTop = "20px" ;
101+ document . getElementById ( "omnibox" ) . setAttribute ( "class" , "dnone" ) ;
102+ document . getElementById ( "omnibox-list" ) . innerHTML = ''
103+ }
104+ resetOmniBox ( ) ;
93105}
94106
95107function restoreTabs ( ) {
@@ -153,6 +165,20 @@ function keybinds() {
153165 // localStorage.setItem('iframes', JSON.stringify(iframeJSON));
154166 // }
155167//});
168+ function updateTabDetail ( title , favicon , tabID ) {
169+ let previousTabID = tabID || chromeTabs . activeTabEl . getAttribute ( 'data-tab-id' ) ;
170+ const tabTitle = document . querySelector ( `.chrome-tab[data-tab-id="${ previousTabID } "] .chrome-tab-title` ) ;
171+ const tabFavicon = document . querySelector ( `.chrome-tab[data-tab-id="${ previousTabID } "] .chrome-tab-favicon` ) ;
172+ if ( title == "" || title == null ) { title = "Search" ; }
173+ if ( favicon == "" || favicon == null ) { favicon = "favicon.ico" ; }
174+ if ( tabTitle && tabFavicon ) {
175+ tabTitle . innerHTML = title ;
176+ tabFavicon . style . backgroundImage = `url(${ favicon } )` ;
177+ }
178+ else {
179+ console . log ( 'tabTitle is null' ) ;
180+ }
181+ }
156182function init ( ) {
157183 chromeTabs . removeTab ( chromeTabs . activeTabEl ) ;
158184 chromeTabs . addTab ( {
0 commit comments