mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 05:41:12 +00:00
d77310ec7b
With GroupedSHistory, history navigations may now require the browser to change which frameloader is stored internally from within Core. This patch adds a mechanism to allow for chrome code to respond to these changes and both delay the change, or respond once the change is performed. Delaying the change is accomplished through the BrowserWillChangeProcess event, which is fired when it is determined that a process change will happen for the given browser, but the change has not occured yet. During this time the nsIFrameLoader::AddProcessChangeBlockingPromise method may be called on the target browser's frameloader. Any promises passed to this method will be waited on, and the process change will not occur until they have all been fulfiled. Once that has occured, the process change occurs, and the BrowserChangedProcess event is fired. This is useful for chrome code which needs to flush state from the original process before the change, and then which needs to connect state in the new process with state in the chrome process. MozReview-Commit-ID: C0Xn6pfruB2
18 lines
550 B
Plaintext
18 lines
550 B
Plaintext
/* -*- Mode: IDL; 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/.
|
|
*/
|
|
|
|
[ChromeOnly,
|
|
Constructor(DOMString type, optional GroupedHistoryEventInit eventInitDict)]
|
|
interface GroupedHistoryEvent : Event
|
|
{
|
|
readonly attribute Element? otherBrowser;
|
|
};
|
|
|
|
dictionary GroupedHistoryEventInit : EventInit
|
|
{
|
|
Element? otherBrowser = null;
|
|
};
|