Add: close source tab after install
This commit is contained in:
		
							parent
							
								
									c0514a6699
								
							
						
					
					
						commit
						f194155830
					
				| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
/* global dbExec, getStyles, saveStyle */
 | 
			
		||||
/* global handleCssTransitionBug */
 | 
			
		||||
/* global usercssHelper */
 | 
			
		||||
/* global usercssHelper openEditor */
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
// eslint-disable-next-line no-var
 | 
			
		||||
| 
						 | 
				
			
			@ -334,9 +334,36 @@ function onRuntimeMessage(request, sender, sendResponse) {
 | 
			
		|||
    case 'initUsercssInstallPage':
 | 
			
		||||
      usercssHelper.initInstallPage(sender.tab.id, request).then(sendResponse);
 | 
			
		||||
      return KEEP_CHANNEL_OPEN;
 | 
			
		||||
 | 
			
		||||
    case 'closeTab':
 | 
			
		||||
      closeTab(sender.tab.id, request).then(sendResponse);
 | 
			
		||||
      return KEEP_CHANNEL_OPEN;
 | 
			
		||||
 | 
			
		||||
    case 'openEditor':
 | 
			
		||||
      openEditor(request.id);
 | 
			
		||||
      return;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function closeTab(tabId, request) {
 | 
			
		||||
  return new Promise(resolve => {
 | 
			
		||||
    if (request.tabId) {
 | 
			
		||||
      tabId = request.tabId;
 | 
			
		||||
    }
 | 
			
		||||
    chrome.tabs.remove(tabId, () => {
 | 
			
		||||
      const {lastError} = chrome.runtime;
 | 
			
		||||
      if (lastError) {
 | 
			
		||||
        resolve({
 | 
			
		||||
          status: 'error',
 | 
			
		||||
          error: lastError.message || String(lastError)
 | 
			
		||||
        });
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      resolve({status: 'success'});
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function injectContent(tabId, {files}) {
 | 
			
		||||
  return Promise.all(files.map(inject))
 | 
			
		||||
    .then(() => ({status: 'success'}))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,4 @@
 | 
			
		|||
/* global LZString */
 | 
			
		||||
/* global openEditor */
 | 
			
		||||
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -457,10 +456,6 @@ function saveStyle(style) {
 | 
			
		|||
        style, codeIsUpdated, reason,
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
    if (style.usercssData && !existed && reason === 'update') {
 | 
			
		||||
      // open the editor for usercss with the first install?
 | 
			
		||||
      openEditor(style.id);
 | 
			
		||||
    }
 | 
			
		||||
    return style;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -99,6 +99,14 @@ function initUsercssInstall() {
 | 
			
		|||
        case 'liveReloadStop':
 | 
			
		||||
          watcher.stop();
 | 
			
		||||
          break;
 | 
			
		||||
 | 
			
		||||
        case 'closeTab':
 | 
			
		||||
          if (history.length > 1) {
 | 
			
		||||
            history.back();
 | 
			
		||||
          } else {
 | 
			
		||||
            runtimeSend({method: 'closeTab'});
 | 
			
		||||
          }
 | 
			
		||||
          break;
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -184,6 +184,12 @@
 | 
			
		|||
 | 
			
		||||
        updateMeta(result);
 | 
			
		||||
 | 
			
		||||
        runtimeSend({method: 'openEditor', id: result.id});
 | 
			
		||||
 | 
			
		||||
        if (!liveReload) {
 | 
			
		||||
          port.postMessage({method: 'closeTab'});
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        window.dispatchEvent(new CustomEvent('installed'));
 | 
			
		||||
      })
 | 
			
		||||
      .catch(err => {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user