Loading widget/src/android/AndroidBridge.cpp +16 −0 Original line number Diff line number Diff line Loading @@ -1303,6 +1303,14 @@ AndroidBridge::HandleGeckoMessage(const nsAString &aMessage, nsAString &aRet) ALOG_BRIDGE("leaving %s", __PRETTY_FUNCTION__); } static nsCOMPtr<nsIAndroidDrawMetadataProvider> gDrawMetadataProvider = NULL; nsCOMPtr<nsIAndroidDrawMetadataProvider> AndroidBridge::GetDrawMetadataProvider() { return gDrawMetadataProvider; } void AndroidBridge::CheckURIVisited(const nsAString& aURI) { Loading Loading @@ -1455,3 +1463,11 @@ NS_IMETHODIMP nsAndroidBridge::HandleGeckoMessage(const nsAString & message, nsA AndroidBridge::Bridge()->HandleGeckoMessage(message, aRet); return NS_OK; } /* void SetDrawMetadataProvider (in nsIAndroidDrawMetadataProvider message); */ NS_IMETHODIMP nsAndroidBridge::SetDrawMetadataProvider(nsIAndroidDrawMetadataProvider *aProvider) { gDrawMetadataProvider = aProvider; return NS_OK; } widget/src/android/AndroidBridge.h +2 −0 Original line number Diff line number Diff line Loading @@ -300,6 +300,8 @@ public: void HandleGeckoMessage(const nsAString& message, nsAString &aRet); nsCOMPtr<nsIAndroidDrawMetadataProvider> GetDrawMetadataProvider(); void EmitGeckoAccessibilityEvent (PRInt32 eventType, const nsAString& role, const nsAString& text, const nsAString& description, bool enabled, bool checked, bool password); void CheckURIVisited(const nsAString& uri); Loading widget/src/android/AndroidJavaWrappers.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -325,7 +325,7 @@ AndroidGeckoSoftwareLayerClient::InitGeckoSoftwareLayerClientClass(JNIEnv *jEnv) jLockBufferMethod = getMethod("lockBuffer", "()Ljava/nio/ByteBuffer;"); jUnlockBufferMethod = getMethod("unlockBuffer", "()V"); jBeginDrawingMethod = getMethod("beginDrawing", "()V"); jEndDrawingMethod = getMethod("endDrawing", "(IIII)V"); jEndDrawingMethod = getMethod("endDrawing", "(IIIILjava/lang/String;)V"); #endif } Loading Loading @@ -616,12 +616,13 @@ AndroidGeckoSoftwareLayerClient::BeginDrawing() } void AndroidGeckoSoftwareLayerClient::EndDrawing(const nsIntRect &aRect) AndroidGeckoSoftwareLayerClient::EndDrawing(const nsIntRect &aRect, const nsAString &aMetadata) { NS_ASSERTION(!isNull(), "EndDrawing() called on null software layer client!"); AndroidBridge::AutoLocalJNIFrame(1); jstring jMetadata = JNI()->NewString(nsPromiseFlatString(aMetadata).get(), aMetadata.Length()); return JNI()->CallVoidMethod(wrapped_obj, jEndDrawingMethod, aRect.x, aRect.y, aRect.width, aRect.height); aRect.height, jMetadata); } jobject Loading widget/src/android/AndroidJavaWrappers.h +1 −1 Original line number Diff line number Diff line Loading @@ -162,7 +162,7 @@ public: unsigned char *LockBufferBits(); void UnlockBuffer(); void BeginDrawing(); void EndDrawing(const nsIntRect &aRect); void EndDrawing(const nsIntRect &aRect, const nsAString &aMetadata); private: static jclass jGeckoSoftwareLayerClientClass; Loading widget/src/android/nsIAndroidBridge.idl +7 −1 Original line number Diff line number Diff line #include "nsISupports.idl" [scriptable, uuid(32c345d4-9f45-446a-8a93-8939f3453e87)] [scriptable, function, uuid(9feed1e5-bb90-4663-b70a-e03cb27a9e8b)] interface nsIAndroidDrawMetadataProvider : nsISupports { AString getDrawMetadata(); }; [scriptable, uuid(7dd8441a-4f38-49b2-bd90-da69d02a96cf)] interface nsIAndroidBridge : nsISupports { AString handleGeckoMessage(in AString message); void setDrawMetadataProvider(in nsIAndroidDrawMetadataProvider provider); }; Loading
widget/src/android/AndroidBridge.cpp +16 −0 Original line number Diff line number Diff line Loading @@ -1303,6 +1303,14 @@ AndroidBridge::HandleGeckoMessage(const nsAString &aMessage, nsAString &aRet) ALOG_BRIDGE("leaving %s", __PRETTY_FUNCTION__); } static nsCOMPtr<nsIAndroidDrawMetadataProvider> gDrawMetadataProvider = NULL; nsCOMPtr<nsIAndroidDrawMetadataProvider> AndroidBridge::GetDrawMetadataProvider() { return gDrawMetadataProvider; } void AndroidBridge::CheckURIVisited(const nsAString& aURI) { Loading Loading @@ -1455,3 +1463,11 @@ NS_IMETHODIMP nsAndroidBridge::HandleGeckoMessage(const nsAString & message, nsA AndroidBridge::Bridge()->HandleGeckoMessage(message, aRet); return NS_OK; } /* void SetDrawMetadataProvider (in nsIAndroidDrawMetadataProvider message); */ NS_IMETHODIMP nsAndroidBridge::SetDrawMetadataProvider(nsIAndroidDrawMetadataProvider *aProvider) { gDrawMetadataProvider = aProvider; return NS_OK; }
widget/src/android/AndroidBridge.h +2 −0 Original line number Diff line number Diff line Loading @@ -300,6 +300,8 @@ public: void HandleGeckoMessage(const nsAString& message, nsAString &aRet); nsCOMPtr<nsIAndroidDrawMetadataProvider> GetDrawMetadataProvider(); void EmitGeckoAccessibilityEvent (PRInt32 eventType, const nsAString& role, const nsAString& text, const nsAString& description, bool enabled, bool checked, bool password); void CheckURIVisited(const nsAString& uri); Loading
widget/src/android/AndroidJavaWrappers.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -325,7 +325,7 @@ AndroidGeckoSoftwareLayerClient::InitGeckoSoftwareLayerClientClass(JNIEnv *jEnv) jLockBufferMethod = getMethod("lockBuffer", "()Ljava/nio/ByteBuffer;"); jUnlockBufferMethod = getMethod("unlockBuffer", "()V"); jBeginDrawingMethod = getMethod("beginDrawing", "()V"); jEndDrawingMethod = getMethod("endDrawing", "(IIII)V"); jEndDrawingMethod = getMethod("endDrawing", "(IIIILjava/lang/String;)V"); #endif } Loading Loading @@ -616,12 +616,13 @@ AndroidGeckoSoftwareLayerClient::BeginDrawing() } void AndroidGeckoSoftwareLayerClient::EndDrawing(const nsIntRect &aRect) AndroidGeckoSoftwareLayerClient::EndDrawing(const nsIntRect &aRect, const nsAString &aMetadata) { NS_ASSERTION(!isNull(), "EndDrawing() called on null software layer client!"); AndroidBridge::AutoLocalJNIFrame(1); jstring jMetadata = JNI()->NewString(nsPromiseFlatString(aMetadata).get(), aMetadata.Length()); return JNI()->CallVoidMethod(wrapped_obj, jEndDrawingMethod, aRect.x, aRect.y, aRect.width, aRect.height); aRect.height, jMetadata); } jobject Loading
widget/src/android/AndroidJavaWrappers.h +1 −1 Original line number Diff line number Diff line Loading @@ -162,7 +162,7 @@ public: unsigned char *LockBufferBits(); void UnlockBuffer(); void BeginDrawing(); void EndDrawing(const nsIntRect &aRect); void EndDrawing(const nsIntRect &aRect, const nsAString &aMetadata); private: static jclass jGeckoSoftwareLayerClientClass; Loading
widget/src/android/nsIAndroidBridge.idl +7 −1 Original line number Diff line number Diff line #include "nsISupports.idl" [scriptable, uuid(32c345d4-9f45-446a-8a93-8939f3453e87)] [scriptable, function, uuid(9feed1e5-bb90-4663-b70a-e03cb27a9e8b)] interface nsIAndroidDrawMetadataProvider : nsISupports { AString getDrawMetadata(); }; [scriptable, uuid(7dd8441a-4f38-49b2-bd90-da69d02a96cf)] interface nsIAndroidBridge : nsISupports { AString handleGeckoMessage(in AString message); void setDrawMetadataProvider(in nsIAndroidDrawMetadataProvider provider); };