Преглед изворни кода

bug fixed:
- SingleFile won't need to wait for the page to be entirely loaded to process it
- Error state displaying was not working sometimes

Gildas lormeau пре 15 година
родитељ
комит
3b966d7ea6

+ 1 - 1
WebContent/core/manifest.json

@@ -10,7 +10,7 @@
 	"content_scripts": [ {
 		  "matches": [ "http://*/*", "https://*/*", "ftp://*/*" ],
 		  "js": [ "scripts/content/wininfo.js" ],
-		  "run_at" : "document_end",
+		  "run_at" : "document_start",
 		  "all_frames" : true
 	 } ],
 	"permissions": [ "tabs", "http://*/*", "https://*/*", "unlimitedStorage" ],

+ 3 - 3
WebContent/core/scripts/bg/background.js

@@ -87,7 +87,7 @@
 
 	function docInit(pageData, docData, maxIndex) {
 		function pageInit() {
-			pageData.timeoutPageInit = null;
+			delete pageData.timeoutPageInit;
 			pageData.processableDocs = pageData.initializedDocs;
 			pageData.initProcess();
 			processingPagesCount++;
@@ -181,12 +181,12 @@
 	}
 
 	function deletePageData(pageData) {
-		tabs[pageData.tabId][pageData.pageId] = null;
+		delete tabs[pageData.tabId][pageData.pageId];
 		tabs[pageData.tabId] = tabs[pageData.tabId].filter(function(pageData) {
 			return pageData;
 		});
 		if (!tabs[pageData.tabId].length)
-			tabs[pageData.tabId] = null;
+			delete tabs[pageData.tabId];
 	}
 
 	function onConnect(port) {

+ 10 - 7
WebContent/ui/scripts/bg/ui.js

@@ -37,19 +37,19 @@
 		function refreshTabBadge(tabId) {
 			chrome.browserAction.setBadgeText({
 				tabId : tabId,
-				text : tabsData[tabId] ? tabsData[tabId].text || badgeConfig.text : badgeConfig.text
+				text : tabsData[tabId] && tabsData[tabId].text || badgeConfig.text
 			});
 			chrome.browserAction.setBadgeBackgroundColor({
 				tabId : tabId,
-				color : tabsData[tabId] ? tabsData[tabId].bgColor || badgeConfig.bgColor : badgeConfig.bgColor
+				color : tabsData[tabId] && tabsData[tabId].bgColor || badgeConfig.bgColor
 			});
 			chrome.browserAction.setTitle({
 				tabId : tabId,
-				title : tabsData[tabId] ? tabsData[tabId].title || badgeConfig.title : badgeConfig.title
+				title : tabsData[tabId] && tabsData[tabId].title || badgeConfig.title
 			});
 			chrome.browserAction.setIcon({
 				tabId : tabId,
-				path : tabsData[tabId] ? tabsData[tabId].iconPath || badgeConfig.iconPath : badgeConfig.iconPath
+				path : tabsData[tabId] && tabsData[tabId].iconPath || badgeConfig.iconPath
 			});
 		}
 
@@ -79,7 +79,8 @@
 			text : "...",
 			bgColor : [ 2, 147, 20, 255 ],
 			title : "Initialize process...",
-			iconPath : DEFAULT_ICON_PATH
+			iconPath : DEFAULT_ICON_PATH,
+			processing : true
 		};
 		tabsData[tabId] = tabData;
 		refreshBadge(tabId);
@@ -95,6 +96,7 @@
 	};
 
 	singlefile.ui.notifyProcessError = function(tabId) {
+		delete tabsData[tabId].processing;
 		tabsData[tabId].bgColor = [ 229, 4, 12, 255 ];
 		tabsData[tabId].text = "ERR";
 		refreshBadge(tabId);
@@ -102,6 +104,7 @@
 
 	singlefile.ui.notifyProcessEnd = function(tabId, processingPagesCount) {
 		tabsData[tabId].text = "OK";
+		delete tabsData[tabId].processing;
 		badgeConfig.text = "" + (processingPagesCount || "");
 		if (!processingPagesCount) {
 			currentBarProgress = -1;
@@ -139,9 +142,9 @@
 				iconPath : DEFAULT_PASSIVE_ICON_PATH,
 				title : "SingleFile cannot process this page"
 			};
-			refreshBadge(tabId);
-		} else if (reset)
+		} else if (reset && tabsData[tabId] && !tabsData[tabId].processing)
 			delete tabsData[tabId];
+		refreshBadge(tabId);
 	};
 
 })();