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

disabled browser.downloads API use on Android

Gildas пре 7 година
родитељ
комит
46367920cc

+ 8 - 3
extension/core/bg/config.js

@@ -51,17 +51,17 @@ singlefile.config = (() => {
 	async function upgrade() {
 		if (localStorage.config) {
 			const config = JSON.parse(localStorage.config);
-			upgradeConfig(config);
+			await upgradeConfig(config);
 			delete localStorage.config;
 			pendingUpgradePromise = browser.storage.local.set(config);
 		} else {
 			const config = await browser.storage.local.get();
-			upgradeConfig(config);
+			await upgradeConfig(config);
 			pendingUpgradePromise = browser.storage.local.set(config);
 		}
 	}
 
-	function upgradeConfig(config) {
+	async function upgradeConfig(config) {
 		if (config.removeScripts === undefined) {
 			config.removeScripts = true;
 		}
@@ -114,6 +114,11 @@ singlefile.config = (() => {
 		if (config.backgroundSave === undefined) {
 			config.backgroundSave = true;
 		}
+		const platformInfo = await browser.runtime.getPlatformInfo();
+		if (platformInfo.os == "android") {
+			config.backgroundSave = false;
+			config.backgroundSaveDisabled = true;
+		}
 	}
 
 	return {

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

@@ -76,6 +76,7 @@
 		displayInfobarInput.checked = config.displayInfobar;
 		displayStatsInput.checked = config.displayStats;
 		backgroundSaveInput.checked = config.backgroundSave;
+		backgroundSaveInput.disabled = config.backgroundSaveDisabled;
 	}
 
 	async function update() {

+ 9 - 0
lib/browser-polyfill/custom-browser-polyfill.js

@@ -175,6 +175,15 @@
 						}
 					})
 				),
+				getPlatformInfo: () => new Promise((resolve, reject) =>
+					chrome.runtime.getPlatformInfo(info => {
+						if (chrome.runtime.lastError) {
+							reject(chrome.runtime.lastError);
+						} else {
+							resolve(info);
+						}
+					})
+				),
 				onInstalled: {
 					addListener: listener => chrome.runtime.onInstalled.addListener(listener)
 				},