widget/nsITaskbarWindowPreview.idl
author Valentin Gosu <valentin.gosu@gmail.com>
Fri, 02 Nov 2018 17:38:37 -0400
changeset 501038 8016d0d1a391f1327a0375fb6d4f20228b2784aa
parent 425212 87b6163f38794046591bb5265f8f31cefbef7d3d
child 538050 020c8c871c0d3b3920fe95935cfef06501976c0f
permissions -rw-r--r--
Bug 1503725 - Do not deallocate nsThreadShutdownContext when leaking thread. r=erahm, a=RyanVM Sometimes when we call ShutdownWithTimeout on a thread pool, the unresponsive thread that we leak will actually complete before the main thread is done. In that case, the thread will dereference the thread shutdown context, so we must intentionally leak it too. Differential Revision: https://phabricator.services.mozilla.com/D10645

/* vim: se cin sw=2 ts=2 et : */
/* -*- 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 "nsITaskbarPreview.idl"
interface nsITaskbarPreviewButton;

/*
 * nsITaskbarWindowPreview
 *
 * This interface represents the preview for a window in the taskbar. By
 * default, Windows implements much of the behavior for applications by
 * default. The primary purpose of this interface is to allow Gecko
 * applications to take control over parts of the preview. Some parts are not
 * controlled through this interface: the title and icon of the preview match
 * the title and icon of the window always.
 *
 * By default, Windows takes care of drawing the thumbnail and preview for the
 * application however if enableCustomDrawing is set to true, then the
 * controller will start to receive requestPreview and requestThumbnail calls
 * as well as reads on the thumbnailAspectRatio, width and height properties.
 *
 * By default, nsITaskbarWindowPreviews are visible. When made invisible, the
 * window disappears from the list of windows in the taskbar for the
 * application.
 *
 * If the window has any visible nsITaskbarTabPreviews, then the
 * nsITaskbarWindowPreview for the corresponding window is automatically
 * hidden. This is not reflected in the visible property. Note that other parts
 * of the system (such as alt-tab) may still request thumbnails and/or previews
 * through the nsITaskbarWindowPreview's controller.
 *
 * nsITaskbarWindowPreview will never invoke the controller's onClose or
 * onActivate methods since handling them may conflict with other internal
 * Gecko state and there is existing infrastructure in place to allow clients
 * to handle those events 
 *
 * Window previews may have a toolbar with up to 7 buttons. See
 * nsITaskbarPreviewButton for more information about button properties.
 */
[scriptable, uuid(EC67CC57-342D-4064-B4C6-74A375E07B10)]
interface nsITaskbarWindowPreview : nsITaskbarPreview
{
  /**
   * Max 7 buttons per preview per the Windows Taskbar API
   */
  const long NUM_TOOLBAR_BUTTONS = 7;

  /**
   * Gets the nth button for the preview image. By default, all of the buttons
   * are invisible.
   *
   * @see nsITaskbarPreviewButton
   *
   * @param index The index into the button array. Must be >= 0 and <
   *              MAX_TOOLBAR_BUTTONS.
   */
  nsITaskbarPreviewButton getButton(in unsigned long index);

  /**
   * Enables/disables custom drawing of thumbnails and previews
   *
   * Default value: false
   */
  attribute boolean enableCustomDrawing;
};