editor/nsIEditorMailSupport.idl
author Kris Maglione <maglione.k@gmail.com>
Wed, 22 Mar 2017 20:33:05 -0700
changeset 428214 c90ba1cf0de266a399896f541bb9bfb08257a4ba
parent 423002 cddc1b05b8760e76c0621c402047adaa553be468
child 473934 96a208d3cceee2f0f0b7aac7fac3278d5a897330
permissions -rw-r--r--
Bug 1255894: Part 3 - Create skeleton IPDL framework for OOP stream filters. r=baku This interface will allow extensions running into a content process to attach a filtering stream listener to an HTTP request in the parent process. The content process attaches a listener by sending a message from the content process containing the ID of the request to filter, and the ID of the add-on making the request. The permissions and request mappings for this are handled by the web request service added in part 2. MozReview-Commit-ID: B7Dd3ywwCBX

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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"

interface nsIArray;
interface nsIDOMNode;

[scriptable, builtinclass, uuid(fdf23301-4a94-11d3-9ce4-9960496c41bc)]

interface nsIEditorMailSupport : nsISupports
{
  /** Paste the text in the OS clipboard at the cursor position,
    * as a quotation (whose representation is dependant on the editor type),
    * replacing the selected text (if any).
    * @param aSelectionType Text or html?
    */
  void pasteAsQuotation(in long aSelectionType);

  /** Insert a string as quoted text
    * (whose representation is dependant on the editor type),
    * replacing the selected text (if any).
    * @param aQuotedText  The actual text to be quoted
    * @return             The node which was inserted
    */
  nsIDOMNode insertAsQuotation(in AString aQuotedText);

  /**
   * Inserts a plaintext string at the current location,
   * with special processing for lines beginning with ">",
   * which will be treated as mail quotes and inserted
   * as plaintext quoted blocks.
   * If the selection is not collapsed, the selection is deleted
   * and the insertion takes place at the resulting collapsed selection.
   *
   * @param aString   the string to be inserted
   */
   void insertTextWithQuotations(in DOMString aStringToInsert);

  /** Paste a string as quoted text,
    * whose representation is dependant on the editor type,
    * replacing the selected text (if any)
    * @param aCitation    The "mid" URL of the source message
    * @param aSelectionType Text or html?
    */
  void pasteAsCitedQuotation(in AString aCitation,
                             in long aSelectionType);

  /** Insert a string as quoted text
    * (whose representation is dependant on the editor type),
    * replacing the selected text (if any),
    * including, if possible, a "cite" attribute.
    * @param aQuotedText  The actual text to be quoted
    * @param aCitation    The "mid" URL of the source message
    * @param aInsertHTML  Insert as html?  (vs plaintext)
    * @return             The node which was inserted
    */
  nsIDOMNode insertAsCitedQuotation(in AString aQuotedText,
                                    in AString aCitation,
                                    in boolean aInsertHTML);

  /**
   * Rewrap the selected part of the document, re-quoting if necessary.
   * @param aRespectNewlines  Try to maintain newlines in the original?
   */
  void rewrap(in boolean aRespectNewlines);

  /**
   * Strip any citations in the selected part of the document.
   */
  void stripCites();


  /**
   * Get a list of IMG and OBJECT tags in the current document.
   */
  nsIArray getEmbeddedObjects();
};