editor/nsIEditorUtils.idl
author Masayuki Nakano <masayuki@d-toybox.com>
Fri, 04 Aug 2017 13:57:56 +0900
changeset 641162 e1688e890138d18858a60e3d1719bced356628fd
parent 380422 29bf50e2f7cdc2bfefa63865dd1d12e502ef11b9
child 797531 a97ee65471569f6e285cdf998b13d1b241099b37
permissions -rw-r--r--
Bug 1060051 - Make editor related interfaces builtin classes if it's possible r?ehsan, smaug If we make nsIEditor a buildin class, that means that its instance can be only TextEditor or HTMLEditor. Then, users of nsIEditor can use concrete classes such as EditorBase, TextEditor or HTMLEditor instead. Then, the users can reduce unnecessary QI and a lot of virtual calls if we'll create non-virtual methods. So, let's make editor related interfaces buildin classes. MozReview-Commit-ID: 93WfsSDuJiJ

/* -*- Mode: C++; tab-width: 4; 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"
#include "domstubs.idl"

interface nsIDOMBlob;
interface mozIDOMWindowProxy;

[scriptable, builtinclass, uuid(eb8b8ad9-5d8f-43bd-8ce5-5b943c180d56)]
interface nsIEditorBlobListener : nsISupports
{
  void onResult(in ACString aResult);
  void onError(in AString aErrorName);
};

/**
 * A collection of utility functions that editors can use that are more easily
 * done in JavaScript.
 */
[scriptable, uuid(4bf94928-575e-4bd1-8321-a2c4b3d0119e)]
interface nsIEditorUtils : nsISupports
{
  /**
   * Given a blob, returns the data from that blob, asynchronously.
   */
  void slurpBlob(in nsIDOMBlob aBlob, in mozIDOMWindowProxy aScope,
                 in nsIEditorBlobListener aListener);
};