move 'tempUsercssCode' cleanup to usercss helper
This commit is contained in:
		
							parent
							
								
									5d54ce3464
								
							
						
					
					
						commit
						405400de68
					
				| 
						 | 
					@ -195,18 +195,12 @@ function dbExecChromeStorage(method, data) {
 | 
				
			||||||
    case 'getAll':
 | 
					    case 'getAll':
 | 
				
			||||||
      return chromeLocal.get(null).then(storage => {
 | 
					      return chromeLocal.get(null).then(storage => {
 | 
				
			||||||
        const styles = [];
 | 
					        const styles = [];
 | 
				
			||||||
        const leftovers = [];
 | 
					 | 
				
			||||||
        for (const key in storage) {
 | 
					        for (const key in storage) {
 | 
				
			||||||
          if (key.startsWith(STYLE_KEY_PREFIX) &&
 | 
					          if (key.startsWith(STYLE_KEY_PREFIX) &&
 | 
				
			||||||
              Number(key.substr(STYLE_KEY_PREFIX.length))) {
 | 
					              Number(key.substr(STYLE_KEY_PREFIX.length))) {
 | 
				
			||||||
            styles.push(storage[key]);
 | 
					            styles.push(storage[key]);
 | 
				
			||||||
          } else if (key.startsWith('tempUsercssCode')) {
 | 
					 | 
				
			||||||
            leftovers.push(key);
 | 
					 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (leftovers.length) {
 | 
					 | 
				
			||||||
          chromeLocal.remove(leftovers);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return {target: {result: styles}};
 | 
					        return {target: {result: styles}};
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,33 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// eslint-disable-next-line no-var
 | 
					// eslint-disable-next-line no-var
 | 
				
			||||||
var usercssHelper = (() => {
 | 
					var usercssHelper = (() => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const TEMP_CODE_PREFIX = 'tempUsercssCode';
 | 
				
			||||||
 | 
					  const TEMP_CODE_CLEANUP_DELAY = 60e3;
 | 
				
			||||||
 | 
					  let tempCodeLastWriteDate = 0;
 | 
				
			||||||
 | 
					  if (FIREFOX) {
 | 
				
			||||||
 | 
					    // the temp code is created on direct installation of usercss URLs in FF
 | 
				
			||||||
 | 
					    // and can be left behind in case the install page didn't open in time before
 | 
				
			||||||
 | 
					    // the extension was updated/reloaded/disabled or the browser was closed
 | 
				
			||||||
 | 
					    setTimeout(function poll() {
 | 
				
			||||||
 | 
					      if (Date.now() - tempCodeLastWriteDate < TEMP_CODE_CLEANUP_DELAY) {
 | 
				
			||||||
 | 
					        setTimeout(poll, TEMP_CODE_CLEANUP_DELAY);
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      chrome.storage.local.get(null, storage => {
 | 
				
			||||||
 | 
					        const leftovers = [];
 | 
				
			||||||
 | 
					        for (const key in storage) {
 | 
				
			||||||
 | 
					          if (key.startsWith(TEMP_CODE_PREFIX)) {
 | 
				
			||||||
 | 
					            leftovers.push(key);
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (leftovers.length) {
 | 
				
			||||||
 | 
					          chrome.storage.local.remove(leftovers);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    }, TEMP_CODE_CLEANUP_DELAY);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  function buildMeta(style) {
 | 
					  function buildMeta(style) {
 | 
				
			||||||
    if (style.usercssData) {
 | 
					    if (style.usercssData) {
 | 
				
			||||||
      return Promise.resolve(style);
 | 
					      return Promise.resolve(style);
 | 
				
			||||||
| 
						 | 
					@ -93,13 +120,14 @@ var usercssHelper = (() => {
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  function prefetchCodeForInstallation(tabId, url) {
 | 
					  function prefetchCodeForInstallation(tabId, url) {
 | 
				
			||||||
    const key = 'tempUsercssCode' + tabId;
 | 
					    const key = TEMP_CODE_PREFIX + tabId;
 | 
				
			||||||
 | 
					    tempCodeLastWriteDate = Date.now();
 | 
				
			||||||
    Promise.all([
 | 
					    Promise.all([
 | 
				
			||||||
      download(url),
 | 
					      download(url),
 | 
				
			||||||
      chromeLocal.setValue(key, {loading: true}),
 | 
					      chromeLocal.setValue(key, {loading: true}),
 | 
				
			||||||
    ]).then(([code]) => {
 | 
					    ]).then(([code]) => {
 | 
				
			||||||
      chromeLocal.setValue(key, code);
 | 
					      chromeLocal.setValue(key, code);
 | 
				
			||||||
      setTimeout(() => chromeLocal.remove(key), 60e3);
 | 
					      setTimeout(() => chromeLocal.remove(key), TEMP_CODE_CLEANUP_DELAY);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user