mailnews/mime/public/nsIMimeMiscStatus.idl
author Mozilla Releng Treescript <release+treescript@mozilla.org>
Tue, 15 Jun 2021 08:39:04 +0000
changeset 42615 fb9656871de6bc7bdc15e126222400ee4bd9229a
parent 40972 e30558214296509edac97783e73de8449971e7cf
permissions -rw-r--r--
no bug - Bumping Thunderbird l10n changesets r=release a=l10n-bump DONTBUILD ast -> 5d5b90334a10794f9bf66119d68bde618af2a2a9 be -> 0b000c9eee4a0f1e321e8417b2641c4aa032f692 cs -> 5527cebb1eac1c7056b18ed4dadaf884f4942771 el -> ff298684ad15dfdad859f660184997acd94215f3 fi -> 98a7f04c9a60acf68be2ea5bd757660a2247a85d fr -> 47850996eb5d785d5d3ba0e602171d56aa879a58 gd -> 7663631ac464bb99fc05fdba8a4fb2638513c5b1 hu -> 2bae24ae3d90031f16c7dff41b6cbaf101f365e7 nb-NO -> 6973d1022da1bad5cd6fe56459d6c002334d3c5e nn-NO -> 2d453e7aef7fe93fa019a1c7e672cdd8805e88c6 sq -> 32b9939c9342d350d3d9b0e88ee3a38a00cb6c06 sr -> bec13882e1b1e1ad31234dae6eaddb588c0a0e5a

/* -*- 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 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 AUTF8String url,
                        in wstring displayName, in AUTF8String 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();
};