Add manifest.json and remove install.rdf.
Add _locales/en/messages.json for compatibility Remove unused pepmessenger.js/xulmaster
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"
|
||||
}
|
||||
}
|
@ -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…
Reference in New Issue