/* Copyright (c) 2011 The Chromium Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */


/**
 * This file defines the <code>PPB_Fullscreen</code> interface.
 */

label Chrome {
  M16 = 1.0
};

interface PPB_Fullscreen {
  /**
   * Checks whether the plugin instance is currently in fullscreen mode.
   */
  PP_Bool IsFullscreen(
      [in] PP_Instance instance);

  /**
   * Switches the plugin instance to/from fullscreen mode. Returns PP_TRUE on
   * success, PP_FALSE on failure.
   *
   * The transition to and from fullscreen is asynchronous.
   * During the transition, IsFullscreen will return the original value, and
   * no 2D or 3D device can be bound. The transition ends at DidChangeView
   * when IsFullscreen returns the new value. You might receive other
   * DidChangeView calls while in transition.
   *
   * The transition to fullscreen can only occur while the browser is
   * processing a user gesture, even if PP_TRUE is returned.
   */
  PP_Bool SetFullscreen(
      [in] PP_Instance instance,
      [in] PP_Bool fullscreen);

  /**
   * Gets the size of the screen in pixels. When going fullscreen, the instance
   * will be resized to that size.
   */
  PP_Bool GetScreenSize(
      [in] PP_Instance instance,
      [out] PP_Size size);
};

