Commit Graph

1451 Commits

Author SHA1 Message Date
Jim Chen
baaf1481bb Bug 1210585 - Fix parameter names; r=me 2015-10-22 17:45:46 -04:00
Jim Chen
fb0d11c7d1 Bug 1210585 - Implement new key event handler in nsWindow; r=esawin
This patch implements a new key event handler in nsWindow to replace the
previous implementation.

nsWindow::HandleSpecialKey was removed because it's a relic from XUL
Fennec and I believe we no longer need it for native Fennec.
2015-10-22 17:45:46 -04:00
Jim Chen
23baf7418f Bug 1210585 - Add native calls for key events; r=esawin
This patch adds a native call to GeckoEditable that will handle key
events instead of using GeckoEvent.KEY_EVENT.
2015-10-22 17:45:46 -04:00
Jim Chen
461a35fdda Bug 1210585 - Generate bindings for KeyEvent; r=snorp
Autogenerate C++ bindings for the SDK class KeyEvent.
2015-10-22 17:45:45 -04:00
Wes Kocher
15395126df Merge m-c to b2ginbound, a=merge CLOSED TREE 2015-10-21 16:40:00 -07:00
Fabrice Desré
0ff32a2c31 Bug 1216839 - Crash when loading icon from android:// protocol with xhr r=sicking 2015-10-21 13:53:08 -07:00
Jim Chen
4c5c5c26db Bug 1207642 - Work around Dalvik bug by realigning stack on JNI entry. r=snorp
Use the force_align_arg_pointer attribute to force realigning stack at JNI entry points.
2015-10-21 08:27:00 -04:00
Phil Ringnalda
da6bb4b0e8 Merge m-c to b-i
CLOSED TREE
2015-10-17 20:00:32 -07:00
Nathan Froyd
e4e2da55c9 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
5254890206 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
Hansu Kim
9eac44fef4 Bug 1112712 - DOM key mapping for soft1 soft2 and call keys r=schien 2015-10-16 11:04:11 -07:00
Jim Chen
39adb41fb5 Bug 1211919 - Allow quitting when asked explicitly; r=snorp
Right now we don't allow quitting Fennec when the last nsWindow closes
(e.g. when the last GeckoView is destroyed) because we want to keep the
Gecko thread running throughout the app process lifetime. However, when
we are asked to quit explicitly through nsIAppStartup::Quit, we should
release the hold on nsAppStartup and allow quitting to continue.
2015-10-15 15:49:48 -04:00
Reuben Morais
311e5eedfc Bug 748391 - Implement markMessageRead on the Android backend. r=snorp 2015-10-13 01:08:51 -03:00
Masayuki Nakano
cf3a801346 Bug 1211352 part.3 nsIWidget::GetIMEupdatePreference() for each platform should not request any notifications while a plugin has focus r=m_kato 2015-10-10 10:21:02 +09:00
Wes Kocher
db715b4430 Merge m-c to inbound, a=merge 2015-10-08 14:35:43 -07:00
Carsten "Tomcat" Book
74653d8267 Merge m-c to fx-team 2015-10-08 16:11:56 +02:00
Reuben Morais
a5e995f133 Bug 1197010 - Implement Android backend for createMessageCursor/createThreadCursor. r=snorp 2015-10-06 19:40:38 -03:00
Jim Chen
8e685e4ad9 Bug 1209574 - Switch GeckoInputConnection for each new GeckoView; r=esawin
The GeckoEditable instance doesn't change for each nsWindow instance.
However, because a GeckoInputConnection is associated with a GeckoView,
when we create a new GeckoView, we need to attach a new
GeckoInputConnection to the existing nsWindow's GeckoEditable. This
patch makes us do that inside nsWindow::Natives::Open by calling
GeckoEditable.OnViewChange.
2015-10-08 15:25:49 -04:00
Jim Chen
ef3aaa66b7 Bug 1209574 - Move GeckoEditable management to nsWindow; r=esawin
This patch removes the GeckoEditable code in GeckoAppShell, and make
nsWindow create a GeckoEditable for itself when opening a window.
Instead of calling GeckoAppShell, nsWindow can now call GeckoEditable
methods directly.
2015-10-08 15:25:49 -04:00
Jim Chen
7212aff00c Bug 1209574 - Generate constants for non-accessible static final fields; r=snorp
We try to generate a C++ constant for static final fields, but that
was failing for inaccessible fields. Now we set the field to be
accessible so that we do end up generating a C++ constant.
2015-10-08 15:25:49 -04:00
Jim Chen
68dcd5a61d Bug 1200426 - Convert PROCESS_OBJECT GeckoEvent to native call; r=snorp
The PROCESS_OBJECT GeckoEvent is used to set the layer client object in
Gecko once Gecko is done loading. This patch converts it to a native
call in GeckoView.Window.
2015-10-08 15:25:49 -04:00
Ahmed Khalil
8586be5f26 Bug 1201926 - Add support for keyed histograms to Fennec's Telemetry module, r=nalexander 2015-10-08 11:32:52 +05:30
Wes Kocher
8ab0090793 Backed out changeset 3f9ca060b8d0 (bug 1197010) for android build failures 2015-10-06 16:18:13 -07:00
Reuben Morais
c7bae84e19 Bug 1197010 - Implement Android backend for createMessageCursor/createThreadCursor. r=snorp 2015-10-06 19:40:38 -03:00
Reuben Morais
d4d8f9414f Bug 1172740 - Implement Android HAL backend for alarms. r=snorp 2015-10-01 14:40:53 -03:00
Jim Chen
d3c9c27de0 Bug 1200343 - Implment PrefsHelper native calls; r=snorp
This patch implements the PrefsHelper native calls for getting prefs;
2015-09-28 12:07:10 -04:00
Jim Chen
dd3fe5ddc0 Bug 1200343 - Remove pref events from GeckoEvent; r=snorp
Now that we use native calls, we can remove the pref-related events from
GeckoEvent.
2015-09-28 12:07:09 -04:00
Jim Chen
4315a454a9 Bug 1200343 - Add native calls for pref events; r=snorp
This patch adds two native calls to PrefsHelper to avoid using
GeckoEvent for getting prefs.
2015-09-28 12:07:09 -04:00
Jim Chen
57d4591467 Bug 1200343 - Add JNI wrapper for object arrays; r=snorp
This patch adds a specialization for jni::Ref<jni::ObjectArray>, which
includes members for getting the length of the array and accessing
array elements.
2015-09-28 12:07:09 -04:00
Jim Chen
e887674366 Bug 1208041 - Fix race condition when coalescing viewport events; r=snorp
We have a pretty messy system of coalescing viewport events that
introduced a race condition during the recent JNI refactoring. This
patch makes that code simpler and fixes the race condition. Instead of
keeping track of a previous viewport event, we now scan the event queue
for previous viewport events. This shouldn't be a perf concern because
we only scan the queue for viewport and native callback events, and stop
scanning as soon as we find another kind of event.
2015-09-28 12:07:09 -04:00
James Willcox
4f60b946e3 Bug 1182665 - Don't try to call JNI methods in nsScreenManagerAndroid if it's not available r=esawin 2015-09-28 09:36:59 -05:00
James Willcox
c90689f1b7 Bug 1182665 - Use a direct JNI call to determine screen size in nsScreenManagerAndroid r=jchen 2015-09-28 09:36:56 -05:00
Wes Kocher
5ad8b759ce Backed out 4 changesets (bug 1200343) for android talos failures
Backed out changeset 67dc42cbf02b (bug 1200343)
Backed out changeset b077acafcebb (bug 1200343)
Backed out changeset e115ca114601 (bug 1200343)
Backed out changeset 905e1fb54fd4 (bug 1200343)
2015-09-25 13:21:58 -07:00
Jim Chen
cc4a1b8406 Bug 1200343 - Implment PrefsHelper native calls; r=snorp
This patch implements the PrefsHelper native calls for getting prefs;
2015-09-25 15:03:35 -04:00
Jim Chen
b0bd9828c5 Bug 1200343 - Remove pref events from GeckoEvent; r=snorp
Now that we use native calls, we can remove the pref-related events from
GeckoEvent.
2015-09-25 15:03:35 -04:00
Jim Chen
67b18214ea Bug 1200343 - Add native calls for pref events; r=snorp
This patch adds two native calls to PrefsHelper to avoid using
GeckoEvent for getting prefs.
2015-09-25 15:03:34 -04:00
Jim Chen
3c7836a62a Bug 1200343 - Add JNI wrapper for object arrays; r=snorp
This patch adds a specialization for jni::Ref<jni::ObjectArray>, which
includes members for getting the length of the array and accessing
array elements.
2015-09-25 15:03:34 -04:00
Wes Kocher
0fa7b5f27e Merge m-c to inbound, a=merge 2015-09-24 17:14:17 -07:00
Fabrice Desré
ac27fb0f29 Bug 1204557 - Stop using base64 for native app icons in the application registry r=jchen 2015-09-24 11:53:05 -07:00
Nicholas Nethercote
f7e8a9e813 Bug 1207741 - Remove gfxIntSize. r=nical.
gfxIntSize is just a typedef of gfx::IntSize, so this is very mechanical. The
only tricky part is deciding for each occurrence whether to replace it with
IntSize, gfx::IntSize or mozilla::gfx::IntSize; in all cases I went with the
shortest one that worked given the existing "using namespace" declarations.
2015-09-23 11:49:05 -07:00
Chris Peterson
dd2fcb9b7d Bug 1207030 - Enable -Wshadow flag in more directories that have no -Wshadow warnings. r=glandium 2015-09-22 21:39:03 -07:00
Jeff Walden
a33c1c9f14 Bug 1179003 - Convert the infallible objectClassIs proxy hook into a fallible getBuiltinClass hook that indicates class type via outparam. r=efaust, r=bz on DOM bits, r=billm on IPC bits 2015-08-28 21:55:40 -07:00
Jim Chen
0ea0adc841 Bug 1197957 - Switch PROFILE_READY state to correspond to profile-after-change; r=snorp
Originally, the GeckoThread PROFILE_READY state was chosen to correspond
to the profile-do-change event, to give priority to JNI code (e.g.
window creation) over other events that may be registered under
profile-after-change event. However, this leads to broken tests because
our testing infra expects things like window creation to happen during
profile-after-change at the earliest. This is because we have to wait
for addons like SpecialPowers to be loaded between profile-do-change and
profile-after-change. This patch changes the PROFILE_READY state to
correspond to the profile-after-change event, so things are consistent
again.
2015-09-21 10:13:33 -04:00
Jim Chen
cf665943cf Bug 1197957 - Dispatch nsWindow native calls to Gecko thread; r=snorp
A C++ class that implments native JNI methods can choose to inherit
UsesGeckoThreadProxy. Once enabled, all native JNI calls on that class
will be automatically dispatched to the Gecko thread as a runnable event.
2015-09-21 10:13:33 -04:00
Jim Chen
0b8df9a2b8 Bug 1197957 - Implement GeckoView.Window.open in nsWindow; r=snorp
nsWindow will implement native methods of GeckoView.Window. This patch
implements the open method, which opens a new window in the same manner
as the CLH, and associates the new nsWindow with the GeckoView.Window
instance.
2015-09-21 10:13:32 -04:00
Jim Chen
802ee8d901 Bug 1197957 - Introduce GeckoView.Window class; r=snorp
GeckoView.Window is a class that acts as the interface between
GeckoView in Java and nsWindow in C++. It will contain native methods
that GeckoView will use to interact with nsWindow.

