Commit Graph

409 Commits

Author SHA1 Message Date
Jim Chen
1f403e6400 Bug 1235475 - Crash at the exception source when an exception is in native code; r=snorp
When we have a Java exception in native code, the Java stack in the
exception will not be very useful because the top frame is the native
entry point. In this case, the native stack is more useful. However,
currently we don't get a good native stack in this situation because we
go through Java when handling the exception, and the native stack we get
will have a lot of unknown frames inside libdvm or libart. This patch
makes us stay in native code when handling an uncaught exception from
native code, so that we get a good native stack.
2015-12-30 18:36:41 -05:00
Jim Chen
e56235cd4f Bug 1233812 - Fix possible race in accessing nsAppShell instance; r=snorp
When getting nsAppShell from another thread, there could be a race with
nsAppShell being destroyed on the main thread. This patch makes the raw
nsAppShell pointer only accessible from the main thread, and use a
static mutex to coordinate accessing nsAppShell from other threads.
2015-12-23 22:03:35 -05:00
Jim Chen
02fea99837 Bug 1232456 - Create EGL surface through widget; r=snorp
This patch makes GLContextProviderEGL create EGL surfaces through
nsWindow/nsIWidget on Android. nsWindow then calls GLController in Java
to actually create the surface.
2015-12-23 22:03:34 -05:00
Jim Chen
97742ebb77 Bug 1227706 - Implement nsWindow::GLControllerSupport; r=snorp
This patch adds native method implementations in GLControllerSupport to
manage compositor creation/pause/resume.
2015-12-23 22:03:34 -05:00
Chenxia Liu
1c3274a9cf Bug 1212611 - Use system notification for website notifications in Android. r=mfinkle 2015-12-03 10:56:04 -05:00
sgiles
51eff860f1 Bug 1174228 - Set up TYPE_APP for navigator.getDeviceStorage for B2GDroid r=dhylands 2015-11-06 05:55:40 +00:00
Nicholas Nethercote
7f19b68d7f Bug 1209812 (part 3) - Rename SurfaceFormat::R5G6B5 as R5G6B5_UINT16. r=Bas. 2015-10-22 23:01:31 -07:00
Nathan Froyd
4e6d8f6705 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
2015-10-18 01:24:48 -04:00
Nathan Froyd
bf7f6dda03 Bug 1207245 - part 3 - switch all uses of mozilla::RefPtr<T> to nsRefPtr<T>; r=ehsan
This commit was generated using the following script, executed at the
top level of a typical source code checkout.

 # Don't modify select files in mfbt/ because it's not worth trying to
 # tease out the dependencies currently.
 #
 # Don't modify anything in media/gmp-clearkey/0.1/ because those files
 # use their own RefPtr, defined in their own RefCounted.h.
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    grep -v 'mfbt/RefPtr.h' | \
    grep -v 'mfbt/nsRefPtr.h' | \
    grep -v 'mfbt/RefCounted.h' | \
    grep -v 'media/gmp-clearkey/0.1/' | \
    xargs perl -p -i -e '
 s/mozilla::RefPtr/nsRefPtr/g; # handle declarations in headers
 s/\bRefPtr</nsRefPtr</g; # handle local variables in functions
 s#mozilla/RefPtr.h#mozilla/nsRefPtr.h#; # handle #includes
 s#mfbt/RefPtr.h#mfbt/nsRefPtr.h#;       # handle strange #includes
'

 # |using mozilla::RefPtr;| is OK; |using nsRefPtr;| is invalid syntax.
find . -name '*.cpp' -o -name '*.mm' | xargs sed -i -e '/using nsRefPtr/d'

 # RefPtr.h used |byRef| for dealing with COM-style outparams.
 # nsRefPtr.h uses |getter_AddRefs|.
 # Fixup that mismatch.
find . -name '*.cpp' -o -name '*.h'| \
    xargs perl -p -i -e 's/byRef/getter_AddRefs/g'
