editor/nsIEditorUtils.idl
author Mike de Boer <mdeboer@mozilla.com>
Tue, 10 Oct 2017 19:14:01 +0200
changeset 432404 250948dc4a6bd4316f128c089ba43abf3d1e87bf
parent 423002 cddc1b05b8760e76c0621c402047adaa553be468
child 473550 4f8b341fea03c37954f49dff6f6c1d91e8efafec
permissions -rw-r--r--
Bug 1397989 - Make sure to only set non-empty values as the content-type of a document in the remote browser binding. r=mconley, a=ritu What happens is the following: - browser-child.js sends a statechange up to RemoteWebProgress.jsm that contains a `documentContentType` value of `null`, along with `requestURI` and `originalRequestURI` _after_ other state changes that did send a valid content-type. - The content-type is used by the WebProgressListener in browser.js to toggle the disabled state of the 'isImage' broadcaster. - The 'isImage' broadcaster is used by the 'cmd_find' and 'cmd_findAgain' commands to determine whether they should be enabled. In this case: not. The fix here is to _not_ set the documentContentType in the browser binding when it's `null`. MozReview-Commit-ID: IELoCrnOH0j

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