On initialization, Window.open is called to create a nsWindow and
establish the JNI association between Window and the native nsWindow.
Then, whenever Window instance methods are called, the JNI stubs will
automatically call members of nsWindow.
2015-09-21 10:13:32 -04:00
Jim Chen
1781258f80 Bug 1197976 - Provide compatibility with AndroidGeckoEvent; r=snorp
With the new nsAppShell event loop based on runnable events, we need to
implement AndroidGeckoEvent handling as a runnable event. This patch adds
nsAppShell::LegacyGeckoEvent and adopts its implementation from existing
code that handle AndroidGeckoEvent.
2015-09-21 10:13:32 -04:00
Jim Chen
af8ea109cc Bug 1197976 - Use runnable events for nsAppShell event loop; r=snorp
nsAppShell is currently based on AndroidGeckoEvent objects, which mirror
GeckoEvent on the Java side. With GeckoEvent going away, we will be
gradually removing AndroidGeckoEvent as well. This patch makes the
nsAppShell event loop based on runnable objects, which derive from
nsAppShell::Event. Using runnable objects is much more flexible and allows
us, for example, to post a lambda to the event loop to be run later.
2015-09-21 10:13:32 -04:00
Dylan Roeh
4152d1c9c2 Bug 1189881 - Move GeckoJavaSampler::getProfilerTime out of AndroidJNI.cpp. r=jchen 2015-09-17 16:17:26 -05:00
Jim Chen
da7a161887 Bug 1197974 - Don't exit Gecko on Android even if there's no window; r=snorp
Gecko on Android follows the Android app model where it never stops
until it is killed by the system or told explicitly to quit. Therefore,
we should exit Gecko when there is no window or the last window is closed.
2015-09-18 09:17:10 -04:00
Fabrice Desré
8966c64b68 Bug 1205142 - Disable Android keyboard r=jchen 2015-09-16 09:24:17 -07:00
Fabrice Desré
f5dfaa54c5 Bug 1203428 - E10S for device storage API r=cyu 2015-09-15 11:01:07 -07:00
Masayuki Nakano
85fd7f93a7 Bug 895274 part.263 Rename NS_SIMPLE_GESTURE_MAGNIFY_START to eMagnifyGestureStart r=smaug 2015-09-15 00:14:37 +09:00
Masayuki Nakano
85ba43023a Bug 895274 part.262 Rename NS_SIMPLE_GESTURE_MAGNIFY_UPDATE to eMagnifyGestureUpdate r=smaug 2015-09-15 00:14:37 +09:00
Masayuki Nakano
402f1503b5 Bug 895274 part.261 Rename NS_SIMPLE_GESTURE_MAGNIFY to eMagnifyGesture r=smaug 2015-09-15 00:14:37 +09:00
Masayuki Nakano
093b183f70 Bug 895274 part.244 Rename NS_TOUCH_CANCEL to eTouchCancel r=smaug 2015-09-15 00:14:35 +09:00
Masayuki Nakano
35331f6652 Bug 895274 part.243 Rename NS_TOUCH_END to eTouchEnd r=smaug 2015-09-15 00:14:35 +09:00
Masayuki Nakano
0a89e2e88e Bug 895274 part.242 Rename NS_TOUCH_MOVE to eTouchMove r=smaug 2015-09-15 00:14:35 +09:00
Masayuki Nakano
a89904392c Bug 895274 part.241 Rename NS_TOUCH_START to eTouchStart r=smaug 2015-09-15 00:14:34 +09:00
Kartikaya Gupta
423b524153 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
Wes Kocher
99db0234bd Backed out 4 changesets (bug 1182665) for android reftest orange CLOSED TREE
Backed out changeset 719a4fbded10 (bug 1182665)
Backed out changeset 9559cead8d08 (bug 1182665)
Backed out changeset 4080fb4b9a7f (bug 1182665)
Backed out changeset c8549221c366 (bug 1182665)
2015-09-11 11:21:56 -07:00
Wes Kocher
917fcdd38e Backed out changeset 4b301ec04c21 (bug 1182665) for android reftest orange CLOSED TREE 2015-09-11 11:21:04 -07:00
James Willcox
b582a88a23 Bug 1182665 - Don't try to call JNI methods in nsScreenManagerAndroid if it's not available r=esawin 2015-09-11 09:09:46 -05:00
James Willcox
cd11506884 Bug 1182665 - Use a direct JNI call to determine screen size in nsScreenManagerAndroid r=jchen 2015-09-11 09:09:18 -05:00
Masayuki Nakano
bd1e0cfe88 Bug 895274 part.194 Rename NS_COMPOSITION_COMMIT to eCompositionCommit r=smaug 2015-09-11 21:21:27 +09:00
Masayuki Nakano
4c0bc5fc89 Bug 895274 part.193 Rename NS_COMPOSITION_CHANGE to eCompositionChange r=smaug 2015-09-11 21:21:27 +09:00
Masayuki Nakano
67d08ce0c8 Bug 895274 part.190 Rename NS_COMPOSITION_START to eCompositionStart r=smaug 2015-09-11 21:21:27 +09:00
Masayuki Nakano
11aa392499 Bug 895274 part.188 Rename NS_COMPOSITION_COMMIT_AS_IS to eCompositionCommitAsIs r=smaug 2015-09-11 21:21:26 +09:00
Kartikaya Gupta
d9051e0e5d Bug 1151102 - Add some diagnostic logging. r=snorp 2015-09-09 23:22:19 -04:00
Masayuki Nakano
d8b4a6a011 Bug 895274 part.153 Rename NS_QUERY_TEXT_CONTENT to eQueryTextContent r=smaug 2015-09-10 10:40:05 +09:00
Masayuki Nakano
bf5cb7c5b3 Bug 895274 part.152 Rename NS_QUERY_SELECTED_TEXT to eQuerySelectedText r=smaug 2015-09-10 10:40:05 +09:00
Masayuki Nakano
2e2f4270d9 Bug 895274 part.145 Rename NS_SELECTION_SET to eSetSelection r=smaug 2015-09-08 23:33:38 +09:00
Kartikaya Gupta
e5638d481e Bug 1197824 - Add a zoom-constraints-updated message. r=snorp
With this patch the ZoomConstraintsClient updates get broadcast via the observer
service on Android, allowing code in browser.js to switch over to using it.
2015-09-03 10:30:41 -04:00
Masayuki Nakano
841b1687eb Bug 895274 part.51 Rename NS_CONTEXTMENU to eContextMenu r=smaug 2015-09-01 00:20:06 +09:00
Nicholas Nethercote
69d088e45f Bug 1198334 (part 1) - Replace the opt-in FAIL_ON_WARNINGS with the opt-out ALLOW_COMPILER_WARNINGS. r=glandium.
The patch removes 455 occurrences of FAIL_ON_WARNINGS from moz.build files, and
adds 78 instances of ALLOW_COMPILER_WARNINGS. About half of those 78 are in
code we control and which should be removable with a little effort.
2015-08-27 20:44:53 -07:00
Xidorn Quan
ed18d528f5 Bug 1196163 followup 2 - Fix android bustage. 2015-08-29 12:30:32 +10:00
Xidorn Quan
9368add903 Bug 1196163 followup - Fix build bustage on Android. 2015-08-29 11:43:28 +10:00
Xidorn Quan
d466352a8c Bug 1196163 part 1 - Use nsSizeMode instead of int32_t for nsIWidget::{SizeMode,SetSizeMode}. r=roc 2015-08-29 11:12:41 +10:00
Masayuki Nakano
6ee96dc7a5 Bug 895274 part.38 Rename NS_MOUSE_MOZLONGTAP to eMouseLongTap r=smaug 2015-08-29 08:58:33 +09:00
Masayuki Nakano
1898015491 Bug 895274 part.35 Rename NS_MOUSE_MOZHITTEST to eMouseHitTest r=smaug 2015-08-29 08:58:32 +09:00
Masayuki Nakano
6d175d6d42 Bug 895274 part.29 Rename NS_MOUSE_EXIT_WIDGET to eMouseExitFromWidget r=smaug 2015-08-29 08:58:31 +09:00
Masayuki Nakano
b01e83cd00 Bug 895274 part.28 Rename NS_MOUSE_ENTER_WIDGET to eMouseEnterIntoWidget r=smaug 2015-08-29 08:58:31 +09:00
Masayuki Nakano
1fe1d7a51e Bug 895274 part.25 Rename NS_MOUSE_MOVE to eMouseMove r=smaug 2015-08-29 08:58:29 +09:00
Masayuki Nakano
139fd7c4bd Bug 895274 part.11 Rename NS_KEY_DOWN to eKeyDown r=smaug 2015-08-29 08:58:27 +09:00
Masayuki Nakano
fbeb8a34b6 Bug 895274 part.10 Rename NS_KEY_UP to eKeyUp r=smaug 2015-08-29 08:58:27 +09:00
Masayuki Nakano
56f12a5cf3 Bug 895274 part.9 Rename NS_KEY_PRESS to eKeyPress r=smaug 2015-08-29 08:58:27 +09:00
Masayuki Nakano
efd413f998 Bug 895274 part.5 Rename NS_EVENT_NULL to eVoidEvent r=smaug 2015-08-29 08:58:26 +09:00
Masayuki Nakano
08c1409ff7 Bug 895274 part.3 Make the enum of event messages a named enum IGNORE IDL r=smaug 2015-08-26 21:56:59 +09:00
Jim Chen
dc909a59fe Bug 1192043 - Add support for proxying native calls; r=snorp
If a C++ class implements native calls that all return void, it can
choose to have those calls go through a custom proxy function by
inheriting from mozilla::jni::UsesNativeCallProxy and override the
ProxyNativeCall member.