2015-10-18 00:40:10 -04:00
Reuben Morais
6b197b98a6 Bug 748391 - Implement markMessageRead on the Android backend. r=snorp 2015-10-13 01:08:51 -03:00
Reuben Morais
b653b039b4 Bug 1197010 - Implement Android backend for createMessageCursor/createThreadCursor. r=snorp 2015-10-06 19:40:38 -03:00
Wes Kocher
943b98bde3 Backed out changeset 3f9ca060b8d0 (bug 1197010) for android build failures 2015-10-06 16:18:13 -07:00
Reuben Morais
b663e80bd8 Bug 1197010 - Implement Android backend for createMessageCursor/createThreadCursor. r=snorp 2015-10-06 19:40:38 -03:00
Fabrice Desré
227145901a Bug 1204557 - Stop using base64 for native app icons in the application registry r=jchen 2015-09-24 11:53:05 -07:00
Fabrice Desré
d3135a644a Bug 1203428 - E10S for device storage API r=cyu 2015-09-15 11:01:07 -07:00
Kartikaya Gupta
fadc132229 Bug 1201581 - Hook up the syncFrameMetrics call to sync metrics info from the compositor to Java-land on each composite. r=rbarker 2015-09-11 21:58:16 -04:00
Kartikaya Gupta
54c1024407 Bug 1151102 - Add some diagnostic logging. r=snorp 2015-09-09 23:22:19 -04:00
William Chen
8b4785e7f6 Bug 1131470 - Part 2: Update screen configuration HAL to report orientation angle. r=snorp,mwu 2015-08-18 14:55:15 -07:00
William Chen
ecf84fcf22 Bug 1131470 - Part 1: Rename existing use of ScreenOrientation to ScreenOrientationInternal. r=baku 2015-08-18 14:55:09 -07:00
Kartikaya Gupta
f5ed3a019f Bug 1180295 - Implement seamless snapping to the stable state. r=rbarker 2015-08-18 14:27:20 -04:00
Kartikaya Gupta
3766fb3084 Bug 1180295 - Stop clipping the content while the toolbar is in the process of sliding off. r=rbarker 2015-08-18 14:27:19 -04:00
Kartikaya Gupta
ad9c5fec28 Bug 1180295 - Store the viewport width and height as integers instead of floats in ImmutableViewportMetrics. r=rbarker 2015-08-18 14:27:19 -04:00
Kartikaya Gupta
f8cac5f8c4 Bug 1180295 - Rip out the Fennec code to set the screen render offset. r=rbarker 2015-08-18 14:27:18 -04:00
Jim Chen
adaa3af91b Bug 1192082 - Iniialize/deinitialize JNI in nsAppShell; r=snorp
First we need to set the Gecko thread JNIEnv* in nsAndroidStartup, but
after that we can initialize and deinitialize the rest of JNI, including
AndroidBridge, in GeckoAppShell. This makes nsAppShell control the
AndroidBridge lifetime. Over time, parts of the AndroidBridge
functionality will be migrated to nsAppShell.
2015-08-13 00:53:40 -04:00
Jim Chen
3f6082f711 Bug 1192082 - De-clutter AndroidBridge init/deinit; r=snorp
Merge all the init code into AndroidBridge constructor and
AndroidBridge::ConstructBridge; merge all the deinit code into
AndroidBridge destructor and AndroidBridge::DeconstructBridge.

