Bug 721741 - Add support for Flash on Android 4.0+ r=blassey

This commit is contained in:
James Willcox
2012-01-31 09:40:58 -05:00
parent 43516b489f
commit d28ecb7432
34 changed files with 1640 additions and 73 deletions

View File

@@ -39,10 +39,16 @@
#include "assert.h"
#include "ANPBase.h"
#include <android/log.h>
#include "AndroidBridge.h"
#include "nsNPAPIPluginInstance.h"
#include "nsIPluginInstanceOwner.h"
#include "nsPluginInstanceOwner.h"
#define LOG(args...) __android_log_print(ANDROID_LOG_INFO, "GeckoPlugins" , ## args)
#define ASSIGN(obj, name) (obj)->name = anp_window_##name
using namespace mozilla;
void
anp_window_setVisibleRects(NPP instance, const ANPRectI rects[], int32_t count)
{
@@ -79,6 +85,32 @@ anp_window_requestCenterFitZoom(NPP instance)
NOT_IMPLEMENTED();
}
ANPRectI
anp_window_visibleRect(NPP instance)
{
ANPRectI rect = { 0, 0, 0, 0 };
nsNPAPIPluginInstance* pinst = static_cast<nsNPAPIPluginInstance*>(instance->ndata);
nsPluginInstanceOwner* owner;
if (NS_FAILED(pinst->GetOwner((nsIPluginInstanceOwner**)&owner))) {
return rect;
}
nsIntRect visibleRect = owner->GetVisibleRect();
rect.left = visibleRect.x;
rect.top = visibleRect.y;
rect.right = visibleRect.x + visibleRect.width;
rect.bottom = visibleRect.y + visibleRect.height;
return rect;
}
void anp_window_requestFullScreenOrientation(NPP instance, ANPScreenOrientation orientation)
{
NOT_IMPLEMENTED();
}
void InitWindowInterface(ANPWindowInterfaceV0 *i) {
_assert(i->inSize == sizeof(*i));
ASSIGN(i, setVisibleRects);
@@ -89,3 +121,26 @@ void InitWindowInterface(ANPWindowInterfaceV0 *i) {
ASSIGN(i, requestCenterFitZoom);
}
void InitWindowInterfaceV1(ANPWindowInterfaceV1 *i) {
_assert(i->inSize == sizeof(*i));
ASSIGN(i, setVisibleRects);
ASSIGN(i, clearVisibleRects);
ASSIGN(i, showKeyboard);
ASSIGN(i, requestFullScreen);
ASSIGN(i, exitFullScreen);
ASSIGN(i, requestCenterFitZoom);
ASSIGN(i, visibleRect);
}
void InitWindowInterfaceV2(ANPWindowInterfaceV2 *i) {
_assert(i->inSize == sizeof(*i));
ASSIGN(i, setVisibleRects);
ASSIGN(i, clearVisibleRects);
ASSIGN(i, showKeyboard);
ASSIGN(i, requestFullScreen);
ASSIGN(i, exitFullScreen);
ASSIGN(i, requestCenterFitZoom);
ASSIGN(i, visibleRect);
ASSIGN(i, requestFullScreenOrientation);
}