ProxyNativeCall accepts a rvalue reference to a
functor object specific to each call, and can alter the calling
environment (e.g. dispatch the call to another thread) before issuing
the actual native call through the functor's operator().

Any JNI refs contained in the call are automatically turned into global
refs so that the call can continue to work outside of the original JNI
call.

Native call proxy will be used to implement automatic dispatching of
native calls from the main thread to run on the Gecko thread.
2015-08-25 14:52:16 -04:00
Jim Chen
32507efd58 Bug 1192043 - Fix compile errors in Natives.h; r=snorp
This patch fixes a compile error when using WeakPtr, where Impl* was
expected but SupportsWeakPtr<Impl>* was given.

This patch also fixes a compile error when using the DisposeNative
implementation provided by the autogenerated Natives class. e.g.,

> struct Foo : Bar::Natives<Foo> {
>     using Bar::Natives<Foo>::DisposeNative;
> };

This uses a default implementation of DisposeNative instead of a custom
implementation, and resulted in a compile error that this patch fixes.
2015-08-25 14:52:16 -04:00
Jim Chen
f28b8ba447 Bug 1192043 - Clean up NativeStubImpl template parameters; r=snorp
The mangled name of a NativeStubImpl instantiation is longer than
necessary because of the ReturnType arg. This patch turns it into a bool
parameter. It also reorders the parameters for cleanness.
2015-08-25 14:52:16 -04:00
Jim Chen
d5598ed53a Bug 1192043 - Add more JNIEnv support and null-check refs in JNI ref classs; r=snorp
Add more constructors in LocalRef and GlobalRef to accommodate use cases
where a JNIEnv is already available for performance reasons. Also add
more null-checks when creating references for performance reasons.
2015-08-25 14:52:16 -04:00
Jim Chen
4b257d53f5 Bug 1195496 - Implement speculative connection method in GeckoThread; r=snorp
One thing we do in the Fennec CLH is to make a speculative connection
based on the URI that's passed in. However, by the time the CLH runs,
we're far along into startup, and the advantage of a speculative
connection is reduced. This patch implements making speculative
connection as a method in GeckoThread, so that Fennec can make a
speculative connection without relying on the Fennec CLH.
2015-08-19 18:14:47 -04:00
Jim Chen
a449ec6eca Bug 1195496 - Add PROFILE_READY Gecko state; r=snorp
Many Gecko operations depend on the profile being available. This
patch adds a PROFILE_READY Gecko state so that we can queue calls
until profile is loaded.
2015-08-19 18:14:47 -04:00
Masayuki Nakano
451161e458 Bug 895274 part.1 Rename WidgetEvent::message to WidgetEvent::mMessage r=smaug 2015-08-22 10:34:51 +09:00
William Chen
658b1a13f5 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
b802d90437 Bug 1131470 - Part 1: Rename existing use of ScreenOrientation to ScreenOrientationInternal. r=baku 2015-08-18 14:55:09 -07:00
Kartikaya Gupta
9b35fc55ac Bug 1180295 - Implement seamless snapping to the stable state. r=rbarker 2015-08-18 14:27:20 -04:00
Kartikaya Gupta
50b0e092de 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
ccddd75aaf 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
05af9d0c71 Bug 1180295 - Rip out the Fennec code to set the screen render offset. r=rbarker 2015-08-18 14:27:18 -04:00
Nathan Froyd
dd9d75a87e Bug 1194806 - part 5 - mark function pointer-to-members with JNICALL appropriately; r=snorp,jchen 2015-08-14 23:03:45 -04:00
Nathan Froyd
8804cb6f68 Bug 1194806 - part 4 - use |typename| to refer to trait class typedefs, not |class|; r=jchen 2015-08-14 22:34:16 -04:00
Nathan Froyd
f6e2fd2fd2 Bug 1194806 - part 3 - consistently declare dom::mobilemessage::SmsFilterData as a class; r=snorp 2015-08-14 22:22:50 -04:00
Nathan Froyd
bf74afa6e0 Bug 1194806 - part 2 - mark overrides as such in widget/android/; r=snorp 2015-08-14 22:06:20 -04:00
Nathan Froyd
be953f88b7 Bug 1194806 - part 1 - consistently declare mozilla::jni::detail::TypeAdaptor as a struct; r=jchen
clang doesn't like it when we declare things as a struct in one place
and a class in another.  This change makes all the current usages
consistent and clang happy.
2015-08-14 21:59:27 -04:00
Randall Barker
035223e3e1 Bug 1188225 - Implement ChromeProcessController::HandleDoubleTap. r=botond 2015-08-13 18:26:00 -04:00
Aryeh Gregor
1d86aaeb8e Bug 1179451 - Part 5: Delete nsRefPtr<T>::operator T*()&&. r=froydnj 2015-08-13 15:22:48 +03:00
Jim Chen
cce764c521 Bug 1194360 - Remove use of inherited constructors; r=snorp
GeneratedJNIWrappers.h was updated in bug 1192079 to use inherited
constructors, which is a gcc 4.8 feature. Many people are still using an
older version of NDK which only comes with gcc 4.7.
2015-08-13 16:57:34 -04:00
Jim Chen
f7daa26b3b Bug 1192082 - Followup to iniialize/deinitialize JNI in nsAppShell; r=me 2015-08-13 16:57:34 -04:00
Jim Chen
03727ba844 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
c6ef3b5faa 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
4448fe28dd Bug 1192082 - Expose AndroidBridge arguments through GeckoThread; r=snorp
AndroidBridge needed some arguments during its initialization. We'll
provide those arguments in GeckoThread, which AndroidBridge will access.
2015-08-13 00:53:39 -04:00
Jim Chen
742bfc8ea0 Bug 1192082 - Get rid of GeckoAppShell.nativeInit; r=snorp
Instead of letting AndroidBridge be constructed separately, we'll let
Gecko construct AndroidBridge.
2015-08-13 00:53:39 -04:00
Jim Chen
3c482afe24 Bug 1192082 - Expose GeckoThread states to C++; r=me 2015-08-13 00:53:39 -04:00
Jim Chen
70ccbabd84 Bug 1192079 - Update generated code; r=me 2015-08-13 00:53:39 -04:00
Jim Chen
25353fa7f4 Bug 1192077 - Convert AndroidBridge JNIEnv calls; r=esawin 2015-08-13 00:53:39 -04:00
Jim Chen
2fb5d313bd 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
6d38435454 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
Terrence Cole
783b6b9e6c Bug 1191529 - Remove JSIdArray and AutoIdArray and replace with Rooted<IdVector>; r=mccr8, r=jonco
* * *
imported patch 2_remove_AutoIdArray_gk
2015-08-05 11:02:00 -07:00
Nick Robson
97eeb3e821 Bug 1075089 - Move popup menu frame offset to LookAndFeel and fix default offset for OS X. r=Enn 2015-08-04 16:41:00 -04:00
Mark Capella
18680e5c4f Bug 1191161 - p3 - Surprise update-generated-wrappers changes, r=jchen 2015-08-07 02:09:08 -04:00
Birunthan Mohanathas
e1f0334d06 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
fe3b26a9f6 Bug 1187552 - Make NativeJSContainer use direct ownership model; r=snorp
Make NativeJSContainer/NativeJSObject Java objects own their
corresponding C++ objects directly, to reduce an extra
allocation/deallocation for each object and to simplify code.
2015-08-04 17:47:28 -04:00
Jim Chen
d201a85a4a Bug 1187552 - Support direct ownership of C++ objects by Java objects; r=snorp
Add a direct ownership model where the Java object owns the
corresponding C++ object directly, in addition to the WeakPtr model
where the Java object owns a WeakPtr to the C++ object. The WeakPtr
model is chosen when the implementing C++ class inherits from
SupportsWeakPtr. Otherwise, the direct ownership model is chosen. Under
the direct ownership model, a UniquePtr object must be used to attach
the containing C++ object to a Java object, to ensure ownership is
passed on to the Java object.
2015-08-04 17:47:28 -04:00
Jim Chen
412ca11ada 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
ff569cc4b6 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
cf40f969b5 Bug 1186467 - Update generated JNI bindings; r=me 2015-08-04 17:47:28 -04:00
Jim Chen
1a0434f7e6 Bug 1186467 - Add some JNI utilities for convenience; r=snorp
This patch adds:
* Conversion operator from String::Param to String::LocalRef.
* More overloads of the jni::ThrowException function.
* name members to built-in types like jni::Object, jni::String, etc.
  This allows using jni::Accessors::EnsureClassRef on built-in types
  to get built-in class refs (e.g. jclass for java/lang/String).
