Commit Graph

287 Commits

Author SHA1 Message Date
Jim Chen
0911a44f43 Bug 1343075 - Use GeckoEditableSupport from PuppetWidget; r=masayuki r=rbarker r=snorp r=esawin
Bug 1343075 - 1a. Add TextEventDispatcherListener::GetIMEUpdatePreference; r=masayuki

Add a GetIMEUpdatePreference method to TextEventDispatcherListener to
optionally control which IME notifications are received by NotifyIME.
This patch also makes nsBaseWidget forward its GetIMEUpdatePreference
call to the widget's native TextEventDispatcherListener.

Bug 1343075 - 1b. Implement GetIMEUpdatePreference for all TextEventDispatcherListener; r=masayuki

This patch implements GetIMEUpdatePreference for all
TextEventDispatcherListener implementations, by moving previous
implementations of nsIWidget::GetIMEUpdatePreference.

Bug 1343075 - 2. Allow setting a PuppetWidget's native TextEventDispatcherListener; r=masayuki

In PuppetWidget, add getter and setter for the widget's native
TextEventDispatcherListener. This allows overriding of PuppetWidget's
default IME handling. For example, on Android, the PuppetWidget's native
TextEventDispatcherListener will communicate directly with Java IME code
in the main process.

Bug 1343075 - 3. Add AIDL interface for main process; r=rbarker

Add AIDL definition and implementation for an interface for the main
process that child processes can access.

Bug 1343075 - 4. Set Gecko thread JNIEnv for child process; r=snorp

Add a JNIEnv* parameter to XRE_SetAndroidChildFds, which is used to set
the Gecko thread JNIEnv for child processes. XRE_SetAndroidChildFds is
the only Android-specific entry point for child processes, so I think
it's the most logical place to initialize JNI.

Bug 1343075 - 5. Support multiple remote GeckoEditableChild; r=esawin

Support remote GeckoEditableChild instances that are created in the
content processes and connect to the parent process GeckoEditableParent
through binders.

Support having multiple GeckoEditableChild instances in GeckoEditable by
keeping track of which child is currently focused, and only allow
calls to/from the focused child by using access tokens.

Bug 1343075 - 6. Add method to get GeckoEditableParent instance; r=esawin

Add IProcessManager.getEditableParent, which a content process can call
to get the GeckoEditableParent instance that corresponds to a given
content process tab, from the main process.

Bug 1343075 - 7. Support GeckoEditableSupport in content processes; r=esawin

Support creating and running GeckoEditableSupport attached to a
PuppetWidget in content processes.

Because we don't know PuppetWidget's lifetime as well as nsWindow's,
when attached to PuppetWidget, we need to attach/detach our native
object on focus/blur, respectively.

Bug 1343075 - 8. Connect GeckoEditableSupport on PuppetWidget creation; r=esawin

Listen to the "tab-child-created" notification and attach our content
process GeckoEditableSupport to the new PuppetWidget.

Bug 1343075 - 9. Update auto-generated bindings; r=me
2017-03-07 22:34:39 -05:00
Phil Ringnalda
5a7930cce2 Backed out 2 changesets (bug 1343613) for Android crashes in nsWindow::GeckoViewSupport::EnableEventDispatcher]
Backed out changeset f9632a8f4b14 (bug 1343613)
Backed out changeset 4aa287ae1cec (bug 1343613)
2017-03-07 18:56:35 -08:00
Eugen Sawin
6a4f5002c2 Bug 1343613 - [2.3] Add GeckoView event queuing in EventDispatcher. r=jchen,snorp 2017-03-08 00:19:42 +01:00
Jim Chen
326b38e116 Bug 1337910 - Notify observers from Gecko event queue; r=snorp
Call NotifyObservers from the Gecko event queue instead of the Android
event queue, to better support Promises in notified JS code.
2017-03-06 15:32:37 -05:00
Vedant Sareen
a85a2ad339 Bug 1330907 - Rename Telemetry::ID to Telemetry::HistogramID. r=dexter
Changed |print("enum ID : uint32_t {", file=output)| to |print("enum HistogramID : uint32_t {", file=output)| at line 53 of the file |toolkit/components/telemetry/gen-histogram-enum.py|, and then replaced all the textual occurrences of |Telemetry::ID| to |Telemetry::HistogramID| and |ID| to |HistogramID| in 43 other files.
2017-02-16 00:45:15 +05:30
Tim Huang
180af19637 Bug 1312954 - Part 11: Update speculativeConnect to speculativeConnect2 for Fennec. r=sebastian 2017-02-02 22:18:00 -05:00
Randall Barker
9fc1785356 Bug 1319850 - part 4, Code to initialize and support AndroidUI MessageLoop and nsIThread r=nfroyd 2016-12-23 09:08:35 -08:00
Wes Kocher
9a887d113a Backed out 4 changesets (bug 1319850) for android xpcshell bustage a=backout
Backed out changeset 15b92bb6d810 (bug 1319850)
Backed out changeset e31107c3f677 (bug 1319850)
Backed out changeset 2a8012945a74 (bug 1319850)
Backed out changeset 8717bea884c9 (bug 1319850)
2016-12-22 18:16:34 -08:00
Randall Barker
588f44aa16 Bug 1319850 - part 4, Code to initialize and support AndroidUI MessageLoop and nsIThread r=nfroyd 2016-12-22 16:15:14 -08:00
Jim Chen
3490ca0f0c Bug 1322574 - 2. Measure Android event loop latency; r=snorp
Measure the latency of each event in the Android event loop by tagging
each event with the time that the event was posted, and then recording
the time interval between posting and processing the event. Latencies
for UI events and non-UI events are recorded separately in Telemetry.
2016-12-21 13:37:20 -05:00
Jim Chen
0044906898 Bug 1305498 - Refactor notification code to be more concise; r=sebastian
Bug 1305498 - 1. Remove NotificationClient task queue; r=sebastian

