Przeglądaj źródła

support profiles in the annotation editor (fix #756)

Gildas 4 lat temu
rodzic
commit
98240ac516

+ 1 - 17
extension/core/bg/downloads.js

@@ -112,23 +112,7 @@ async function downloadTabPage(message, tab) {
 	if (!message.truncated || message.finished) {
 		if (message.openEditor) {
 			ui.onEdit(tab.id);
-			await editor.open({ tabIndex: tab.index + 1, filename: message.filename, content: contents.join("") }, {
-				backgroundSave: message.backgroundSave,
-				saveToClipboard: message.saveToClipboard,
-				saveToGDrive: message.saveToGDrive,
-				saveWithCompanion: message.saveWithCompanion,
-				confirmFilename: message.confirmFilename,
-				incognito: tab.incognito,
-				filenameConflictAction: message.filenameConflictAction,
-				filenameReplacementCharacter: message.filenameReplacementCharacter,
-				compressHTML: message.compressHTML,
-				bookmarkId: message.bookmarkId,
-				replaceBookmarkURL: message.replaceBookmarkURL,
-				applySystemTheme: message.applySystemTheme,
-				defaultEditorMode: message.defaultEditorMode,
-				includeInfobar: message.includeInfobar,
-				warnUnsavedPage: message.warnUnsavedPage
-			});
+			await editor.open({ tabIndex: tab.index + 1, filename: message.filename, content: contents.join("") });
 		} else {
 			if (message.saveToClipboard) {
 				message.content = contents.join("");

+ 5 - 4
extension/core/bg/editor.js

@@ -40,13 +40,13 @@ export {
 	EDITOR_URL
 };
 
-async function open({ tabIndex, content, filename }, options) {
+async function open({ tabIndex, content, filename }) {
 	const createTabProperties = { active: true, url: EDITOR_PAGE_URL };
 	if (tabIndex != null) {
 		createTabProperties.index = tabIndex;
 	}
 	const tab = await tabs.create(createTabProperties);
-	tabsData.set(tab.id, { content, filename, options });
+	tabsData.set(tab.id, { content, filename });
 }
 
 function onTabRemoved(tabId) {
@@ -61,6 +61,7 @@ async function onMessage(message, sender) {
 	if (message.method.endsWith(".getTabData")) {
 		const tab = sender.tab;
 		const tabData = tabsData.get(tab.id);
+		const options = await config.getOptions(tabData.url);
 		if (tabData) {
 			const content = JSON.stringify(tabData);
 			for (let blockIndex = 0; blockIndex * MAX_CONTENT_SIZE < content.length; blockIndex++) {
@@ -73,6 +74,7 @@ async function onMessage(message, sender) {
 					message.content = content.substring(blockIndex * MAX_CONTENT_SIZE, (blockIndex + 1) * MAX_CONTENT_SIZE);
 				} else {
 					message.content = content;
+					message.options = options;
 				}
 				await tabs.sendMessage(tab.id, message);
 			}
@@ -95,10 +97,9 @@ async function onMessage(message, sender) {
 			contents = [message.content];
 		}
 		if (!message.truncated || message.finished) {
-			const options = await config.getOptions(tab && tab.url);
 			const updateTabProperties = { url: EDITOR_PAGE_URL };
 			await tabs.update(tab.id, updateTabProperties);
-			tabsData.set(tab.id, { content: contents.join(""), filename: message.filename, options });
+			tabsData.set(tab.id, { url: tab.url, content: contents.join(""), filename: message.filename });
 		}
 	}
 }

+ 9 - 0
extension/ui/bg/ui-editor.js

@@ -320,6 +320,7 @@ browser.runtime.onMessage.addListener(message => {
 		}
 		if (!message.truncated || message.finished) {
 			tabData = JSON.parse(tabDataContents.join(""));
+			tabData.options = message.options;
 			tabDataContents = [];
 			editorElement.contentWindow.postMessage(JSON.stringify({ method: "init", content: tabData.content }), "*");
 			editorElement.contentWindow.focus();
@@ -327,6 +328,9 @@ browser.runtime.onMessage.addListener(message => {
 		}
 		return Promise.resolve({});
 	}
+	if (message.method == "options.refresh") {
+		return refreshOptions(message.profileName);
+	}
 });
 
 addEventListener("load", () => {
@@ -340,6 +344,11 @@ addEventListener("beforeunload", event => {
 	}
 });
 
+async function refreshOptions(profileName) {
+	const profiles = await browser.runtime.sendMessage({ method: "config.getProfiles" });
+	tabData.options = profiles[profileName];
+}
+
 function disableEditPage() {
 	editPageButton.classList.add("edit-disabled");
 	toolbarElement.classList.remove("edit-mode");

+ 0 - 3
extension/ui/bg/ui-menus.js

@@ -80,12 +80,9 @@ const MENU_AUTOSAVE_ALL_TABS_MESSAGE = browser.i18n.getMessage("menuAutoSaveAllT
 const MENU_TOP_VISIBLE_ENTRIES = [
 	MENU_ID_EDIT_AND_SAVE_PAGE,
 	MENU_ID_SAVE_SELECTED_LINKS,
-	MENU_ID_SAVE_WITH_PROFILE,
-	MENU_ID_VIEW_PENDINGS,
 	MENU_ID_SAVE_SELECTED,
 	MENU_ID_SAVE_FRAME,
 	MENU_ID_AUTO_SAVE,
-	MENU_ID_SELECT_PROFILE,
 	MENU_ID_ASSOCIATE_WITH_PROFILE
 ];