Explorar o código

refactored progress notification code

Gildas %!s(int64=7) %!d(string=hai) anos
pai
achega
5c972b6909
Modificáronse 2 ficheiros con 12 adicións e 27 borrados
  1. 11 26
      extension/core/content/content.js
  2. 1 1
      extension/ui/bg/ui.js

+ 11 - 26
extension/core/content/content.js

@@ -25,6 +25,7 @@
 	const browser = this.browser || this.chrome;
 
 	const SELECTED_CONTENT_ATTRIBUTE_NAME = "data-single-file-selected-content";
+	const PROGRESS_LOADED_COEFFICIENT = 2;
 
 	let processing = false;
 
@@ -75,33 +76,17 @@
 		}
 		document.querySelectorAll("[" + SELECTED_CONTENT_ATTRIBUTE_NAME + "]").forEach(selectedContent => selectedContent.removeAttribute(SELECTED_CONTENT_ATTRIBUTE_NAME));
 		options.jsEnabled = true;
-		let indexLoaded = 0;
-		let indexLoading = 0;
+		let indexLoaded = 0, indexLoading = 0;
 		options.onprogress = event => {
-			if (event.type == event.RESOURCES_INITIALIZED) {
-				browser.runtime.sendMessage({
-					processStart: true,
-					index: event.details.index,
-					maxIndex: event.details.max
-				});
-			}
-			if (event.type == event.RESOURCE_LOADED) {
-				indexLoaded = event.details.index;
-				browser.runtime.sendMessage({
-					processProgress: true,
-					index: (event.details.index * 2) + indexLoading,
-					maxIndex: event.details.max * 3
-				});
-			}
-			if (event.type == event.RESOURCE_LOADING) {
-				indexLoading = event.details.index;
-				browser.runtime.sendMessage({
-					processProgress: true,
-					index: event.details.index + (indexLoaded * 2),
-					maxIndex: event.details.max * 3
-				});
-			}
-			if (event.type == event.PAGE_ENDED) {
+			if (event.type == event.RESOURCES_INITIALIZED || event.type == event.RESOURCE_LOADED || event.type == event.RESOURCE_LOADING) {
+				if (event.type == event.RESOURCE_LOADED) {
+					indexLoaded = event.details.index;
+				}
+				if (event.type == event.RESOURCE_LOADING) {
+					indexLoading = event.details.index;
+				}
+				browser.runtime.sendMessage({ processProgress: true, index: (indexLoaded * PROGRESS_LOADED_COEFFICIENT) + indexLoading, maxIndex: event.details.max * (PROGRESS_LOADED_COEFFICIENT + 1) });
+			} else if (event.type == event.PAGE_ENDED) {
 				browser.runtime.sendMessage({ processEnd: true });
 			}
 		};

+ 1 - 1
extension/ui/bg/ui.js

@@ -64,7 +64,7 @@ singlefile.ui = (() => {
 	browser.tabs.onUpdated.addListener((tabId, changeInfo, tab) => onTabActivated(tab.id, isAllowedURL(tab.url)));
 	browser.tabs.onRemoved.addListener(tabId => onTabRemoved(tabId));
 	browser.runtime.onMessage.addListener((request, sender) => {
-		if (request.processStart || request.processProgress) {
+		if (request.processProgress) {
 			onTabProgress(sender.tab.id, request.index, request.maxIndex);
 		}
 		if (request.processEnd) {