Not sure why we needed a task queue for NotificationClient actions. The
actions all go through IPC and are non-blocking, so it's perfectly fine
to perform them off of whatever thread we're on.

Bug 1305498 - 2. Integrate NotificationHandler et al into NotificationCllient; r=sebastian

There's no reason to have NotificationHandler, AppNotificationClient,
and ServiceNotificationClient all separate from the base
NotificationClient class. This patch adds the functionality of
those three classes to NotificationClient.

The notifications hash map is changed from a ConcurrentHashMap to a
regular HashMap with synchronization because I think the use case here
doesn't warrant the added performance and overhead of ConcurrentHashMap.

NotificationService is changed to match the new NotificationClient. Now
the only job for NotificationService is to set a notification as
foreground, rather than to manage all notifications like before.

NotificationHandler, AppNotificationClient, and
ServiceNotificationClient will be removed in a later patch.

Bug 1305498 - 3. Set NotificationListener in GeckoApplication; r=sebastian

Set NotificationListener once in GeckoApplication.onCreate, instead of
spreading it out in GeckoApp, BrowserApp, and GeckoService. This is
possible because there's no longer a distinction between
AppNotificationClient and ServiceNotificationClient in the new,
consolidated NotificationClient.

Bug 1305498 - 4. Remove obsolete notification classes; r=sebastian

Remove AppNotificationClient, ServiceNotificationClient, and
NotificationHandler, now that they've all been replaced by the new,
consolidated NotificationClient.

Bug 1305498 - 5. Use NotificationReceiver for web notification callbacks; r=sebastian

Previously, web notification callbacks went to GeckoApp directly, but
that presented some problems such as not being able to implement the
on-close callback, because we don't want to launch GeckoApp when the
notification is closed by swiping. This patch makes us use
NotificationReceiver for callbacks, and let NotificationReceiver launch
GeckoApp if necessary.

Bug 1305498 - 6. Don't keep notification cookie in native code; r=sebastian

Keep the notification cookie a single location (in the notification
intent itself), and simplify the native notification handling code.

Bug 1305498 - 7. Use NotificationReceiver for persistent notifications; r=sebastian

Currently, persistent notification callbacks go through a different code
path, but it'd be more consistent and correct to let persistent
notification callbacks go through NotificationReceiver as well.

This takes care of some housekeeping work that was missing for
persistent notifications, such as deleting the mNotifications entry when
the notification is closed.
2016-10-05 21:52:32 -04:00
Jim Chen
31d505d8ba Bug 1305271 - 2. Add and use jni::IsFennec() for Fennec-only code; r=snorp
Add jni::IsFennec() that returns whether we're in a Fennec environment
(defined as the presence of the GeckoApp class). Then, add
jni::IsFennec() checks to places where we use JNI for Fennec-only classes.
2016-09-28 23:49:25 -04:00
Jim Chen
ec9bd113fe Bug 1291375 - 6. Move Fennec JNI headers; r=snorp
Move Fennec-specific JNI headers to widget/android/fennec.
2016-09-16 15:13:48 -04:00
Kartikaya Gupta
4d7e55e90e Bug 1274597 - Update the pause counter in nsAppShell to track multiple resumes as well multiple pauses. r=snorp
MozReview-Commit-ID: CSGFU9dygVI
2016-09-12 13:43:08 -04:00
Jim Chen
fbf8a6fdc0 Bug 1297462 - Combine Java exception stack code paths; r=snorp
Right now we report Java exception stacks through two code paths:
- GeckoAppShell.reportJavaCrash for exceptions caught by Java code
- jni::HandleUncaughtException for exceptions caught by native code

