Add manifest.json and remove install.rdf.

Add _locales/en/messages.json for compatibility
Remove unused pepmessenger.js/xul
master
Chris Fuertes 4 years ago
parent e52319baa2
commit 6d214dad54

@ -0,0 +1,8 @@
{
"extensionName": {
"message": "p≡p for Thunderbird | Privacy by Default"
},
"extensionDescription": {
"message": "p≡p message encryption and authentication"
}
}

@ -52,7 +52,7 @@ let windowObserver = {
let script;
switch (win.location.href) {
case 'chrome://messenger/content/messenger.xul':
script = 'chrome://p4t/content/pepmessenger.js';
script = 'chrome://p4t/content/columnOverlay.js';
break;
case 'chrome://messenger/content/messengercompose/messengercompose.xul':

@ -1,7 +1,4 @@
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cu = Components.utils;
const Cm = Components.manager;
const {classes: Cc, interfaces: Ci, utils: Cu, manager: Cm} = Components;
Cu.import("chrome://p4t/content/modules/pEpAdapter.js");
Cu.import("chrome://p4t/content/modules/pEpOs.js");
@ -16,9 +13,8 @@ let pEpMimeEncrypt = Cu.import("chrome://p4t/content/pEpMimeEncrypt.js");
Cu.importGlobalProperties(["XMLHttpRequest"]);
let env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment);
//let logger = console.log;
let logger = () => {
};
let logger = console.log;
//let logger = () => {};
let files = new pEpFiles();
let os = new pEpOs(Cc, Ci);
@ -40,8 +36,7 @@ let detectJsonAdapter = function () {
if (pEpHomeDir === "") {
if (["win32", "WINNT", "OS2"].includes(os.platform())) {
pEpHomeDir = (env.get(ENV_APPDATA) + "\\pEp");
}
else {
} else {
pEpHomeDir = (env.get(ENV_HOME) + "/.pEp");
}
}
@ -58,8 +53,7 @@ let detectJsonAdapter = function () {
tokenFilePath = pEpHomeDir + "/pEp-json-token-" + userName;
connectionInfo = JSON.parse(files.readFileSync(tokenFilePath));
}
}
catch (ex) {
} catch (ex) {
//TODO Handle errors
console.log(ex);
}
@ -113,7 +107,7 @@ pEpController.compFieldsToMessage = (compFields) => {
return new pEpController.Message();
};
pEpController.isTrustedServer= (msgFolderUri) => {
pEpController.isTrustedServer = (msgFolderUri) => {
return msgFolderUri.indexOf("peptest.ch@peptest.ch") > 0;
};

@ -1,210 +0,0 @@
Cu.import("chrome://p4t/content/p4tb.js");
let pEpMessenger = {
init: () => {
console.log("pEpMessenger: init()");
},
destroy: () => {
console.log("pEpMessenger: destroy()");
},
getCurrentMessageURI: () => {
if (gFolderDisplay.selectedMessages.length === 1) {
return gFolderDisplay.selectedMessageUris[0];
}
return null;
},
readMailFromUri: (msgUri) => {
let msgWindow = Cc["@mozilla.org/messenger/msgwindow;1"].createInstance();
msgWindow = msgWindow.QueryInterface(Ci.nsIMsgWindow);
let msgStream = Cc["@mozilla.org/network/sync-stream-listener;1"].createInstance();
msgStream = msgStream.QueryInterface(Ci.nsIInputStream);
let messenger = Cc["@mozilla.org/messenger;1"].getService(Ci.nsIMessenger);
let msgService = messenger.messageServiceFromURI(msgUri);
let scriptInputStream = Cc["@mozilla.org/scriptableinputstream;1"].createInstance();
scriptInputStream = scriptInputStream.QueryInterface(Ci.nsIScriptableInputStream);
scriptInputStream.init(msgStream);
try {
msgService.streamMessage(msgUri, // uri of message to stream
msgStream, // a stream listener listening to the message
msgWindow, // a nsIMsgWindow for progress and status feedback
null, // a nsIUrlListener that is notified when url starts and stops
false, // it will create a stream converter from message rfc2822 to
null // Header added to the URI. e.g., header=filter
);
} catch (ex) {
console.debug("Error while reading mail from server", ex);
}
// Get only the PGP message
let keyFound = false;
let content = "";
let str = "";
const INPUTSTREAM_READING_SIZE = 512;
while (scriptInputStream.available()) {
str = scriptInputStream.read(INPUTSTREAM_READING_SIZE);
content += str;
}
return content;
},
_parseAddress: (address) => {
let hdr = Cc["@mozilla.org/messenger/headerparser;1"].createInstance(Ci.nsIMsgHeaderParser);
let mails = hdr.parseEncodedHeader(address, "utf-8");
return mails.map((mail) => {
return {
address: mail.email,
username: mail.name
};
})
},
onLoadListener: (event) => {
console.log("pepmessenger.js: onLoadListener()");
let onStartHeadersMessageListener = () => {
let messagePanelFrame = window.GetMessagePaneFrame();
console.log("pepmessenger.js: onLoadMsgPanelFrameListener(), frame: ", messagePanelFrame);
if (messagePanelFrame != null) {
console.log("pepmessenger.js: onLoadListener() added listener");
messagePanelFrame.addEventListener("load", onLoadMsgPanelFrameListener, false);
}
};
let onEndHeadersMessageListener = () => {
};
gMessageListeners.push({
onStartHeaders: onStartHeadersMessageListener,
onEndHeaders: onEndHeadersMessageListener
});
onStartHeadersMessageListener();
onEndHeadersMessageListener();
},
onLoadMsgPanelFrameListener: (event) => {
/* global currentHeaderData: false, gViewAllHeaders: false, gExpandedHeaderList: false, goDoCommand: false, HandleSelectedAttachments: false */
function updateSubject(newSubject) {
let subjectBox = document.getElementById("expandedsubjectBox");
subjectBox.headerValue = newSubject;
}
function updateBody(newBody) {
//TODO Not implemented yet
let panel = window.GetMessagePaneFrame();
let bodyElement = panel.document.getElementsByTagName("body")[0];
let node = bodyElement.firstChild;
while (node) {
if (node.nodeName === "DIV" || node.nodeName === "PRE") {
if (node.textContent.indexOf("-----BEGIN PGP")) {
node.innerHTML = newBody;
return;
}
}
node = node.nextSibling;
}
}
function updatePrivacy(privacyStatus) {
let privacyPanel = document.getElementById("pEp-msghdr-privacy-label");
switch (privacyStatus) {
case "red":
case "green":
case "yellow":
break;
default:
privacyStatus = "no-color";
break;
}
privacyPanel.value = privacyStatus;
privacyPanel.class = privacyStatus;
}
let messageString;
console.log("pepmessenger.js: onLoadMsgPanelFrameListener()", currentHeaderData);
// Clean previous privacy labels
updatePrivacy("no-color");
// read email from tb
let currentUri = this.getCurrentMessageURI();
if (currentUri !== null) {
try {
// messageString = this.readMailFromUri(currentUri);
//
// const PGP_MESSAGE_HEADER = "-----BEGIN PGP MESSAGE-----";
// const PGP_MESSAGE_FOOTER = "-----END PGP MESSAGE-----";
//
//
// let keyFound = false;
// let str = messageString;
// let message = "";
// let pgpStartIndex = str.indexOf(PGP_MESSAGE_HEADER);
// let pgpEndIndex = str.indexOf(PGP_MESSAGE_FOOTER);
// if (pgpStartIndex >= 0) {
// keyFound = true;
// str = str.substring(pgpStartIndex);
// } else if (pgpEndIndex >= 0) {
// message += str.substring(0, pgpEndIndex + PGP_MESSAGE_FOOTER.length);
// }
}
catch (e) {
console.debug("Errors while reading message from uri", e);
}
// if (messageString === "") {
// console.debug("pepmessenger.js: Nothing to decrypt");
// return;
// }
let mimeMessage = this.readMailFromUri(currentUri);
pEpController.messageFromMIME(mimeMessage).then(message => {
console.log("===============");
console.log(message);
console.log("===============");
});
let sender = this._parseAddress(currentHeaderData.from.headerValue)[0];
let to = this._parseAddress(currentHeaderData.to.headerValue);
pEpController.decryptMail(messageString, sender, to, currentHeaderData["message-id"].headerValue).then((message) => {
if (message === null) {
console.log("Message not decrypted");
return;
}
// replace encrypted mail with decrypted from pEpAdapter
updateSubject(message.shortmsg);
updateBody(message.longmsg);
pEpController.getPrivacyColorFromRating(message.rating).then(
(rating) => {
updatePrivacy(rating);
}
);
}).catch((err) => {
console.log(err)
});
}
}
};
pEpMessenger.init();

@ -1,15 +0,0 @@
<?xml version="1.0"?>
<!--
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
-->
<?xml-stylesheet href="chrome://p4t/content/pEp.css" type="text/css"?>
<overlay id="p4tMsgComposeOverlay"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/javascript" src="chrome://p4t/content/pepmessenger.js"/>
</overlay>

@ -1,29 +0,0 @@
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>{847b3a01-7ab1-11d4-8f02-006008948af5}</em:id>
<em:version>1.0.0-beta1</em:version>
<em:type>2</em:type> <!-- type = extension -->
<!-- MetaData -->
<em:name>p≡p for Thunderbird</em:name>
<em:description>p≡p message encryption and authentication</em:description>
<em:creator>Chris Fuertes</em:creator>
<em:homepageURL>https://pep.foundation/</em:homepageURL>
<!-- Target Applications this extension can install into,
with minimum and maximum supported versions. -->
<em:targetApplication>
<!-- Thunderbird -->
<Description>
<em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
<em:minVersion>60.0</em:minVersion>
<em:maxVersion>99.0</em:maxVersion>
</Description>
</em:targetApplication>
</Description>
</RDF>

@ -0,0 +1,28 @@
{
"manifest_version": 2,
"name": "p≡p for Thunderbird",
"description": "p≡p message encryption and authentication",
"version": "1.0.0-beta2",
"applications": {
"gecko": {
"id": "p4tb@pEp.security",
"strict_min_version": "60.0"
}
},
"author": "Chris Fuertes",
"homepage_url": "https://pep.security",
"icons": {
"16": "content/logo.png",
"32": "content/logo.png",
"64": "content/logo.png"
},
"default_locale": "en",
"legacy": {
"options": {
"page": "chrome://p4tb/content/options.xul"
}
}
}
Loading…
Cancel
Save