editor/nsIEditorUtils.idl
author Masayuki Nakano <masayuki@d-toybox.com>
Fri, 04 Aug 2017 13:57:56 +0900
changeset 373562 cddc1b05b8760e76c0621c402047adaa553be468
parent 302249 29bf50e2f7cdc2bfefa63865dd1d12e502ef11b9
child 419205 4f8b341fea03c37954f49dff6f6c1d91e8efafec
permissions -rw-r--r--
Bug 1060051 - Make editor related interfaces builtin classes if it's possible r=Ehsan,smaug If we make nsIEditor a builtin 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 builtin 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);
};