@@ -5,27 +5,27 @@ class Activity {
55 if ( this . isValidPage ( tab ) === true ) {
66 if ( tab . id && ( tab . id != 0 ) ) {
77 tabs = tabs || [ ] ;
8- var domain = extractHostname ( tab . url ) ;
8+ var url = new Url ( tab . url ) ;
99 var isDifferentUrl = false ;
10- if ( currentTab !== tab . url ) {
10+ if ( ! url . isMatch ( currentTab ) ) {
1111 isDifferentUrl = true ;
1212 }
1313
14- if ( this . isNewUrl ( domain ) && ! this . isInBlackList ( domain ) ) {
14+ if ( this . isNewUrl ( url ) && ! this . isInBlackList ( url ) ) {
1515 var favicon = tab . favIconUrl ;
1616 if ( favicon === undefined ) {
17- favicon = 'chrome://favicon/' + domain ;
17+ favicon = 'chrome://favicon/' + url . host ;
1818 }
19- var newTab = new Tab ( domain , favicon ) ;
19+ var newTab = new Tab ( url , favicon ) ;
2020 tabs . push ( newTab ) ;
2121 }
2222
23- if ( isDifferentUrl && ! this . isInBlackList ( domain ) ) {
24- this . setCurrentActiveTab ( domain ) ;
25- var tabUrl = this . getTab ( domain ) ;
23+ if ( isDifferentUrl && ! this . isInBlackList ( url ) ) {
24+ this . setCurrentActiveTab ( url ) ;
25+ var tabUrl = this . getTab ( url ) ;
2626 if ( tabUrl !== undefined )
2727 tabUrl . incCounter ( ) ;
28- this . addTimeInterval ( domain ) ;
28+ this . addTimeInterval ( url ) ;
2929 }
3030 }
3131 } else this . closeIntervalForCurrentTab ( ) ;
@@ -41,13 +41,13 @@ class Activity {
4141
4242 isInBlackList ( domain ) {
4343 if ( setting_black_list !== undefined && setting_black_list . length > 0 )
44- return setting_black_list . find ( o => isDomainEquals ( extractHostname ( o ) , extractHostname ( domain ) ) ) !== undefined ;
44+ return setting_black_list . find ( o => o . isMatch ( domain ) ) !== undefined ;
4545 else return false ;
4646 }
4747
4848 isLimitExceeded ( domain , tab ) {
4949 if ( setting_restriction_list !== undefined && setting_restriction_list . length > 0 ) {
50- var item = setting_restriction_list . find ( o => isDomainEquals ( extractHostname ( o . domain ) , extractHostname ( domain ) ) ) ;
50+ var item = setting_restriction_list . find ( o => o . url . isMatch ( domain ) ) ;
5151 if ( item !== undefined ) {
5252 var data = tab . days . find ( x => x . date == todayLocalDate ( ) ) ;
5353 if ( data !== undefined ) {
@@ -63,7 +63,7 @@ class Activity {
6363
6464 wasDeferred ( domain ) {
6565 if ( deferredRestrictionsList != undefined ) {
66- let defItem = deferredRestrictionsList . find ( x => extractHostname ( x . site ) == extractHostname ( domain ) ) ;
66+ let defItem = deferredRestrictionsList . find ( x => new Url ( x . site ) . isMatch ( domain ) ) ;
6767 if ( defItem != null ) {
6868 let time = defItem . dateOfDeferred ;
6969 if ( time + DEFERRED_TIMEOUT > new Date ( ) . getTime ( ) ) {
@@ -84,19 +84,23 @@ class Activity {
8484
8585 isNewUrl ( domain ) {
8686 if ( tabs . length > 0 )
87- return tabs . find ( o => o . url === domain ) === undefined ;
87+ return tabs . find ( o => o . url . isMatch ( domain ) ) === undefined ;
8888 else return true ;
8989 }
9090
9191 getTab ( domain ) {
9292 if ( tabs !== undefined )
93- return tabs . find ( o => o . url === domain ) ;
93+ return tabs . find ( o => o . url . isMatch ( domain ) ) ;
9494 }
9595
9696
9797 updateFavicon ( tab ) {
98- var domain = extractHostname ( tab . url ) ;
99- var currentTab = this . getTab ( domain ) ;
98+ if ( ! this . isValidPage ( tab ) ) {
99+ return ;
100+ }
101+
102+ var url = new Url ( tab . url ) ;
103+ var currentTab = this . getTab ( url ) ;
100104 if ( currentTab !== null && currentTab !== undefined ) {
101105 if ( tab . favIconUrl !== undefined && tab . favIconUrl !== currentTab . favicon ) {
102106 currentTab . favicon = tab . favIconUrl ;
@@ -112,11 +116,11 @@ class Activity {
112116
113117 clearCurrentActiveTab ( ) {
114118 this . closeIntervalForCurrentTab ( ) ;
115- currentTab = '' ;
119+ currentTab = null ;
116120 }
117121
118122 addTimeInterval ( domain ) {
119- var item = timeIntervalList . find ( o => o . domain === domain && o . day == todayLocalDate ( ) ) ;
123+ var item = timeIntervalList . find ( o => o . url . isMatch ( domain ) && o . day == todayLocalDate ( ) ) ;
120124 if ( item != undefined ) {
121125 if ( item . day == todayLocalDate ( ) )
122126 item . addInterval ( ) ;
@@ -133,17 +137,17 @@ class Activity {
133137 }
134138
135139 closeIntervalForCurrentTab ( ) {
136- if ( currentTab !== '' && timeIntervalList != undefined ) {
137- var item = timeIntervalList . find ( o => o . domain === currentTab && o . day == todayLocalDate ( ) ) ;
140+ if ( currentTab && timeIntervalList != undefined ) {
141+ var item = timeIntervalList . find ( o => o . url . isMatch ( currentTab ) && o . day == todayLocalDate ( ) ) ;
138142 if ( item != undefined )
139143 item . closeInterval ( ) ;
140144 }
141- currentTab = '' ;
145+ currentTab = null ;
142146 }
143147
144148 isNeedNotifyView ( domain , tab ) {
145149 if ( setting_notification_list !== undefined && setting_notification_list . length > 0 ) {
146- var item = setting_notification_list . find ( o => isDomainEquals ( extractHostname ( o . domain ) , extractHostname ( domain ) ) ) ;
150+ var item = setting_notification_list . find ( o => o . url . isMatch ( domain ) ) ;
147151 if ( item !== undefined ) {
148152 var today = todayLocalDate ( ) ;
149153 var data = tab . days . find ( x => x . date == today ) ;
0 commit comments