2015-01-14 02:37:00 +03:00
|
|
|
/* -*- 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 protocol PBackground;
|
2018-11-20 02:18:32 +03:00
|
|
|
include "mozilla/layers/LayersMessageUtils.h";
|
2015-01-14 02:37:00 +03:00
|
|
|
|
|
|
|
using class mozilla::TimeStamp from "mozilla/TimeStamp.h";
|
|
|
|
|
|
|
|
namespace mozilla {
|
|
|
|
namespace layout {
|
|
|
|
|
|
|
|
/*
|
|
|
|
* The PVsync is a sub-protocol in PBackground and it is used to notify
|
|
|
|
* the vsync event from chrome to content process. It also provides the
|
|
|
|
* interfaces for content to observe/unobserve vsync event notifications.
|
|
|
|
*/
|
|
|
|
async protocol PVsync
|
|
|
|
{
|
|
|
|
manager PBackground;
|
|
|
|
|
|
|
|
child:
|
|
|
|
// Send vsync event from chrome to content process.
|
2018-12-07 20:38:47 +03:00
|
|
|
prio(high) async Notify(TimeStamp aVsyncTimestamp) compress;
|
2015-01-14 02:37:00 +03:00
|
|
|
|
2015-11-06 19:20:58 +03:00
|
|
|
// Send the vsync rate to the content process.
|
|
|
|
async VsyncRate(float aVsyncRate);
|
|
|
|
|
2015-01-14 02:37:00 +03:00
|
|
|
parent:
|
|
|
|
// Content process use these messages to acquire the vsync event.
|
|
|
|
async Observe();
|
|
|
|
async Unobserve();
|
2015-11-06 19:20:58 +03:00
|
|
|
async RequestVsyncRate();
|
2015-01-14 02:37:00 +03:00
|
|
|
|
|
|
|
// This message is never sent. Each PVsync actor will stay alive as long as
|
|
|
|
// its PBackground manager.
|
|
|
|
async __delete__();
|
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace layout
|
|
|
|
} // namespace mozilla
|
|
|
|
|