gecko-dev/dom/ipc/PBrowserBridge.ipdl

69 строки
1.9 KiB
C++

/* -*- Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 8 -*- */
/* vim: set sw=4 ts=8 et tw=80 ft=cpp : */
/* 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 DOMTypes;
using ScreenIntSize from "Units.h";
using nsSizeMode from "nsIWidgetListener.h";
using mozilla::layers::LayersObserverEpoch from "mozilla/layers/LayersTypes.h";
using mozilla::layers::LayersId from "mozilla/layers/LayersTypes.h";
namespace mozilla {
namespace dom {
/**
* PBrowserBridge corresponds to a remote iframe.
*/
async protocol PBrowserBridge {
manager PBrowser;
child:
async SetLayersId(LayersId layersId);
/**
* Request that the IPC child / Web parent process move focus to the
* browser's frame. If canRaise is true, the window can be raised if
* it is inactive.
*/
async RequestFocus(bool canRaise);
/**
* When IPC parent / Web child sends this message, the IPC child / Web parent
* should move focus to the next or previous focusable element or document.
*/
async MoveFocus(bool forward, bool forDocumentNavigation);
parent:
// Destroy the remote web browser due to the nsFrameLoader going away.
async __delete__();
// DocShell messaging.
async LoadURL(nsCString aSpec);
// Out of process rendering.
async Show(ScreenIntSize size, bool parentIsActive, nsSizeMode sizeMode);
async UpdateDimensions(DimensionInfo dimensions) compressall;
async RenderLayers(bool aEnabled, bool aForceRepaint, LayersObserverEpoch aEpoch);
/**
* Navigate by key (Tab/Shift+Tab/F6/Shift+f6).
*/
async NavigateByKey(bool aForward, bool aForDocumentNavigation);
/**
* Sending an activate message moves focus to the iframe.
*/
async Activate();
async Deactivate();
};
} // namespace dom
} // namespace mozilla