* Ability to implicitly convert LocalRef<Cls> to LocalRef<Object>
* Fixes for bugs in LocalRef/GlobalRef where new refs are not created.
* Fixes for inaccurate uses of mozilla::Forward in favor of mozilla::Move
2015-08-04 17:47:28 -04:00
Gian-Carlo Pascutto
3c06fd2862 Bug 1189058 - Don't spin the Event loop while setting up WebRTC + Java. r=snorp 2015-07-30 19:53:38 +02:00
Carsten "Tomcat" Book
25d1763553 Backed out changeset 7edc58c272f1 (bug 1075089) for causing OS X 10.6 marionette failures in test_single_finger_desktop.py testSingleFingerMouse.test_double_tap on a CLOSED TREE 2015-07-31 14:49:40 +02:00
Carsten "Tomcat" Book
304544a901 Merge mozilla-central to mozilla-inbound on a CLOSED TREE 2015-07-31 13:50:49 +02:00
Nick Robson
7a52465904 Bug 1075089 - Moved popup menu frame offset to LookAndFeel, fixed default offset for OS X. r=enn 2015-07-30 15:00:00 +02:00
Sebastian Kaspari
fb841f17b5 Bug 1187260 - Simplify RestrictedProfiles class. r=ally
This patch transforms RestrictedProfiles to delegate isAllowed() and
canLoadUrl() calls to an object implementing the RestrictionConfiguration
interface.

