/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* 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 http://mozilla.org/MPL/2.0/. */ #include "nsISupports.idl" #include "nsrootidl.idl" interface nsIChannel; interface nsIMsgMailNewsUrl; interface nsIUTF8StringEnumerator; interface nsIMsgDBHdr; interface nsIURI; interface nsIWritablePropertyBag2; [scriptable, uuid(4644FB25-5255-11d3-82B8-444553540002)] interface nsIMimeMiscStatus : nsISupports{ string GetWindowXULandJS(); string GetGlobalXULandJS(); string GetIndividualXUL(in string aName, in string aHeader, in string aEmail); long GetMiscStatus(in string aName, in string aEmail); string GetImageURL(in long aStatus); }; // this is a simple interface which allows someone to listen to all the headers // that are discovered by mime. We can use this when displaying a message to update // the msg header in JS. [scriptable, uuid(e0e821f0-cecf-4cb3-be5b-ee58b6868343)] interface nsIMsgHeaderSink : nsISupports { // You must finish consuming the iterators before returning from processHeaders. aHeaderNames and aHeaderValues will ALWAYS have the same // number of elements in them void processHeaders(in nsIUTF8StringEnumerator aHeaderNames, in nsIUTF8StringEnumerator aHeaderValues, in boolean dontCollectAddress); void handleAttachment(in string contentType, in string url, in wstring displayName, in string uri, in boolean aNotDownloaded); /** * Add a metadata field to the current attachment, e.g. "X-Mozilla-PartSize". * * @param field The field to add * @param value The value of the field */ void addAttachmentField(in string field, in string value); void onEndAllAttachments(); // onEndMsgHeaders is called after libmime is done processing a message. At this point it is safe for // elements like the UI to update junk status, process return receipts, etc. void onEndMsgHeaders(in nsIMsgMailNewsUrl url); // onEndMsgDownload is triggered when layout says it is actually done rendering // the message body in the UI. void onEndMsgDownload(in nsIMsgMailNewsUrl url); attribute nsISupports securityInfo; /** * onMsgHasRemoteContent is called each time content policy encounters remote * content that it will block from loading. * @param aMsgHdr header of the message the content is located in * @param aContentURI location that will be blocked. * @param aCanOverride can the blocking be overridden or not */ void onMsgHasRemoteContent(in nsIMsgDBHdr aMsgHdr, in nsIURI aContentURI, in boolean aCanOverride); readonly attribute nsIMsgDBHdr dummyMsgHeader; // used as a hook for extension mime content handlers to store data that can later // be accessed by other parts of the code, e.g., UI code. // TODO - Should replace securityInfo readonly attribute nsIWritablePropertyBag2 properties; // When streaming a new message, properties should be reset, so that there are // not previous values lurking around. void resetProperties(); };