From ec4daf2268cc6f69a703b522b202f1fc1b624b76 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 1 Feb 2024 00:53:14 +0000 Subject: [PATCH] Initial commit --- background.js | 44 +++++++++++ content.js | 203 ++++++++++++++++++++++++++++++++++++++++++++++++++ icon128.png | Bin 0 -> 8040 bytes icon16.png | Bin 0 -> 873 bytes icon32.png | Bin 0 -> 1957 bytes icon48.png | Bin 0 -> 3078 bytes icon64.png | Bin 0 -> 4169 bytes manifest.json | 35 +++++++++ 8 files changed, 282 insertions(+) create mode 100644 background.js create mode 100644 content.js create mode 100644 icon128.png create mode 100644 icon16.png create mode 100644 icon32.png create mode 100644 icon48.png create mode 100644 icon64.png create mode 100644 manifest.json diff --git a/background.js b/background.js new file mode 100644 index 0000000..73ccbf7 --- /dev/null +++ b/background.js @@ -0,0 +1,44 @@ +chrome.runtime.onInstalled.addListener(function() { + chrome.contextMenus.create({ "id": "copy_form", "title": "Copy Form", "contexts": ["editable"] }); + chrome.contextMenus.create({ "id": "paste_form", "title": "Paste Form", "contexts": ["editable"], enabled: false }); +}); + +chrome.contextMenus.onClicked.addListener(function(msg, tab) { + switch (msg.menuItemId) { + case "copy_form": + copyFormContextMenu(tab); + break; + case "paste_form": + pastFormContextMenu(tab); + break; + default: break; + } +}); + + + + +function copyFormContextMenu(tab) { + chrome.tabs.sendMessage(tab.id, { action: "copy" }, function(response) { + if (response) { + chrome.storage.local.set({ 'clipboard': JSON.stringify(response) },function() { + chrome.contextMenus.update("paste_form", { enabled: true }); + }); + } else { + // Reload required + } + }); +} + +function pastFormContextMenu(tab) { + chrome.storage.local.get('clipboard', function(response) { + try { + let msgData = JSON.parse(response.clipboard); + msgData.action = "paste"; + + chrome.tabs.sendMessage(tab.id, msgData); + } catch (err) { + // Do nothing + } + }); +} \ No newline at end of file diff --git a/content.js b/content.js new file mode 100644 index 0000000..55662a7 --- /dev/null +++ b/content.js @@ -0,0 +1,203 @@ +chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { + + const parentForm = getParentFormNode(document.activeElement); + if (parentForm == null) { + console.log("Form not found"); + return; + } + + switch (request.action) { + case "copy": + const result = buildFormValueSet(parentForm, "input", "select", "textarea"); + + console.log(result); + + sendResponse(result); + + break; + case "paste": + delete request.pasteForm; + + // console.log(request); + + for (let key in request) { + if (String.isNullOrWhitespace(key)) { + continue; + } + + const dataType = checkDataType(request[key]); + if (dataType == "object") { + continue; + } + + const foundElements = parentForm.querySelectorAll("[name='" + key + "']"); + if (foundElements.length <= 0) { + continue; + } + + if (dataType == "array") { + setFormElementValues(foundElements, request[key]); + } else { + for (let x=0; x 0) { + return foundForms[0]; + } + } + + while (true) { + if (String.isNullOrUndefined(result)) { + result = null; + break; + } + + if (result.nodeName.toLocaleLowerCase() == "form") { + break; + } + + result = result.parentNode; + } + + return result; +} + +/** + * Push form element value to array. + */ +function buildFormValueSet(form, ...tagNames){ + let result = { }; + + for (let x=0; xS5_WieDhMdbR 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 literal 0 HcmV?d00001 diff --git a/icon48.png b/icon48.png new file mode 100644 index 0000000000000000000000000000000000000000..eaa130f9aa8d1daef86949272ba66a727073b4e1 GIT binary patch literal 3078 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 T@VwU-00000NkvXXu0mjfvYhh1 literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..06bc7e4 --- /dev/null +++ b/manifest.json @@ -0,0 +1,35 @@ +{ + "manifest_version": 3, + "name": "Form Copypasta", + "description": "Copy and paste form element values. Not for distribution. Internal use only. Based on Copy Form (0.0.1.2) by Sam Larison.", + "version": "0.1.0.028", + "content_scripts": [ + { + "js": [ + "content.js" + ], + "run_at": "document_idle", + "all_frames": true, + "matches": [ + "" + ] + } + ], + "background": { + "service_worker": "background.js", + "type": "module" + }, + "icons": { + "16": "icon16.png", + "32": "icon32.png", + "48": "icon48.png", + "64": "icon64.png", + "128": "icon128.png" + }, + "permissions": [ + "activeTab", + "contextMenus", + "storage", + "tabs" + ] +} \ No newline at end of file