dom/ipc/PBrowserBridge.ipdl
author Ryan Hunt <rhunt@eqrion.net>
Mon, 04 Mar 2019 20:15:58 -0600
changeset 521235 48241ea6a125e5ec01dbb323da92adabfb4ea480
parent 520367 dom/ipc/PRemoteFrame.ipdl@627cd6785c62546797d2859a6ff3ea2a50c61df0
child 521896 b7184b1a3d78d8ab80d3a4dabd4f7836621d32b6
permissions -rw-r--r--
Bug 1532725 - Rename PRemoteFrame to PBrowserBridge. r=nika Differential Revision: https://phabricator.services.mozilla.com/D22132

/* -*- 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);

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();

};

}  // namespace dom
}  // namespace mozilla