Bug 1287015 - Part 2. Remove unused AndroidBridge()::LockWindow/UnlockWindow. r?snorp
MozReview-Commit-ID: u5CDwNqt1g
--- a/widget/android/AndroidBridge.cpp
+++ b/widget/android/AndroidBridge.cpp
@@ -782,25 +782,23 @@ AndroidBridge::OpenGraphicsLibraries()
// Try to dlopen libandroid.so for and native window access on
// Android 2.3+ (API level 9)
handle = dlopen("libandroid.so", RTLD_LAZY | RTLD_LOCAL);
if (handle) {
ANativeWindow_fromSurface = (void* (*)(JNIEnv*, jobject))dlsym(handle, "ANativeWindow_fromSurface");
ANativeWindow_release = (void (*)(void*))dlsym(handle, "ANativeWindow_release");
ANativeWindow_setBuffersGeometry = (int (*)(void*, int, int, int)) dlsym(handle, "ANativeWindow_setBuffersGeometry");
- ANativeWindow_lock = (int (*)(void*, void*, void*)) dlsym(handle, "ANativeWindow_lock");
- ANativeWindow_unlockAndPost = (int (*)(void*))dlsym(handle, "ANativeWindow_unlockAndPost");
ANativeWindow_getWidth = (int (*)(void*))dlsym(handle, "ANativeWindow_getWidth");
ANativeWindow_getHeight = (int (*)(void*))dlsym(handle, "ANativeWindow_getHeight");
// This is only available in Honeycomb and ICS. It was removed in Jelly Bean
ANativeWindow_fromSurfaceTexture = (void* (*)(JNIEnv*, jobject))dlsym(handle, "ANativeWindow_fromSurfaceTexture");
- mHasNativeWindowAccess = ANativeWindow_fromSurface && ANativeWindow_release && ANativeWindow_lock && ANativeWindow_unlockAndPost;
+ mHasNativeWindowAccess = ANativeWindow_fromSurface && ANativeWindow_release;
ALOG_BRIDGE("Successfully opened libandroid.so, have native window access? %d", mHasNativeWindowAccess);
}
// We need one symbol from here on Jelly Bean
handle = dlopen("libandroid_runtime.so", RTLD_LAZY | RTLD_LOCAL);
if (handle) {
android_SurfaceTexture_getNativeWindow = (android::sp<AndroidRefable> (*)(JNIEnv*, jobject))dlsym(handle, "_ZN7android38android_SurfaceTexture_getNativeWindowEP7_JNIEnvP8_jobject");
@@ -1382,88 +1380,16 @@ void
AndroidBridge::ReleaseNativeWindowForSurfaceTexture(void *window)
{
if (!window)
return;
// FIXME: we don't ref the pointer we get, so nothing to do currently. We should ref it.
}
-bool
-AndroidBridge::LockWindow(void *window, unsigned char **bits, int *width, int *height, int *format, int *stride)
-{
- /* Copied from native_window.h in Android NDK (platform-9) */
- typedef struct ANativeWindow_Buffer {
- // The number of pixels that are show horizontally.
- int32_t width;
-
- // The number of pixels that are shown vertically.
- int32_t height;
-
- // The number of *pixels* that a line in the buffer takes in
- // memory. This may be >= width.
- int32_t stride;
-
- // The format of the buffer. One of WINDOW_FORMAT_*
- int32_t format;
-
- // The actual bits.
- void* bits;
-
- // Do not touch.
- uint32_t reserved[6];
- } ANativeWindow_Buffer;
-
- // Very similar to the above, but the 'usage' field is included. We use this
- // in the fallback case when NDK support is not available
- struct SurfaceInfo {
- uint32_t w;
- uint32_t h;
- uint32_t s;
- uint32_t usage;
- uint32_t format;
- unsigned char* bits;
- uint32_t reserved[2];
- };
-
- int err;
- *bits = nullptr;
- *width = *height = *format = 0;
-
- if (mHasNativeWindowAccess) {
- ANativeWindow_Buffer buffer;
-
- if ((err = ANativeWindow_lock(window, (void*)&buffer, nullptr)) != 0) {
- ALOG_BRIDGE("ANativeWindow_lock failed! (error %d)", err);
- return false;
- }
-
- *bits = (unsigned char*)buffer.bits;
- *width = buffer.width;
- *height = buffer.height;
- *format = buffer.format;
- *stride = buffer.stride;
- } else if (mHasNativeWindowFallback) {
- SurfaceInfo info;
-
- if ((err = Surface_lock(window, &info, nullptr, true)) != 0) {
- ALOG_BRIDGE("Surface_lock failed! (error %d)", err);
- return false;
- }
-
- *bits = info.bits;
- *width = info.w;
- *height = info.h;
- *format = info.format;
- *stride = info.s;
- } else return false;
-
- return true;
-}
-
jobject
AndroidBridge::GetGlobalContextRef() {
if (sGlobalContext) {
return sGlobalContext;
}
JNIEnv* const env = GetEnvForThread();
AutoLocalJNIFrame jniFrame(env, 4);
@@ -1490,35 +1416,16 @@ AndroidBridge::GetGlobalContextRef() {
return 0;
}
sGlobalContext = env->NewGlobalRef(appContext);
MOZ_ASSERT(sGlobalContext);
return sGlobalContext;
}
-bool
-AndroidBridge::UnlockWindow(void* window)
-{
- int err;
-
- if (!HasNativeWindowAccess())
- return false;
-
- if (mHasNativeWindowAccess && (err = ANativeWindow_unlockAndPost(window)) != 0) {
- ALOG_BRIDGE("ANativeWindow_unlockAndPost failed! (error %d)", err);
- return false;
- } else if (mHasNativeWindowFallback && (err = Surface_unlockAndPost(window)) != 0) {
- ALOG_BRIDGE("Surface_unlockAndPost failed! (error %d)", err);
- return false;
- }
-
- return true;
-}
-
void
AndroidBridge::SetFirstPaintViewport(const LayerIntPoint& aOffset, const CSSToLayerScale& aZoom, const CSSRect& aCssPageRect)
{
if (!mLayerClient) {
return;
}
mLayerClient->SetFirstPaintViewport(float(aOffset.x), float(aOffset.y), aZoom.scale,
--- a/widget/android/AndroidBridge.h
+++ b/widget/android/AndroidBridge.h
@@ -231,19 +231,16 @@ public:
void *AcquireNativeWindow(JNIEnv* aEnv, jobject aSurface);
void ReleaseNativeWindow(void *window);
mozilla::gfx::IntSize GetNativeWindowSize(void* window);
void *AcquireNativeWindowFromSurfaceTexture(JNIEnv* aEnv, jobject aSurface);
void ReleaseNativeWindowForSurfaceTexture(void *window);
- bool LockWindow(void *window, unsigned char **bits, int *width, int *height, int *format, int *stride);
- bool UnlockWindow(void *window);
-
void HandleGeckoMessage(JSContext* cx, JS::HandleObject message);
bool InitCamera(const nsCString& contentType, uint32_t camera, uint32_t *width, uint32_t *height, uint32_t *fps);
void GetCurrentBatteryInformation(hal::BatteryInformation* aBatteryInfo);
nsresult GetSegmentInfoForText(const nsAString& aText,
nsIMobileMessageCallback* aRequest);
@@ -406,18 +403,16 @@ protected:
int (* AndroidBitmap_lockPixels)(JNIEnv *env, jobject bitmap, void **buffer);
int (* AndroidBitmap_unlockPixels)(JNIEnv *env, jobject bitmap);
void* (*ANativeWindow_fromSurface)(JNIEnv *env, jobject surface);
void* (*ANativeWindow_fromSurfaceTexture)(JNIEnv *env, jobject surfaceTexture);
void (*ANativeWindow_release)(void *window);
int (*ANativeWindow_setBuffersGeometry)(void *window, int width, int height, int format);
- int (* ANativeWindow_lock)(void *window, void *outBuffer, void *inOutDirtyBounds);
- int (* ANativeWindow_unlockAndPost)(void *window);
int (* ANativeWindow_getWidth)(void * window);
int (* ANativeWindow_getHeight)(void * window);
int (* Surface_lock)(void* surface, void* surfaceInfo, void* region, bool block);
int (* Surface_unlockAndPost)(void* surface);
void (* Region_constructor)(void* region);
void (* Region_set)(void* region, void* rect);