author Masayuki Nakano <masayuki@d-toybox.com>
Mon, 18 Mar 2019 01:51:53 +0000
changeset 464716 e536f6e123d8f54d5bf165e5e78da13c71a901af
parent 436910 0b212a6e641a6ceb7d81c3983864c9682dc0c665
child 465170 25398e555020fef80c7b2a06a0d4c667e861cd6f
permissions -rw-r--r--
Bug 1533293 - part 2: Rewrite EditorBase::SelectEntireDocument() and its overrides r=m_kato `EditorBase::SelectEntierDocument()` uses `Selection::Extend()` but it's too slow. It should use `Selection::SetStartAndEndInLimiter()` instead. Additionally, `TextEditor::SelectEntierDocument()` shrink the result of `EditorBase::SelectEntierDocument()` with `Selection::Extend()` if there is a `moz-<br>` element. So, `TextEditor::SelectEntinerDocument()` should set its expected selection with a call for saving the runtime cost. Then, we don't need to make `EditorBase::SelectEntierDocument()` as non-pure virtual method. So, this patch makes each its callers call `Selection->SelectAllChildren()` directly. Differential Revision: https://phabricator.services.mozilla.com/D23461

/* -*- 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;

webidl Node;

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

interface nsIEditorMailSupport : nsISupports
  /** 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
  Node 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);