import changes from `dev' branch of rmottola/Arctic-Fox:

- Bug 1248822 - In LayerManagerComposite::UpdateAndRender(), call PostProcessLayers() before LayerTreeInvalidation. r=mattwoodrow (503f81f51f)
- Bug 1259541 - Reduce clearing backbuffer in nsBaseWidget::CreateBackBufferDrawTarget() r=mattwoodrow (4f8cf8ab04)
- Bug 1174461 - [e10s] Return a cached result from SendGetNativePluginPort (r=jimm) a=kwierso (fff65b95ac)
- Bug 1263200 - Reset the APZ pointer in the base widget to null if the compositor creation fails. r=mstange (109d4a16a8)
- Bug 1264161 - Ensure we null out APZ pointers to the widget when it gets destroyed. r=botond (fdb516451e)
- Bug 1260018 - Route drag events to APZ, so it can accurately detect the end of a drag. r=kats (acd2b4a051)
- Remove drawWidgetAsOnScreen. (bug 1264393, r=mattwoodrow, webidl r=khuey) (b0ce23eacc)
- Bug 1254151 - use B8G8R8X8 for 24 bit depth visuals in nsShmImage with Cairo. r=jrmuizel (070ef9495d)
- Bug 1218955 - Remove nsIMEPicker, r=jchen (83adb6c582)
- Bug 1255655 - Const-ify keysymtab. r=karlt. (d9544cbf0c)
- Bug 1165048 - Music playback is getting stopped and is not resumed when modem is restarted. r=mwu (d3f99f8542)
- Bug 1264183. Remove unused argument to nsView::InvalidateHierarchy. r=mats (218ce04623)
- Bug 1210617 - [e10s] Implement PrivateBrowsingChannel for ExternalHelperAppParent. r=jduell (36e6ab7635)
- Bug 1258087 - Fix -Wunreachable-code warning in StartupCache.cpp on macosx64-mulet. r=froydnj (5f88df6993)
- Bug 1329798 - Include sys/sysmacros.h for major(), minor() on Linux. r=glandium, a=jcristau (a5c4073eb2)
- guard for non-linux system again or mac & FreeBSD fail to compile (6b5d2856b6)
This commit is contained in:
2024-05-30 14:34:55 +08:00
parent 2ce8c88a9b
commit 07da6b90ed
42 changed files with 151 additions and 292 deletions
+12 -7
View File
@@ -35,7 +35,8 @@ NS_IMPL_ISUPPORTS_INHERITED(PluginWidgetProxy, PuppetWidget, nsIWidget)
PluginWidgetProxy::PluginWidgetProxy(dom::TabChild* aTabChild,
mozilla::plugins::PluginWidgetChild* aActor) :
PuppetWidget(aTabChild),
mActor(aActor)
mActor(aActor),
mCachedPluginPort(0)
{
// See ChannelDestroyed() in the header
mActor->SetWidget(this);
@@ -63,6 +64,7 @@ PluginWidgetProxy::Create(nsIWidget* aParent,
}
BaseCreate(aParent, aInitData);
mParent = aParent;
mBounds = aRect;
mEnabled = true;
@@ -74,8 +76,6 @@ PluginWidgetProxy::Create(nsIWidget* aParent,
NS_IMETHODIMP
PluginWidgetProxy::SetParent(nsIWidget* aNewParent)
{
mParent = aNewParent;
nsCOMPtr<nsIWidget> kungFuDeathGrip(this);
nsIWidget* parent = GetParent();
if (parent) {
@@ -84,6 +84,7 @@ PluginWidgetProxy::SetParent(nsIWidget* aNewParent)
if (aNewParent) {
aNewParent->AddChild(this);
}
mParent = aNewParent;
return NS_OK;
}
@@ -135,10 +136,14 @@ PluginWidgetProxy::GetNativeData(uint32_t aDataType)
NS_WARNING("PluginWidgetProxy::GetNativeData received request for unsupported data type.");
return nullptr;
}
uintptr_t value = 0;
mActor->SendGetNativePluginPort(&value);
PWLOG("PluginWidgetProxy::GetNativeData %p\n", (void*)value);
return (void*)value;
// The parent side window handle or xid never changes so we can
// cache this for our lifetime.
if (mCachedPluginPort) {
return (void*)mCachedPluginPort;
}
mActor->SendGetNativePluginPort(&mCachedPluginPort);
PWLOG("PluginWidgetProxy::GetNativeData %p\n", (void*)mCachedPluginPort);
return (void*)mCachedPluginPort;
}
#if defined(XP_WIN)