This patch combines the code for reporting the Java stack trace into
ReportException, to make it easier to add new features such as reporting
OOM exceptions.
2016-08-26 12:25:57 -04:00
Jim Chen
596e7c053f Bug 1294077 - Move reportJavaCrash out of AndroidJNI.cpp; r=snorp
Move reportJavaCrash out of AndroidJNI.cpp and re-implement it as a
native method in GeckoAppShellSupport.
2016-08-18 18:04:11 -04:00
Jim Chen
d4e1b42fc2 Bug 1294482 - Move onFullScreenPluginHidden out of AndroidJNI.cpp; r=snorp
Move onFullScreenPluginHidden out of AndroidJNI.cpp and into a new-style
native method in nsAppShell.cpp.
2016-08-18 18:04:11 -04:00
Jim Chen
73e0f51a47 Bug 1294071 - Move dispatchMemoryPressure out of GeckoAppShell; r=snorp
Move dispatchMemoryPressure out of GeckoAppShell and AndroidJNI.cpp
2016-08-18 18:04:11 -04:00
Jim Chen
1671e63e09 Bug 1294069 - Move notifyBatteryChange out of GeckoAppShell; r=snorp
Move notifyBatteryChange out of GeckoAppShell and AndroidJNI.cpp.
2016-08-18 18:04:11 -04:00
Jim Chen
0f6e2b3262 Bug 1294710 - Move UI thread methods out of GeckoAppShell; r=snorp
Move methods to run callbacks on UI thread out of GeckoAppShell and into
GeckoThread.
2016-08-18 18:04:11 -04:00
Randall Barker
7045fbd83c Bug 1291373 - [geckoview] part 4, Remove GeckoEvent and AndroidGeckoEvent r=jchen 2016-08-16 14:33:43 -07:00
Jim Chen
d7d6d9ceda Bug 1292323 - Update usage of UsesNativeCallProxy; r=snorp
Remove uses of UsesNativeCallProxy and UsesGeckoThreadProxy, now that
they are not needed.

Remove cases where we had to invoke a call in a proxy, because the call
is now specified to be invoked directly in the WrapForJNI annotation,
without the need to go through the proxy.

For SmsManager and AlarmReceiver, we no longer need to manually dispatch
everything to the Gecko thread because that's now handled automatically.
2016-08-12 23:15:53 -04:00
Jim Chen
19f96a23f3 Bug 1288821 - Remove observer events in GeckoEvent; r=snorp
Remove the now-obsolete CALL_OBSERVER and REMOVE_OBSERVER events from
GeckoEvent, along with the native-only event ADD_OBSERVER.
2016-08-04 09:17:54 -04:00
Jim Chen
d7e3d4d04f Bug 1288821 - Convert callObserver/removeObserver to native method; r=snorp
Combine the callObserver and removeObserver methods used for notifying
alert listeners into the native method
GeckoAppShell.notifyAlertListener. Keep track of the listener and the
alert cookie on the native side so that we don't need
GeckoAppShell.ALERT_COOKIES anymore.
2016-08-04 09:17:54 -04:00
Jim Chen
313c2b4076 Bug 1289208 - Remove gamepad events from GeckoEvent; r=snorp
Remove the now-obsolete gamepad events from GeckoEvent, along with a few
other used fields in GeckoEvent.
2016-08-04 09:16:05 -04:00
Jim Chen
acfdae4e17 Bug 1289208 - Move gamepad methods out of GeckoAppShell; r=snorp
Move gamepad methods called by native code out of GeckoAppShell and into
AndroidGamepadManager.
2016-08-04 09:16:05 -04:00
Jim Chen
4fbd0df4f5 Bug 1288838 - Remove telemetry events from GeckoEvent; r=snorp
Remove the now-obsolete telemetry events from GeckoEvent.
2016-08-04 09:16:05 -04:00
Jim Chen
d8776994ed Bug 1288838 - Add telemetry native methods to Android telemetry module; r=snorp
Add and use native method calls in Telemetry.java to replace the
telemetry events in GeckoEvent.
2016-08-04 09:16:04 -04:00
Jim Chen
ccf0b0d33a Bug 1288834 - Remove ZOOMEDVIEW event from GeckoEvent; r=snorp
Remove the now-obsolete ZOOMEDVIEW event from GeckoEvent, and the
associated code in nsAppShell and AndroidBridge.
2016-08-04 09:15:17 -04:00
Jim Chen
e835f74b44 Bug 1283888 - Remove LOW_MEMORY event from GeckoEvent; r=me
LOW_MEMORY event is not used anywhere and can be safely removed.
2016-08-04 09:15:16 -04:00
Jim Chen
b8a232a096 Bug 1283888 - Remove NATIVE_POKE event from Java; r=me
Remove the obsolete NATIVE_POKE event from GeckoEvent.
2016-08-04 09:15:16 -04:00
Thomas Zimmermann
ea2f8b5da8 Bug 1265386: Convert code in widget/ to |UniquePtr|, r=nfroyd
This patch replaces all references to |nsAutoPtr| in widget/ by references
to |UniquePtr|. |nsAutoPtr| is deprecated and will go away soon.

