fune/dom/ipc/PProcessHangMonitor.ipdl
Emilio Cobos Álvarez fa6f012317 Bug 1582042 - Remove useless threading of aForceRepaint around various IPC messages. r=mconley
aForceRepaint wasn't doing what it claimed to do at all, as we've recently
learned. In current mozilla-central:

 * All those arguments ended up in a RecvRenderLayers with aForceRepaint = true
   (so far so good, that's expected).

 * But it was ignored (so that aForceRepaint is always true to calls to
   MakeVisible) from UpdateVisibility:

https://searchfox.org/mozilla-central/rev/f43ae7e1c43a4a940b658381157a6ea6c5a185c1/dom/ipc/BrowserChild.cpp#2523

 * Plus that argument only does anything useful on current central if we get to
   the end of MakeVisible(true). And MakeVisible() early returns if already
   visible.

So all in all this seems somewhat useless, and nobody has complained about such
a thing in a long time.

It seemed to do what it promised when it was introduced in
https://hg.mozilla.org/mozilla-central/rev/27f6f789b194, but it seems the
refactoring in https://hg.mozilla.org/mozilla-central/rev/4df5fa6fa785 broke it.

I think the new setup is somewhat easier to reason about, and nobody seems to be
missing that.

I'll try to remove the forceRepaint() call itself on a follow-up.

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

--HG--
extra : moz-landing-system : lando
2019-09-26 22:11:17 +00:00

56 lines
1.4 KiB
Text

/* -*- 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;
};
struct PluginHangData
{
uint32_t pluginId;
ProcessId contentProcessId;
};
union HangData
{
SlowScriptData;
PluginHangData;
};
protocol PProcessHangMonitor
{
parent:
async HangEvidence(HangData data);
async ClearHang();
child:
async TerminateScript(bool aTerminateGlobal);
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