gecko-dev/dom/xul/nsIBrowserController.idl
Neil Deakin 8d3992adb0 Bug 1558520, rework remote controller to use JSWindowActor instead of having the browser have a controller, r=smaug
When searching for the controller for a command in nsWindowRoot::GetControllerForCommand, look for a focused browsing context instead and get the controller through the Controllers actor associated with that browsing context. When a command update occurs in a window in the child process, send the list of commands to the parent process along with the browsing context for that window. The parent will pass this information to the controllers actor. As long as we can get the right currently focused browsing context descendant, we can get the correct command state and invoke commands through the right actor.

Differential Revision: https://phabricator.services.mozilla.com/D66222

--HG--
rename : toolkit/modules/RemoteController.jsm => toolkit/actors/ControllersParent.jsm
extra : moz-landing-system : lando
2020-03-12 16:47:57 +00:00

23 lines
866 B
Plaintext

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* 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 "nsISupports.idl"
/**
* This interface is used to accompany the nsIController for a
* <browser> element. It is used to update the commands in the
* parent process when the set of child command have changed.
*/
[scriptable, uuid(5bb3d56b-e733-4a2c-8a53-058123df65e2)]
interface nsIBrowserController : nsISupports
{
// Update the commands for a given action in the parent process.
void enableDisableCommands(in AString action,
in Array<ACString> enabledCommands,
in Array<ACString> disabledCommands);
};