Bug 1232181 - Plugin module plumbing for retrieving scroll captures and updating plugin instance content scroll state. r=roc
This commit is contained in:
@@ -321,4 +321,17 @@ PluginPRLibrary::EndUpdateBackground(NPP instance, const nsIntRect&)
|
||||
return NS_ERROR_NOT_AVAILABLE;
|
||||
}
|
||||
|
||||
#if defined(XP_WIN)
|
||||
nsresult
|
||||
PluginPRLibrary::GetScrollCaptureContainer(NPP aInstance, ImageContainer** aContainer)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
nsresult
|
||||
PluginPRLibrary::UpdateScrollState(NPP aInstance, bool aIsScrolling)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
#endif
|
||||
|
||||
} // namespace mozilla
|
||||
|
||||
@@ -125,6 +125,10 @@ public:
|
||||
virtual void GetLibraryPath(nsACString& aPath) { aPath.Assign(mFilePath); }
|
||||
virtual nsresult GetRunID(uint32_t* aRunID) override { return NS_ERROR_NOT_IMPLEMENTED; }
|
||||
virtual void SetHasLocalInstance() override { }
|
||||
#if defined(XP_WIN)
|
||||
virtual nsresult GetScrollCaptureContainer(NPP aInstance, mozilla::layers::ImageContainer** aContainer) override;
|
||||
virtual nsresult UpdateScrollState(NPP aInstance, bool aIsScrolling) override;
|
||||
#endif
|
||||
|
||||
private:
|
||||
NP_InitializeFunc mNP_Initialize;
|
||||
|
||||
@@ -1210,6 +1210,29 @@ nsNPAPIPluginInstance::GetImageSize(nsIntSize* aSize)
|
||||
return !library ? NS_ERROR_FAILURE : library->GetImageSize(&mNPP, aSize);
|
||||
}
|
||||
|
||||
#if defined(XP_WIN)
|
||||
nsresult
|
||||
nsNPAPIPluginInstance::GetScrollCaptureContainer(ImageContainer**aContainer)
|
||||
{
|
||||
*aContainer = nullptr;
|
||||
|
||||
if (RUNNING != mRunning)
|
||||
return NS_OK;
|
||||
|
||||
AutoPluginLibraryCall library(this);
|
||||
return !library ? NS_ERROR_FAILURE : library->GetScrollCaptureContainer(&mNPP, aContainer);
|
||||
}
|
||||
nsresult
|
||||
nsNPAPIPluginInstance::UpdateScrollState(bool aIsScrolling)
|
||||
{
|
||||
if (RUNNING != mRunning)
|
||||
return NS_OK;
|
||||
|
||||
AutoPluginLibraryCall library(this);
|
||||
return !library ? NS_ERROR_FAILURE : library->UpdateScrollState(&mNPP, aIsScrolling);
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
nsNPAPIPluginInstance::DidComposite()
|
||||
{
|
||||
|
||||
@@ -121,6 +121,10 @@ public:
|
||||
nsresult InvalidateRegion(NPRegion invalidRegion);
|
||||
nsresult GetMIMEType(const char* *result);
|
||||
nsresult GetJSContext(JSContext* *outContext);
|
||||
#if defined(XP_WIN)
|
||||
nsresult GetScrollCaptureContainer(mozilla::layers::ImageContainer **aContainer);
|
||||
nsresult UpdateScrollState(bool aIsScrolling);
|
||||
#endif
|
||||
nsPluginInstanceOwner* GetOwner();
|
||||
void SetOwner(nsPluginInstanceOwner *aOwner);
|
||||
void DidComposite();
|
||||
|
||||
@@ -87,6 +87,10 @@ public:
|
||||
virtual nsresult IsRemoteDrawingCoreAnimation(NPP instance, bool *aDrawing) = 0;
|
||||
virtual nsresult ContentsScaleFactorChanged(NPP instance, double aContentsScaleFactor) = 0;
|
||||
#endif
|
||||
#if defined(XP_WIN)
|
||||
virtual nsresult GetScrollCaptureContainer(NPP aInstance, mozilla::layers::ImageContainer** aContainer) = 0;
|
||||
virtual nsresult UpdateScrollState(NPP aInstance, bool aIsScrolling) = 0;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* The next three methods are the third leg in the trip to
|
||||
|
||||
@@ -2000,6 +2000,22 @@ PluginModuleParent::EndUpdateBackground(NPP instance, const nsIntRect& aRect)
|
||||
return i->EndUpdateBackground(aRect);
|
||||
}
|
||||
|
||||
#if defined(XP_WIN)
|
||||
nsresult
|
||||
PluginModuleParent::GetScrollCaptureContainer(NPP aInstance,
|
||||
mozilla::layers::ImageContainer** aContainer)
|
||||
{
|
||||
PluginInstanceParent* inst = PluginInstanceParent::Cast(aInstance);
|
||||
return !inst ? NS_ERROR_FAILURE : inst->GetScrollCaptureContainer(aContainer);
|
||||
}
|
||||
nsresult
|
||||
PluginModuleParent::UpdateScrollState(NPP aInstance, bool aIsScrolling)
|
||||
{
|
||||
PluginInstanceParent* inst = PluginInstanceParent::Cast(aInstance);
|
||||
return !inst ? NS_ERROR_FAILURE : inst->UpdateScrollState(aIsScrolling);
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
PluginModuleParent::OnInitFailure()
|
||||
{
|
||||
|
||||
@@ -259,6 +259,11 @@ protected:
|
||||
virtual nsresult EndUpdateBackground(NPP instance,
|
||||
const nsIntRect& aRect) override;
|
||||
|
||||
#if defined(XP_WIN)
|
||||
virtual nsresult GetScrollCaptureContainer(NPP aInstance, mozilla::layers::ImageContainer** aContainer) override;
|
||||
virtual nsresult UpdateScrollState(NPP aInstance, bool aIsScrolling);
|
||||
#endif
|
||||
|
||||
#if defined(XP_UNIX) && !defined(XP_MACOSX) && !defined(MOZ_WIDGET_GONK)
|
||||
virtual nsresult NP_Initialize(NPNetscapeFuncs* bFuncs, NPPluginFuncs* pFuncs, NPError* error) override;
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user