In particular, the SetMainThread call is obsolete and removed.
2015-08-13 00:53:39 -04:00
Jim Chen
dfcf5a84c5 Bug 1192077 - Convert AndroidBridge JNIEnv calls; r=esawin 2015-08-13 00:53:39 -04:00
Jim Chen
fc0d866bbd Bug 1192077 - Move AndroidBridge JNIEnv calls to jni/Utils; r=esawin
Calls like GetJNIForThread should now belong in jni/Utils. Moving the
calls also reduce clutter in AndroidBridge.
2015-08-13 00:53:39 -04:00
Jim Chen
3619ab253f Bug 1189995 - Move GeckoAppShell.pumpMessageLoop to GeckoThread; r=esawin
This method is used by Gecko to pump the Android message loop, and it's
also more suited to GeckoThread than GeckoAppShell.
2015-08-13 00:53:39 -04:00
Birunthan Mohanathas
a0f7c73250 Bug 1191100 - Remove XPIDL signature comments in .cpp files. r=ehsan
Comment-only so DONTBUILD.
2015-08-04 16:17:36 -07:00
Jim Chen
2986b3f565 Bug 1187088 - Use UNIFIED_SOURCES in widget/android; r=snorp
Fix some compiling errors in unified mode due to header dependency
issues.
2015-08-04 17:47:28 -04:00
Jim Chen
05fb61c829 Bug 1186467 - Rewrite NativeJSContainer to use new native JNI scheme; r=snorp
This patch makes NativeJSContainer use per-instance native methods.
NativeJSContainer is also updated to use smart JNI reference classes.
2015-08-04 17:47:28 -04:00
Jim Chen
9fba788ad2 Bug 1182641 - Implement new native methods for ANRReporter; r=snorp 2015-07-29 15:11:15 -04:00
Qiang Lu
c95321bc51 Bug 1178069 - Check devices capability before enable use of vp8 hardware acceleration using android.media.MediaCodecList and android.media.MediaCodecInfo r=jrmuizel 2015-07-24 12:45:55 -07:00
Dylan Roeh
49870b624a Bug 1172567 - Use GetLongField rather than GetIntField for jEGLSurfacePointerField when the API version is >= 20. r=snorp 2015-07-10 10:11:20 -05:00
Jim Chen
2ce6171c93 Bug 1178850 - Make mozilla::jni::Param more intuitive to use; r=snorp 2015-07-10 23:41:35 -04:00
Wes Kocher
0f9c730ffe Backed out 5 changesets (bug 1178850) for android build bustage CLOSED TREE
Backed out changeset 79085d3894e8 (bug 1178850)
Backed out changeset c02b603104ea (bug 1178850)
Backed out changeset d6dab7810669 (bug 1178850)
Backed out changeset 8ee5809f349b (bug 1178850)
Backed out changeset 821b22ce79e1 (bug 1178850)
2015-07-10 14:17:53 -07:00
Jim Chen
411cca6799 Bug 1178850 - Make mozilla::jni::Param more intuitive to use; r=snorp 2015-07-10 16:52:51 -04:00
Robert O'Callahan
a33364b916 Bug 1143575. Android's screenshotting code should invalidate the LayerManagerComposite to ensure composition will actually happen. r=nical
There is some ambiguity about whether ScheduleComposite will necessarily
trigger a composite all the way to nsWindow::DrawWindowUnderlay. Android
robocop tests assume it will, because they rely on DrawWindowOverlay
being called so they can take a screenshot and make progress,
but this is a very fragile assumption. They also rely on the entire
window being painted, which is also a fragile assumption.

This patch improves the situation by explicitly invalidating the current
window area when Android Java code needs to trigger a composite. This avoids
regressions from future patches in this series which make composition bail
out when there is nothing invalid.

The resulting setup is still a bit fragile for my taste but I'm not sure
what the ideal solution would be.
2015-06-12 03:20:04 +12:00
Jim Chen
13969fb4ad Bug 1157908 - Optimize pumpMessageLoop call to use less JNI; r=snorp 2015-04-27 20:52:52 -04:00
Ryan VanderMeulen
177d63cb25 Backed out changesets a486dcc9c233 and 7164a2488b28 (bug 1157908) for various Android test failures.
CLOSED TREE
2015-04-24 16:01:17 -04:00
Jim Chen
b537669366 Bug 1157908 - Optimize pumpMessageLoop call to use less JNI; r=snorp 2015-04-24 14:40:55 -04:00
Jim Chen
94a5229844 Bug 1154952 - Delete AndroidBridge on Gecko shutdown; r=snorp 2015-04-17 12:22:47 -04:00
Randall Barker
c2f98c668e Bug 1148149 - Support Android Presentation API. r=snorp, r=jgilbert 2015-04-10 22:14:00 -04:00
Ryan VanderMeulen
3ebe8fe436 Backed out changeset 9271d92ee0e2 (bug 1148149) for robocop crashes. 2015-04-10 14:52:50 -04:00
Randall Barker
842481bc9c Bug 1148149 - Support Android Presentation API. r=snorp, r=jgilbert 2015-04-08 16:00:00 -04:00
Botond Ballo
c2cac95e8c Bug 1139675 - Simplify the APIs for getting and setting the pres shell resolution. r=mstange,mattwoodrow 2015-03-06 18:07:59 -05:00
Milan Sreckovic
8d6996c4a5 Bug 1019209 - Allow GL initialization without Android bridge, delay some GL string initialization, clean up some AndroidBridge code. r=snorp 2015-02-18 16:50:31 -05:00
Nicholas Nethercote
0247de46d8 Bug 1127201 (attempt 2, part 1) - Replace most NS_ABORT_IF_FALSE calls with MOZ_ASSERT. r=Waldo. 2015-02-09 14:34:50 -08:00
Andrew McCreight
e048a7df33 Back out Bug 1127201 (part 2) for various problems. 2015-02-06 15:04:32 -08:00
Nicholas Nethercote
40ab0270d5 Bug 1127201 (part 2) - Convert all NS_ABORT_IF_FALSE calls to MOZ_ASSERT. r=Waldo. 2015-02-04 20:05:36 -08:00