@@ -5,33 +5,33 @@ const TST_ID = "treestyletab@piro.sakura.ne.jp";
55const DEFAULT_SETTINGS = {
66 saturation : 60 ,
77 lightness : 70 ,
8- css : '' ,
8+ colors : 15 ,
99 active : {
1010 saturation : 60 ,
1111 lightness : 60 ,
12- css : 'font-weight: bold;' ,
12+ bold : true ,
1313 } ,
1414 hover : {
1515 saturation : 60 ,
1616 lightness : 65 ,
17- css : '' ,
1817 } ,
1918} ;
2019
2120var ColoredTabs = {
2221 init ( ) {
23- ColoredTabs . state . inited = true ;
2422 browser . storage . sync . get ( DEFAULT_SETTINGS ) . then ( function ( settings ) {
23+ // console.log('init settings');
2524 ColoredTabs . settings = settings ;
26- ColoredTabs . state . hashUsed = [ ] ;
2725 ColoredTabs . colorizeAllTabs ( ) ;
2826 browser . tabs . onUpdated . addListener ( ColoredTabs . checkTabChanges ) ;
2927 browser . tabs . onCreated . addListener ( ColoredTabs . handleCreated ) ;
28+ ColoredTabs . state . inited = true ;
29+ // console.log('init settings fin');
3030 } ) ;
3131 } ,
3232
3333 handleCreated ( tab ) {
34- console . log ( "tab url " + tab . url ) ;
34+ // console.log("tab url " + tab.url);
3535 if ( tab . url . indexOf ( 'about:' ) === 0 )
3636 return ;
3737 let host = new URL ( tab . url ) ;
@@ -40,89 +40,61 @@ var ColoredTabs = {
4040 } ,
4141
4242 checkTabChanges ( tabId , changeInfo , tab ) {
43- if ( typeof changeInfo . url === 'undefined' ) {
44- return ;
45- }
43+ if ( typeof changeInfo . url === 'undefined' || tab . url . indexOf ( 'about:' ) === 0 )
44+ return ;
4645 let host = new URL ( tab . url ) ;
4746 host = host . hostname . toString ( ) ;
4847 ColoredTabs . colorizeTab ( tabId , host ) ;
4948 } ,
5049
5150 colorizeAllTabs ( ) {
52- ColoredTabs . state . css = '' ;
53- if ( ColoredTabs . settings . active . css !== '' ) {
54- ColoredTabs . state . css = ColoredTabs . state . css + `
55- .tab.active {
56- ` + ColoredTabs . settings . active . css + `
57- }
58- ` ;
51+ // console.log('colorizeAllTabs() start');
52+ let css = '' ;
53+ if ( ColoredTabs . settings . active . bold == true ) {
54+ css += '.tab.active .label{font-weight:bold}' ;
5955 }
60- if ( ColoredTabs . settings . hover . css !== '' ) {
61- ColoredTabs . state . css = ColoredTabs . state . css + `
62- .tab:hover {
63- ` + ColoredTabs . settings . hover . css + `
64- }
65- `;
56+ for ( let i = 0 ; i < 360 ; i += ( 360 / ColoredTabs . settings . colors ) ) {
57+ let hue = Math . round ( i ) ;
58+ css += `
59+ .tab.coloredTabsHue` + hue + ` {background-color: hsl(` + hue + `,` + ColoredTabs . settings . saturation + `%,` + ColoredTabs . settings . lightness + `%);}
60+ .tab.coloredTabsHue` + hue + `.active {background-color: hsl(` + hue + `,` + ColoredTabs . settings . active . saturation + `%,` + ColoredTabs . settings . active . lightness + `%); }
61+ .tab.coloredTabsHue` + hue + `:hover {background-color: hsl(` + hue + `,` + ColoredTabs . settings . hover . saturation + `%,` + ColoredTabs . settings . hover . lightness + `%);} `;
6662 }
63+ // console.log(css);
64+
6765 browser . runtime . sendMessage ( TST_ID , {
6866 type : "register-self" ,
69- style : ColoredTabs . state . css ,
67+ style : css ,
7068 } ) ;
7169
7270 browser . tabs . query ( { } ) . then ( function ( tabs ) {
7371 for ( let tab of tabs ) {
7472 let host = new URL ( tab . url ) ;
7573 host = host . hostname . toString ( ) ;
76- console . log ( 'colorize tab id ' + tab . id + ' host ' + host ) ;
74+ // console.log('colorize tab id ' + tab.id + ' host ' + host);
7775 ColoredTabs . colorizeTab ( tab . id , host ) ;
7876 }
7977 } , onError ) ;
80- console . log ( 'colorizeAllTabs() fin' ) ;
8178 } ,
8279
83- colorizeTab ( tabId , host , oldHost = null ) {
84- console . log ( "colorizeTab tabId " + tabId + ", host " + host ) ;
85- let hash = ColoredTabs . hash ( host ) % 360 ;
80+ colorizeTab ( tabId , host ) {
81+ let hue = Math . round ( ( ColoredTabs . hash ( host ) % ColoredTabs . settings . colors ) * ( 360 / ColoredTabs . settings . colors ) ) ;
82+ // console.log("colorizeTab tabId " + tabId + ", host " + host + " hash " + ColoredTabs.hash(host) + " step " + (ColoredTabs.hash(host) % ColoredTabs.settings.colors) + " hue " + hue) ;
8683
87- if ( typeof ColoredTabs . state . tabHash [ tabId ] !== 'undefined' ) {
84+ if ( typeof ColoredTabs . state . tabHue [ tabId ] !== 'undefined' ) {
8885 browser . runtime . sendMessage ( TST_ID , {
8986 type : 'remove-tab-state' ,
9087 tabs : [ tabId ] ,
91- state : 'coloredTabs' + ColoredTabs . state . tabHash [ tabId ] ,
92- } ) ;
93- }
94-
95- if ( typeof ColoredTabs . state . hashUsed [ hash ] === 'undefined' ) {
96-
97- ColoredTabs . state . hashUsed [ hash ] = true ;
98- let hashColor = 'hsl(' + hash + ',' + ColoredTabs . settings . saturation + '%,' + ColoredTabs . settings . lightness + '%)' ;
99- let hashColorHover = 'hsl(' + hash + ',' + ColoredTabs . settings . hover . saturation + '%,' + ColoredTabs . settings . hover . lightness + '%)' ;
100- let hashColorActive = 'hsl(' + hash + ',' + ColoredTabs . settings . active . saturation + '%,' + ColoredTabs . settings . active . lightness + '%)' ;
101-
102- ColoredTabs . state . css = ColoredTabs . state . css + `
103- .tab.coloredTabs` + hash + ` {
104- background-color: ` + hashColor + `;
105- }
106- .tab.coloredTabs` + hash + `:hover {
107- background-color: ` + hashColorHover + `;
108- }
109- .tab.coloredTabs` + hash + `.active {
110- background-color: ` + hashColorActive + `;
111- }
112- ` ;
113-
114- browser . runtime . sendMessage ( TST_ID , {
115- type : "register-self" ,
116- style : ColoredTabs . state . css ,
88+ state : 'coloredTabsHue' + ColoredTabs . state . tabHue [ tabId ] ,
11789 } ) ;
11890 }
11991
12092 browser . runtime . sendMessage ( TST_ID , {
12193 type : 'add-tab-state' ,
12294 tabs : [ tabId ] ,
123- state : 'coloredTabs ' + hash ,
95+ state : 'coloredTabsHue ' + hue ,
12496 } ) ;
125- ColoredTabs . state . tabHash [ tabId ] = hash ;
97+ ColoredTabs . state . tabHue [ tabId ] = hue ;
12698 } ,
12799
128100 hash ( s ) {
@@ -132,8 +104,7 @@ var ColoredTabs = {
132104 } ,
133105
134106 state : {
135- 'hashUsed' : { } ,
136- 'tabHash' : { } ,
107+ 'tabHue' : { } ,
137108 'inited' : false ,
138109 } ,
139110}
@@ -169,10 +140,10 @@ async function handleTSTMessage(message, sender) {
169140 registerToTST ( ) ;
170141 case "sidebar-show" :
171142 if ( ColoredTabs . state . inited != true ) {
172- console . log ( 'TST ready, initializing ColoredTabs' ) ;
143+ // console.log('TST ready, initializing ColoredTabs');
173144 ColoredTabs . init ( ) ;
174145 } else {
175- console . log ( 'ColoredTabs already inited' ) ;
146+ // console.log('ColoredTabs already inited');
176147 ColoredTabs . colorizeAllTabs ( ) ;
177148 }
178149 break ;
0 commit comments