DefaultConfiguration, GuestProfileConfiguration and
RestrictedProfileConfiguration are implementing RestrictionConfiguration
and will take care of handling the restrictions for the different types
of profiles.
2015-07-24 19:47:31 +02:00
Matt Woodrow
6fa6ea7eec Bug 1150944 - Add a flags parameter to GLContextProvider functions instead of a bool. r=jgilbert 2015-07-29 16:35:55 -04:00
Wes Kocher
2d40eac90e Backed out 6 changesets (bug 1150944, bug 1034370) for build failures in WebGLContext.cpp CLOSED TREE
Backed out changeset e2a6160242e5 (bug 1150944)
Backed out changeset 1c510537d20b (bug 1150944)
Backed out changeset 7ae813666ed5 (bug 1150944)
Backed out changeset 2f29ac2e31cd (bug 1150944)
Backed out changeset bf7681b1567e (bug 1150944)
Backed out changeset 79c6b8d014d2 (bug 1034370)
2015-07-29 14:16:17 -07:00
Matt Woodrow
738c3246e7 Bug 1150944 - Add a flags parameter to GLContextProvider functions instead of a bool. r=jgilbert 2015-07-29 16:35:55 -04:00
Jim Chen
222026d59e Bug 1186517 - Generate JNI bindings for Bundle; r=snorp
Add Bundle to the list of SDK classes to generate JNI bindings for. The
generated bindings, like other SDK classes, use XPCOM-style nsresult
to indicate success/failure, and return values through out-parameters.
2015-07-29 15:11:15 -04:00
Jim Chen
1c38f5954d Bug 1186517 - Adjust white spacing in generated files; r=me 2015-07-29 15:11:15 -04:00
Jim Chen
3698d9113b Bug 1186530 - Fix compile error when using native methods with ref parameters; r=snorp
We use Ref::From() inside TypeAdapter<Ref>::ToNative to convert a raw JNI
ref argument to a Ref argument for the C++ function. However, that
generates a compile error, unless we make TypeAdapter<Ref> a friend of
Ref, because we intentionally made Ref's copy constructor private and
returning from TypeAdapter<Ref>::ToNative requires the copy constructor.
2015-07-29 15:11:15 -04:00
Jim Chen
527dd49d80 Bug 1186530 - Add support for instance native pointers; r=snorp
Introduce a JNIObject class that serves as a base class for classes
that wish to use per-instance native methods. JNIObject includes a long
native pointer field that the C++ code accesses to associate the Java
object instance with a C++ object instance.
2015-07-29 15:11:15 -04:00
Jim Chen
6c059423b9 Bug 1182641 - Implement new native methods for ANRReporter; r=snorp 2015-07-29 15:11:15 -04:00
Jim Chen
9db302862d Bug 1182641 - Update autogenerated code; r=me 2015-07-29 15:11:15 -04:00
Byron Campen [:bwc]
22a0cef241 Bug 1188590: Don't sync dispatch if we're already on main. r=snorp, a=abillings 2015-07-28 16:56:34 -05:00
Qiang Lu
9d8feab426 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
Ryan VanderMeulen
da1580e7b7 Merge inbound to m-c. a=merge 2015-07-17 10:26:22 -04:00
David Anderson
966456c514 Move compositor backend decisions into gfxPlatform. (bug 1179051 part 3, r=mattwoodrow) 2015-07-16 15:18:05 -07:00
Dylan Roeh
4f8d4ad5db 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
e8ce7456b2 Bug 1178850 - Update generated files; r=me 2015-07-10 23:41:36 -04:00
Jim Chen
78c1bf334a Bug 1178850 - Add supporting classes for native JNI calls; r=snorp 2015-07-10 23:41:36 -04:00