widget/nsIStandaloneNativeMenu.idl
author Andreas Tolfsen <ato@sny.no>
Thu, 11 Oct 2018 16:40:36 +0000
changeset 443621 9ca2c179e63e292808918158eb778b16bf18e67f
parent 415894 7f3223b376bb4f473b44e8d3d504df58b70652a0
permissions -rw-r--r--
bug 1492499: marionette: warn on TimedPromise bailing; r=automatedtester We often use TimedPromise to ensure Marionette does not unexpectedly block on a promise that, for whatever reason, does not resolve. It can however be useful to be alerted when they don't, as it quite often means there is an underlying problem. Depends on D8406 Differential Revision: https://phabricator.services.mozilla.com/D8407

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

webidl Element;

/**
 * Platform-independent interface to platform native menu objects.
 */

[scriptable, uuid(7F7201EB-510C-4CEF-BDF0-04A15A7A4A8C)]
interface nsIStandaloneNativeMenu : nsISupports
{
  /**
   * Initialize the native menu using given XUL DOM element.
   *
   * @param aDOMElement A XUL DOM element of tag type |menu| or |menupopup|.
   */
  void init(in Element aElement);

  /**
   * This method must be called before the menu is opened and displayed to the
   * user. It allows the platform code to update the menu and also determine
   * whether the menu should even be shown.
   *
   * @return true if the menu can be shown, false if it should not be shown
   */
  boolean menuWillOpen();

  /**
   * The native object representing the XUL menu that was passed to Init(). On
   * Mac OS X, this will be a NSMenu pointer, which will be retained and
   * autoreleased when the attribute is retrieved.
   */
  [noscript] readonly attribute voidPtr nativeMenu;

  /**
   * Activate the native menu item specified by |anIndexString|. This method
   * is intended to be used by the test suite.
   *
   * @param anIndexString string containing a list of indices separated by
   *        pipe ('|') characters
   */
  void activateNativeMenuItemAt(in AString anIndexString);

  /**
   * Force an update of the native menu item specified by |anIndexString|. This
   * method is intended to be used by the test suite.
   *
   * @param anIndexString string containing a list of indices separated by
   *        pipe ('|') characters
   */
  void forceUpdateNativeMenuAt(in AString anIndexString);
};