@@ -14,6 +14,7 @@ function doJank(time = 200) {
1414
1515let interval ;
1616let isActive = false ;
17+ let currentSettings = null ; // Store current interval settings
1718
1819// Long task tracking data
1920let longTasksData = {
@@ -45,6 +46,58 @@ function initPerformanceObserver() {
4546// Call this when page loads
4647initPerformanceObserver ( ) ;
4748
49+ // Restore interval state on page load
50+ function restoreIntervalState ( ) {
51+ chrome . storage . local . get ( [ 'jankSettings' ] , ( result ) => {
52+ if ( result . jankSettings && result . jankSettings . isActive ) {
53+ const settings = result . jankSettings ;
54+ startJankInterval ( settings . time , settings . interval ) ;
55+ }
56+ } ) ;
57+ }
58+
59+ // Start the jank interval
60+ function startJankInterval ( time , intervalTime ) {
61+ doJank ( time ) ;
62+ clearInterval ( interval ) ;
63+ isActive = true ;
64+ currentSettings = { time, interval : intervalTime } ;
65+
66+ interval = setInterval ( function ( ) {
67+ doJank ( time ) ;
68+ } , intervalTime ) ;
69+
70+ // Save settings to storage
71+ chrome . storage . local . set ( {
72+ jankSettings : {
73+ isActive : true ,
74+ time : time ,
75+ interval : intervalTime ,
76+ } ,
77+ } ) ;
78+
79+ sendStatusToPopup ( ) ;
80+ }
81+
82+ // Stop the jank interval
83+ function stopJankInterval ( ) {
84+ clearInterval ( interval ) ;
85+ isActive = false ;
86+ currentSettings = null ;
87+
88+ // Clear settings from storage
89+ chrome . storage . local . set ( {
90+ jankSettings : {
91+ isActive : false ,
92+ } ,
93+ } ) ;
94+
95+ sendStatusToPopup ( ) ;
96+ }
97+
98+ // Restore state when content script loads
99+ restoreIntervalState ( ) ;
100+
48101// Group long tasks by duration range
49102function analyzeLongTaskDistribution ( ) {
50103 const distribution = {
@@ -119,18 +172,9 @@ addEventListener('message', (event) => {
119172 const data = event . data ;
120173
121174 if ( data && data . action === 'doJank' ) {
122- clearInterval ( interval ) ;
123- isActive = true ;
124-
125- interval = setInterval ( function ( ) {
126- doJank ( data . time ) ;
127- } , data . interval ) ;
128-
129- sendStatusToPopup ( ) ;
175+ startJankInterval ( data . time , data . interval ) ;
130176 } else if ( data && data . action === 'stopJank' ) {
131- clearInterval ( interval ) ;
132- isActive = false ;
133- sendStatusToPopup ( ) ;
177+ stopJankInterval ( ) ;
134178 } else if ( data && data . action === 'getStatus' ) {
135179 sendStatusToPopup ( ) ;
136180 } else if ( data && data . action === 'getLongTaskData' ) {
0 commit comments