blob: f06804f613ebf9cc676c4fb86f22aee6800b0eab [file] [log] [blame]
/* Copyright 2014 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 PPB_InputEvent_Private interfaces.
*/
label Chrome {
M37 = 0.1
};
/**
* The <code>PPB_InputEvent_Private</code> interface contains pointers to several
* functions related to generic input events on the browser.
*/
interface PPB_InputEvent_Private {
/**
* TraceInputLatency() traces the latency of the input event. The input
* latency is shown in the trace viewer. The starting point of the input
* latency is when the input event is sent from renderer to plugin. If the
* input event does not cause any rendering damage, the end point of input
* latency is when TraceInputLatency() is called on the event. If the input
* event does cause rendering damage, the end point of input latency is when
* the resulted plugin frame eventually reaches screen.
*
* Notes: In the current version, only Graphics2D damage is considered as
* rendering damage. And it works only when the Graphics2Ds are bound to
* the plugin instance.
*
* @param[in] event A <code>PP_Resource</code> corresponding to an input
* event.
*
* @param[in] has_damage A bool indicating whether the event has caused any
* rendering damage.
*
* @return <code>PP_TRUE</code> if the latency for the given event is tracked.
*/
PP_Bool TraceInputLatency([in] PP_Resource event,
[in] PP_Bool has_damage);
/**
* StartTrackingLatency() requests input latency to be tracked.
*
* Without calling StartTrackingLatency() first, TraceInputLatency() won't
* take effect.
*
* @param[in] instance The <code>PP_Instance</code> of the instance requesting
* to start tracking input latency.
*/
void StartTrackingLatency([in] PP_Instance instance);
};