MozReview-Commit-ID: 8xAS79wTkPC
2016-07-22 10:56:13 +02:00
Jim Chen
e8f534d407 Bug 1287946 - Update existing code to use mozilla::java; r=me 2016-07-21 13:49:04 -04:00
Jim Chen
71996611fb Bug 1286663 - Remove THUMBNAIL event from GeckoEvent; r=snorp
Remove the now-obsolete THUMBNAIL event from GeckoEvent, as well as its
implementations in nsAppShell and AndroidBridge.
2016-07-21 13:49:04 -04:00
Jim Chen
ff426cafa9 Bug 1286663 - Add request thumbnail native method to ThumbnailHelper; r=snorp
Add and use a request thumbnail native method call in ThumbnailHelper,
instead of using the THUMBNAIL event in GeckoEvent.
2016-07-21 13:49:04 -04:00
Jim Chen
9e607e9dd3 Bug 1286663 - Update existing code using ByteBuffer; r=me 2016-07-21 13:49:04 -04:00
Carsten "Tomcat" Book
95f8860e7a Backed out changeset c402d9e91897 (bug 1265386) 2016-07-21 13:58:46 +02:00
Thomas Zimmermann
f9c80c3f21 Bug 1265386: Convert code in widget/ to |UniquePtr|, r=nfroyd
This patch replaces all references to |nsAutoPtr| in widget/ by references
to |UniquePtr|. |nsAutoPtr| is deprecated and will go away soon.

MozReview-Commit-ID: 8xAS79wTkPC
2016-07-21 13:29:33 +02:00
Chris Peterson
6c0f810682 Bug 1277106 - Part 2: Expand MOZ_UTF16() strings to u"" string literals. r=Waldo 2016-07-20 22:03:25 -07:00
Carsten "Tomcat" Book
be31f19100 Backed out changeset 7cd055ed9366 (bug 1286663) for android bustage on a CLOSED TREE 2016-07-21 08:18:59 +02:00
Carsten "Tomcat" Book
b366a410a1 Backed out changeset 142caeafd119 (bug 1286663) 2016-07-21 08:18:23 +02:00
Carsten "Tomcat" Book
58f5467519 Backed out changeset 684888aeee81 (bug 1287946) 2016-07-21 08:07:12 +02:00
Carsten "Tomcat" Book
8cc058c83a Backed out changeset d8a07729a34c (bug 1286663) 2016-07-21 08:04:52 +02:00
Jim Chen
0ea27022be Bug 1287946 - Update existing code to use mozilla::java; r=me 2016-07-21 00:42:26 -04:00
Jim Chen
d5a351d0e4 Bug 1286663 - Remove THUMBNAIL event from GeckoEvent; r=snorp
Remove the now-obsolete THUMBNAIL event from GeckoEvent, as well as its
implementations in nsAppShell and AndroidBridge.
2016-07-21 00:41:13 -04:00
Jim Chen
e58d307fbe Bug 1286663 - Add request thumbnail native method to ThumbnailHelper; r=snorp
Add and use a request thumbnail native method call in ThumbnailHelper,
instead of using the THUMBNAIL event in GeckoEvent.
2016-07-21 00:41:13 -04:00
Jim Chen
3bd23d057b Bug 1286663 - Update existing code using ByteBuffer; r=me 2016-07-21 00:41:13 -04:00
Jim Chen
b53f227487 Bug 1286925 - Remove screen orientation event from GeckoEvent; r=snorp
Remove the now-obsolete SCREENORIENTATION_CHANGED event from GeckoEvent.
2016-07-20 21:44:48 -04:00
Jim Chen
ddaa038b1c Bug 1286925 - Add orientation change method in GeckoScreenOrientation; r=snorp
Add and use the onOrientationChanged native method in
GeckoScreenOrientation in place of the screen orientation event in
GeckoEvent.
2016-07-20 21:44:48 -04:00
Jim Chen
da993a6fe6 Bug 1286662 - Remove network events from GeckoEvent; r=snorp
Remove the now-obsolete network events from GeckoEvent.
2016-07-20 21:44:48 -04:00