dom/power/nsIPowerManagerService.idl
author Timothy Nikkel <tnikkel@gmail.com>
Thu, 16 Mar 2017 03:06:06 -0500
changeset 348004 d4cafcc44babd82e009801f6d453b6002fb280d7
parent 282426 e22b3043887ed36bf2c634c2924a7c8d39d226b1
child 372422 2345ddc27945fb93f71de800f0cf79184c3c1550
permissions -rw-r--r--
Bug 1343341. Only set the animation state as discarded if we discarded the animated frames (and not a static frame from a first-frame-only decode). r=aosmond The SurfaceCache can hold the first frame of a "static" decode as well as the animated frames in two seperate entries. We only care about what happens to the animated frames, so ignore OnSurfaceDiscarded for anything else. To accomplish this we must pass the SurfaceKey to OnSurfaceDiscarded.

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* 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"

%{C++
#define NS_POWERMANAGERSERVICE_CID { 0x18c2e238, 0x3a0a, 0x4153, {0x89, 0xfc, 0x16, 0x6b, 0x3b, 0x14, 0x65, 0xa1 } }
#define POWERMANAGERSERVICE_CONTRACTID "@mozilla.org/power/powermanagerservice;1"
%}

interface nsIDOMMozWakeLockListener;
interface mozIDOMWindow;

/**
 * For use with non-content code.
 */
[scriptable, builtinclass, uuid(ba7ca4c1-9d92-4425-a83b-85dd7fa953f7)]
interface nsIPowerManagerService : nsISupports
{
  /**
   * This API will power off the machine.
   */
  void              powerOff();

  /**
   * This API will completely shut down and boot the machine.
   */
  void              reboot();

  /**
   * This API will restart the Gecko processes without powering off the machine.
   */
  void              restart();

  void              addWakeLockListener(in nsIDOMMozWakeLockListener aListener);
  void              removeWakeLockListener(in nsIDOMMozWakeLockListener aListener);
  DOMString         getWakeLockState(in DOMString aTopic);

  /**
   * Return a wake lock (MozWakeLock) object of aTopic associated with aWindow.
   * A wake lock without associated window, e.g. used in chrome, is
   * always considered invisible.
   */
  nsISupports newWakeLock(in DOMString aTopic, [optional] in mozIDOMWindow aWindow);
};