mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-01 00:32:11 +00:00
3ca1fb43c7
We want to signal content processes to cancel content JS unconditionally on shutdown. In the case of parent shutdown this has to happen as early as "quit-application-granted", given that both extensions and session storage shutdown rely on the possibility to interact with content processes (which is not possible when they are inside long running JS). In addition in the case of a normal child shutdown we cancel content JS execution, too. For now we put this behind the pref "dom.abort_script_on_child_shutdown" which remains default off. Depends on D150539 Differential Revision: https://phabricator.services.mozilla.com/D150598
48 lines
1.3 KiB
Plaintext
48 lines
1.3 KiB
Plaintext
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
* vim: sw=2 ts=8 et :
|
|
*/
|
|
/* 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/. */
|
|
|
|
// ParamTraits stuff for nsIRemoteTab::NavigationType
|
|
include "mozilla/dom/TabMessageUtils.h";
|
|
using nsIRemoteTab::NavigationType from "nsIRemoteTab.h";
|
|
|
|
using base::ProcessId from "base/process.h";
|
|
using mozilla::dom::TabId from "mozilla/dom/ipc/IdType.h";
|
|
using mozilla::layers::LayersObserverEpoch from "mozilla/layers/LayersTypes.h";
|
|
|
|
namespace mozilla {
|
|
|
|
struct SlowScriptData
|
|
{
|
|
TabId tabId;
|
|
nsCString filename;
|
|
nsString addonId;
|
|
double duration;
|
|
};
|
|
|
|
[ManualDealloc, ChildImpl=virtual, ParentImpl=virtual]
|
|
protocol PProcessHangMonitor
|
|
{
|
|
parent:
|
|
async HangEvidence(SlowScriptData data);
|
|
async ClearHang();
|
|
|
|
child:
|
|
async TerminateScript();
|
|
async RequestContentJSInterrupt();
|
|
|
|
async BeginStartingDebugger();
|
|
async EndStartingDebugger();
|
|
|
|
async PaintWhileInterruptingJS(TabId tabId, LayersObserverEpoch aEpoch);
|
|
|
|
async CancelContentJSExecutionIfRunning(
|
|
TabId tabId, NavigationType aNavigationType,
|
|
int32_t aNavigationIndex, nsCString? aNavigationURI, int32_t aEpoch);
|
|
};
|
|
|
|
} // namespace mozilla
|