/* -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 8 -*- */ /* 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 PBrowser; include protocol PContent; include "mozilla/GfxMessageUtils.h"; using nsIntRect from "nsRect.h"; using mozilla::dom::TabId from "mozilla/dom/ipc/IdType.h"; namespace mozilla { namespace dom { struct ScreenDetails { uint32_t id; nsIntRect rect; nsIntRect rectDisplayPix; nsIntRect availRect; nsIntRect availRectDisplayPix; int32_t pixelDepth; int32_t colorDepth; double contentsScaleFactor; }; prio(normal upto high) sync protocol PScreenManager { manager PContent; parent: prio(high) sync Refresh() returns (uint32_t numberOfScreens, float systemDefaultScale, bool success); prio(high) sync ScreenRefresh(uint32_t aId) returns (ScreenDetails screen, bool success); prio(high) sync GetPrimaryScreen() returns (ScreenDetails screen, bool success); prio(high) sync ScreenForRect(int32_t aLeft, int32_t aTop, int32_t aWidth, int32_t aHeight) returns (ScreenDetails screen, bool success); prio(high) sync ScreenForBrowser(TabId aTabId) returns (ScreenDetails screen, bool success); child: __delete__(); }; } // namespace dom } // namespace mozilla