Граф коммитов

1908 Коммитов

Автор SHA1 Сообщение Дата
Jim Chen dd02faa8d1 Bug 1317604 - 3. Don't create EventDispatcher when JNI is not available; r=me
Follow-up to not create the global EventDispatcher in AndroidBridge when
JNI is not available.
2016-11-21 14:14:32 -05:00
Kilik Kuo f041399009 Bug 1307818-[P2] Setup MediaCrypto for both in-process and out-of-process decode. r=cpearce,jchen
MozReview-Commit-ID: Ehbm2u8LeLg

--HG--
extra : rebase_source : 63ddb16545e254b468e9f72f8c4ad7c957f8b29b
2016-11-16 22:10:01 +08:00
Kilik Kuo 5d9f1e5975 Bug 1307818-[P1] Provide drmStubId for CDMProxy and instantiate {Local,Remote}MediaDrmBridge. r=cpearce,jchen
MozReview-Commit-ID: EFPn4DOZq4D

--HG--
extra : rebase_source : 7f494fe6f6c6db897b50b159fcd001f3181f15cd
2016-11-16 22:09:34 +08:00
Randall Barker f7e2f57d40 Bug 1314466 - part 7, Update JNI Wrappers r=nchen 2016-11-14 16:45:23 -08:00
James Willcox 7a2672f6a2 Bug 1314974 - Make GeckoView on Android work again r=jchen
--HG--
rename : mobile/android/base/java/org/mozilla/gecko/ScreenManagerHelper.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/ScreenManagerHelper.java
2016-11-14 14:55:29 -06:00
Jim Chen ff3982e634 Bug 1307820 - Implement per-GeckoView messaging; r=snorp r=sebastian
Bug 1307820 - 1a. Move GeckoApp EventDispatcher to GeckoView; r=snorp

Make it a GeckoView-specific EventDispatcher instead of
GeckoApp-specific, so that GeckoView consumers can benefit from a
per-view EventDispatcher. In addition, a few events like Gecko:Ready are
moved back to the global EventDispatcher because that makes more sense.

Bug 1307820 - 1b. Don't use GeckoApp EventDispatcher during inflation; r=snorp

During layout inflation, we don't yet have GeckoView and therefore the
GeckoView EventDispatcher, so we should not register events until later,
typically during onAttachedToWindow.

Bug 1307820 - 2. Introduce GeckoBundle; r=snorp

The Android Bundle class has several disadvantages when used for holding
structured data from JS.

The most obvious one is the differentiation between int and double,
which doesn't exist in JS. So when a JS number is converted to either a
Bundle int or double, we run the risk of making a wrong conversion,
resulting in a type mismatch exception when Java uses the Bundle. This
extends to number arrays from JS.

There is one more gotcha when using arrays. When we receive an empty
array from JS, there is no way for us to determine the type of the
array, because even empty arrays in Java have types. We are forced to
pick an arbitrary type like boolean[], which can easily result in a type
mismatch exception when using the array on the Java side.

In addition, Bundle is fairly cumbersome, and we cannot access the inner
structures of Bundle from Java or JNI, making it harder to use.

With these factors in mind, this patch introduces GeckoBundle as a
better choice for Gecko/Java communication. It is almost fully
API-compatible with the Android Bundle; only the Bundle array methods
are different. It resolves the numbers problem by performing conversions
if necessary, and it is a lot more lightweight than Bundle.

Bug 1307820 - 3. Convert BundleEventListener to use GeckoBundle; r=snorp

Convert BundleEventListener from using Bundle to using GeckoBundle.
Because NativeJSContainer still only supports Bundle, we do an extra
conversion when sending Bundle messages, but eventually, as we eliminate
the use of NativeJSContainer, that will go away as well.

Bug 1307820 - 4. Introduce EventDispatcher interfaces; r=snorp

Introduce several new XPCOM interfaces for the new EventDispatcher API,
these interfaces are mostly mirrored after their Java counterparts.

* nsIAndroidEventDispatcher is the main interface for
  registering/unregistering listeners and for dispatching events from
  JS/C++.

* nsIAndroidEventListener is the interface that JS/C++ clients implement
  to receive events.

* nsIAndroidEventCallback is the interface that JS/C++ clients implement
  to receive responses from dispatched events.

* nsIAndroidView is the new interface that every window receives
  that is specific to the window/GeckoView pair. It is passed to chrome
  scripts through window arguments.

Bug 1307820 - 5. Remove EventDispatcher references from gfx code; r=snorp

EventDispatcher was used for JPZC, but NPZC doesn't use it anymore.

Bug 1307820 - 6. General JNI template improvements; r=snorp

This patch includes several improvements to the JNI templates.

* Context::RawClassRef is removed to avoid misuse, as Context::ClassRef
  should be used instead.

* Fix a compile error, in certain usages, in the DisposeNative overload
  in NativeStub.

* Add Ref::IsInstanceOf and Context::IsInstanceOf to mirror the
  JNIEnv::IsInstanceOf call.

* Add Ref::operator* and Context::operator* to provide an easy way to
  get a Context object.

* Add built-in declarations for boxed Java objects (e.g. Boolean,
  Integer, etc).

* Add ObjectArray::New for creating new object arrays of specific types.

* Add lvalue qualifiers to LocalRef::operator= and GlobalRef::operator=,
  to prevent accidentally assigning to rvalues. (e.g.
  `objectArray->GetElement(0) = newObject;`, which won't work as intended.)

Bug 1307820 - 7. Support ownership through RefPtr for native JNI objects; r=snorp

In addition to direct ownership and weak pointer ownership, add a third
ownership model where a native JNI object owns a RefPtr that holds a
strong reference to the actual C++ object. This ownership model works
well with ref-counted objects such as XPCOM objects, and is activated
through the presence of public members AddRef() and Release() in the C++
object.

Bug 1307820 - 8. Implement Gecko-side EventDispatcher; r=snorp

Add a skeletal implementation of EventDispatcher on the Gecko side.
Each widget::EventDispatcher will be associated with a Java
EventDispatcher, so events can be dispatched from Gecko to Java and vice
versa. AndroidBridge and nsWindow will implement
nsIAndroidEventDispatcher through widget::EventDispatcher.

Other patches will add more complete functionality such as
GeckoBundle/JSObject translation and support for callbacks.

Bug 1307820 - 9. Implement dispatching between Gecko/Java; r=snorp

Implement translation between JSObject and GeckoBundle, and use that for
dispatching events from Gecko to Java and vice versa.

Bug 1307820 - 10. Implement callback support; r=snorp

Implement callback support for both Gecko-to-Java events and
Java-to-Gecko events.

For Gecko-to-Java, we translate nsIAndroidEventCallback to a Java
EventCallback through NativeCallbackDelegate and pass it to the Java
listener.

For Java-to-Gecko, we translate EventCallback to a
nsIAndroidEventCallback through JavaCallbackDelegate and pass it to the
Gecko listener.  There is another JavaCallbackDelegate on the Java side
that redirects the callback to a particular thread. For example, if the
event was dispatched from the UI thread, we make sure the callback
happens on the UI thread as well.

Bug 1307820 - 11. Add BundleEventListener support for Gecko thread; r=snorp

Add support for BundleEventListener on the Gecko thread, so that we can
use it to replace any existing GeckoEventListener or NativeEventListener
implementations that require the listener be run synchronously on the
Gecko thread.

Bug 1307820 - 12. Add global EventDispatcher in AndroidBridge; r=snorp

Add an instance of EventDispatcher to AndroidBridge to act as a global
event dispatcher.

Bug 1307820 - 13. Add per-nsWindow EventDispatcher; r=snorp

Add an instance of EventDispatcher to each nsWindow through an
AndroidView object, which implements nsIAndroidView. The nsIAndroidView
is passed to the chrome script through the window argument when opening
the window.

Bug 1307820 - 14. Update auto-generated bindings; r=me

Bug 1307820 - 15. Update testEventDispatcher; r=snorp

Update testEventDispatcher to include new functionalities in
EventDisptcher.

* Add tests for dispatching events to UI/background thread through
  nsIAndroidEventDispatcher::dispatch.

* Add tests for dispatching events to UI/background thread through
  EventDispatcher.dispatch.

* Add tests for dispatching events to Gecko thread through
  EventDispatcher.dispatch.

Each kind of test exercises both the global EventDispatcher through
EventDispatcher.getInstance() and the per-GeckoView EventDispatcher
through GeckoApp.getEventDispatcher().
2016-11-14 21:29:50 +08:00
James Cheng d1f91996e4 Bug 1314530 Part2 - Add isRemote flag to MediaDrmProxy::Create function to determine if it is oop case. r=cpearce
MozReview-Commit-ID: Dqf1C5nDHct

--HG--
extra : rebase_source : aa957ab7b0ac5fb50b12ab4cd4a3db5fc7273488
2016-11-07 14:01:25 +08:00
Kartikaya Gupta 54c54c7a09 Bug 1315706 - Pass a wrapper struct to various CompositorWidget functions. r=dvander
This is the first step in using these functions without having a
LayerManagerComposite at all.

MozReview-Commit-ID: 2zkuB7Ox4Ut

--HG--
extra : rebase_source : b23988275f5851a2fd30bd3e8a9931107a224c66
2016-11-07 21:16:52 -05:00
James Cheng 0615d200fe Bug 1306572 - Part1 - Implement GeckoMediaDrm API as a glue for native CDMProxy and java impl MediaDrmBridge. r=cpearce,jchen
MozReview-Commit-ID: GUKqWvmaaFl

--HG--
extra : rebase_source : 648a4a966c71d7551fe1e52099096b750bf6adbc
2016-11-01 14:39:01 +08:00
Kilik Kuo eb35a8ab7e Bug 1306185-[Part1] Provide Java interface to bridge Gecko's gmp-decryption-like API and MediaDrm API r=cpearce,jchen
MozReview-Commit-ID: 3jxofUxcTA9

--HG--
extra : rebase_source : c00f4d79aeca0fbee0cdf16789a7a6ceadab0317
2016-11-01 19:11:38 +08:00
Carsten "Tomcat" Book 8fb395770c Backed out changeset 12d6d9c37b2d (bug 1306185) causing lint perma failures
--HG--
extra : rebase_source : 91ec26ccd8fb9f462e97a81ce1f89169dc7c745a
2016-11-02 15:24:58 +01:00
Kilik Kuo 1a798e8329 Bug 1306185-[Part1] Provide Java interface to bridge Gecko's gmp-decryption-like API and MediaDrm API r=cpearce,jchen
MozReview-Commit-ID: 3jxofUxcTA9

--HG--
extra : rebase_source : 7469af6b253af8e52e48492cc3275a67df15a82f
2016-11-01 19:11:38 +08:00
bechen 196191c51c Bug 1286738 - part2-HardwareCodecCapabilityUtils: Add HasHWVP9() function to check the vp9 hw decoder. r=jya
MozReview-Commit-ID: 1a89GQixKrO

--HG--
extra : rebase_source : fdbc3df00ff8792c9e27a5f8fb2e9321fbde3468
2016-10-26 16:57:55 +08:00
Dylan Roeh 041f83edff Bug 1262251 - Make openWindow() launch Fennec if it isn't already running. r=catalinb 2016-10-31 14:10:25 -05:00
James Cheng 6e3e960784 Bug 1306219-Part2 Add utility function to invoke MediaDrm and MediaCrypto checking API. r=cpearce,jchen
MozReview-Commit-ID: FFDjmKQh2gP

--HG--
extra : rebase_source : 5ad9a90d78632c6bff6457a38efa7d41d1624992
2016-10-26 10:55:16 +08:00
Jim Chen 33170ddb0e Bug 1307816 - 15. Use eContentCommandDelete for deleting text; r=esawin
Use a separate delete command for deleting text, because using regular
composition events for deleting text doesn't seem to work well in
Facebook comment boxes.
2016-10-25 12:28:54 -04:00
Jim Chen 4413af86a7 Bug 1307816 - 14. Save composition update for later; r=esawin
Turns out the Facebook comment box doesn't work well if we send
compositions alongside set/remove span events. This patch adds back the
update composition flag, but only sends composition when necessary,
which is only right before we send key events.

Because onImeUpdateComposition is no longer associated with a separate
action, it no longer sends back a reply using AutoIMESynchronize.
2016-10-25 12:28:54 -04:00
Jim Chen 6d20bc5a00 Bug 1307816 - 13. Expand RemoveIMEComposition to allow canceling; r=esawin
Expand RemoveIMEComposition with a flag to allow canceling the
composition. Also, remove the "ideographic space" hack from before
because it's no longer applicable (the test remains so we can catch
any regressions).
2016-10-25 12:28:54 -04:00
Jim Chen d79992b10f Bug 1307816 - 7. Flush text before sending focus event; r=esawin
We used to flush the Java side text upon receiving the acknowledge-focus
event, at which point the Java side is waiting on the Gecko side.
Because of the async IME refactoring, we can no longer wait on the Java
side, so we have to flush the text early, before sending the first focus
notification. Also, the acknowledge-focus event is no longer needed as a
result.

Our call to InputMethodManager to restart input also has to changed due
to the change in calling sequence between notifyIME and
notifyIMEContext.
2016-10-25 12:28:53 -04:00
Michelangelo De Simone 07411b2cc6 Bug 1310027 - Remove DOM/mobilemessage and related code. r=Ehsan
MozReview-Commit-ID: ENmSuOCdTnA

--HG--
extra : rebase_source : a178eee07034fb2aa1415b64bec1946230fd1c5e
2016-10-17 17:26:51 -07:00
KuoE0 685b64a883 Bug 1282003 - (Part 3) Add screen ID to nsWindow and GeckoView to get the correct nsScreen and density. r=snorp
MozReview-Commit-ID: Cd9MS2I1RRQ

--HG--
extra : rebase_source : 3e557dc9bb3836cee6ecb86ddeb3c9647221195c
2016-09-29 14:23:56 +08:00
KuoE0 8ebc7fc433 Bug 1282003 - (Part 2) Add screenManagerHelper in Java. r=snorp
MozReview-Commit-ID: BLw6e7dgldt

--HG--
extra : rebase_source : ee5b4bc83e055836b5a739e519d1873252ce6b53
2016-09-23 23:03:00 +08:00
KuoE0 458ea00ba1 Bug 1282003 - (Part 1) Add display type/density info and addScreen/removeScreen function. r=snorp
MozReview-Commit-ID: 52IoWc1xevL

--HG--
extra : rebase_source : c9b0bc4bf83ff32ac952caa1f714740eb5784bb9
2016-10-03 16:23:23 +08:00
Kartikaya Gupta d9a7400119 Bug 1311030 - Remove more code unused since the deletion of JPZ. r=snorp
MozReview-Commit-ID: 1p8aWShTrQf

--HG--
extra : rebase_source : 49d83e86dc9c2b38c7486a04bd7e830d165c34db
2016-10-18 12:34:25 -04:00
Carsten "Tomcat" Book 2a3218cb9a Merge mozilla-central to autoland 2016-10-18 10:45:57 +02:00
James Willcox 632ab10f06 Bug 1308534 - Use e10s in GeckoView r=jchen 2016-10-17 15:05:35 -05:00
John Lin ce8e57f426 Bug 1295106 - Part 1: abstract payload in Sample to support both Java byte array and shared memory. r=snorp
MozReview-Commit-ID: GFcwSyHlR4

--HG--
extra : rebase_source : 442487fcee43d86f974f87c69466e5fbb5d2793f
2016-09-08 11:20:34 +08:00
William Chen 2e57e150b9 Bug 862395 - Part 1: Add requireInteraction property to web notifications. r=baku
--HG--
extra : rebase_source : c1519b7a501427b67638fd3ddacb2ce4e06c3c98
2016-10-12 17:27:40 -07:00
Eric Rahm ce530b28b5 Bug 1310023 - Use nsIArray rather than nsISupportsArray for window args in widget. r=froydnj
This just swaps out the usage nsISupportsArray with nsIArray when opening a
window. |nsIWindowWatcher.OpenWindow| supports both interfaces, so no changes
are needed there.
2016-10-14 12:51:17 -07:00
Kartikaya Gupta 52890eb2b5 Bug 1309228 - Now that the width and height arguments are no longer needed in browser.js, remove those too. r=rbarker
MozReview-Commit-ID: 8F4qiq1qEmk

--HG--
extra : rebase_source : 497851c3b85b00858e493e282157003af75f3ac4
2016-10-11 10:17:28 -04:00
Sebastian Hengst cdcc9e20da Bug 1304829 - rename RELEASE_BUILD to RELEASE_OR_BETA: main part. r=ted,Mossop
MozReview-Commit-ID: 1lCt0xTMV5O
2016-10-08 11:14:49 +02:00
Jim Chen bfe19431c6 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
Kartikaya Gupta 1320fdc1a4 Bug 1307522 - Delete a bunch of classes and related goop no longer used now that JPZ is gone. r=snorp
MozReview-Commit-ID: Jq6xJEO0u9x

--HG--
extra : rebase_source : 3ae338de85676c8c846b393661ce319f3dde86c3
2016-10-04 14:41:13 -04:00
Jim Chen a60e069206 Bug 1306083 - 3. Remove obsolete code from AndroidBridge; r=snorp
Remove the global layer client object from AndroidBridge, now that it's
no longer used. Also remove other associated calls that are no longer
used.
2016-10-03 12:26:00 -04:00
Jim Chen 26526e7e66 Bug 1306083 - 2. Pass in window object for nsIAndroidBridge calls; r=snorp
Make contentDocumentChanged and isContentDocumentDisplayed calls require
the caller to pass in a window object, so that we can get the widget and
GeckoLayerClient from the window object. This way these calls no longer
depend on having a global layer client in AndroidBridge.
2016-10-03 12:26:00 -04:00
Jim Chen 3587a0edd6 Bug 1306083 - 1. Use AndroidCompositorWidget to access GeckoLayerClient; r=kats
Add AndroidCompositorWidget to act as the intermediary between gfx code
and GeckoLayerClient, in place of AndroidBridge. AndroidCompositorWidget
currently inherits from InProcessCompositorWidget, but when Android
eventually supports OOP compositing, it will be made to inherit from
CompositorWidget directly.
2016-10-03 12:26:00 -04:00
Kartikaya Gupta cf44e08da9 Bug 1302736 - Fire click events with a clickCount of 2 when the user does a double-tap gesture with double taps not allowed. r=botond
MozReview-Commit-ID: 5qxHMoHXDXh
2016-09-29 10:05:25 -04:00
Jim Chen dc65b25659 Bug 1305271 - 3. Use @JNITarget for Distribution.getDistributionDirectories; r=snorp
Distribution.getDistributionDirectories is currently annotated with
@WrapForJNI, but because it's used from JS through JNI.jsm, the
@JNITarget annotation is more appropriate.
2016-09-28 23:49:25 -04:00
Jim Chen 3f0f41aeb3 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 39ed66e9ec Bug 1305271 - 1. Move GetClassGlobalRef out of AndroidBridge; r=snorp
Move GetClassGlobalRef in AndroidBridge to GetClassRef in jni/Utils. The
new function now returns a local reference instead of a global
reference.
2016-09-28 23:49:25 -04:00
James Cheng cb9968ef9d Bug 1304258 - Part1 - Add Util Method to Create JNI Array Object. r=jchen
MozReview-Commit-ID: INXNelhQzuR

--HG--
extra : transplant_source : %1F%A3%E1%E3/%B7%5Em%D7%0F%CA%1Ah%B5%16U%9Bn%89U
2016-09-23 14:33:01 +08:00
Carsten "Tomcat" Book a65e4225ef merge mozilla-inbound to mozilla-central a=merge 2016-09-23 12:05:53 +02:00
Jim Chen e4e57ddb6e Bug 1304145 - 6. Update auto-generated bindings; r=me 2016-09-22 16:38:20 -04:00
Jim Chen ae3538f775 Bug 1304145 - 2. Change GeckoAppShell's notification interface; r=nalexander
Instead of using NotificationClient directly from GeckoAppShell, add a
NotificationListener interface, which NotificationClient would
implement. This isolates NotificationClient (and the notification
package) from GeckoAppShell and lets us move the notification package to
Fennec. It also makes a cleaner interface for GeckoView consumers to
implement notification support.
2016-09-22 16:38:19 -04:00
Kilik Kuo dc3bf0fbf7 Bug 1302331 - [Part2] Make CryptoInfo as an argument for method CodecProxy.input. r=jchen,jolin
MozReview-Commit-ID: JeqNNixbRvv

--HG--
extra : rebase_source : c99d875c2a992b098dc4e34d0831f4bb6f8ac7e4
2016-09-22 14:07:56 +08:00
Jim Chen 27143e4fba Bug 1303806 - 3. Update sources to reflect new bindings; r=snorp r=nalexander
Update #includes to use new headers if necessary. Also remove a couple
of functions in AndroidBridge to clean up the code.
2016-09-20 17:42:08 -04:00
Jim Chen fc338f45cf Bug 1303806 - 2. Update auto-generated bindings; r=me 2016-09-20 17:42:08 -04:00
Jim Chen fbee7a5cf3 Bug 1291375 - 6. Move Fennec JNI headers; r=snorp
Move Fennec-specific JNI headers to widget/android/fennec.

--HG--
rename : widget/android/MemoryMonitor.h => widget/android/fennec/MemoryMonitor.h
rename : widget/android/Telemetry.h => widget/android/fennec/Telemetry.h
rename : widget/android/ThumbnailHelper.h => widget/android/fennec/ThumbnailHelper.h
2016-09-16 15:13:48 -04:00
Jim Chen 8e0ad67a7a Bug 1291375 - 5. Use Fennec bindings where needed; r=snorp
Switch include statements from GeckoView bindings to Fennec bindings
where needed.
2016-09-16 15:13:48 -04:00
Jim Chen 396eaa38e0 Bug 1291375 - 4. Update auto-generated bindings; r=me 2016-09-16 15:13:48 -04:00
Jim Chen cabea0c515 Bug 1291375 - 3. Separate Fennec JNI binding generation; r=nalexander r=snorp
Separate compiled JARs into GECKOVIEW_JARS and FENNEC_JARS, and run
AnnotationProcessor separately on each set. The GeckoView bindings are
put into widget/android/GeneratedJNI* (same as before), while the
Fennec-specific bindings are put into widget/android/fennec/FennecJNI*.
2016-09-16 15:13:48 -04:00
Carsten "Tomcat" Book 25a074d342 merge mozilla-inbound to mozilla-central a=merge 2016-09-15 11:59:50 +02:00
Jim Chen c51900d074 Bug 1258470 - 3. Small optimizations in ThumbnailHelper; r=nalexander
This patch includes a small memory optimization of using ArrayList and
`volatile int` for storing the pending thumbnails list and pending
width, instead of using LinkedList and AtomicInteger, respectively.

The patch also fixes a possible race condition due to calling
processNextThumbnail outside of a lock. Now it must be called inside a
lock and its name is changed to reflect that.
2016-09-14 12:43:36 -04:00
Kartikaya Gupta cb317955a1 Bug 1274597 - Update the pause counter in nsAppShell to track multiple resumes as well multiple pauses. r=snorp
MozReview-Commit-ID: CSGFU9dygVI

--HG--
extra : rebase_source : 55b5c68dafe380fa920f6b4f6df1250071823af5
2016-09-12 13:43:08 -04:00
Alastor Wu 9069f0f0d5 Bug 1290467 - part2 : request audio focus for any media instead of audible one. r=snorp
Previous design is only to request audio focus for audible media, but now we
also request focus for non-audible media.

It's simple that the app should own the focus when users start watching media.

MozReview-Commit-ID: 3eJP26h4kh7

--HG--
extra : rebase_source : b35c4ef7d6560635f428eba445f089abd3844bda
2016-09-09 09:49:25 +08:00
Randall Barker 8adc72b766 Bug 1297853 - White flash when creating a private browsing tab r=jchen,kats 2016-09-06 18:01:36 -07:00
Lee Salzman af21c66e1e Bug 725119 - allow Skia as a content backend in gfxPlatform. r=mchang
MozReview-Commit-ID: GjIybnjz4wl
2016-08-31 15:53:08 -04:00
Makoto Kato ec124dbfbd Bug 1299054 - Remove old Android support (API level < 15) from Gecko. r=snorp
MozReview-Commit-ID: K32YSqGsLf9

--HG--
extra : rebase_source : be0d3b3fc1146234efc75229171ea61258c46492
2016-08-30 14:11:55 +09:00
Nicholas Nethercote 5bf56904c4 Bug 1296993 (part 8) - Streamline nsIWidget::CaptureMouse. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Removes the empty implementations from several nsIWidget instances, because
  they can use the nsBaseWidget one.

--HG--
extra : rebase_source : 1c42bb32a662f2659c934a245ecd0025045120a5
2016-08-25 14:10:02 +10:00
Nicholas Nethercote 346d5f4895 Bug 1296993 (part 7) - Streamline nsIWidget::CaptureRollupEvents. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Puts an empty implementation into nsBaseWidget.

- Removes the empty implementations from several nsIWidget instances, because
  they can use the nsBaseWidget one.

--HG--
extra : rebase_source : 2a94a47f1e7fe986d1efc3854c72968a3e28e365
2016-08-25 13:43:27 +10:00
Nicholas Nethercote d960fbd475 Bug 1296993 (part 5) - Streamline nsIWidget::SetWindow{ShadowStyle,TitlebarColor,Class}. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Removes the empty implementations from the android nsIWidget instance,
  because it can use the nsBaseWidget one.

--HG--
extra : rebase_source : f276e1629fcd0ffccb8c8dbec7bba6639a5ebd9f
2016-08-25 13:43:27 +10:00
Nicholas Nethercote 4390cb4f8d Bug 1296993 (part 4) - Streamline nsIWidget::PlaceBehind. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Removes the empty implementations from several nsIWidget instances, because
  they can use the nsBaseWidget one.

--HG--
extra : rebase_source : 82733f682c9e254e20354cc6908955a1e7485ee7
2016-08-25 13:43:27 +10:00
Nicholas Nethercote d8684f0659 Bug 1296993 (part 3) - Streamline nsIWidget::ConstrainPosition. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Puts an empty implementation into nsBaseWidget.

- Removes the empty implementations from several nsIWidget instances, because
  they can use the nsBaseWidget one.

--HG--
extra : rebase_source : ccf64aaa9364d096e1f060ef77be7e8455b11e1f
2016-08-25 13:43:27 +10:00
Nicholas Nethercote 672f94a22d Bug 1296993 (part 2) - Streamline nsIWidget::Set{,Fake}Modal. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Removes the empty implementations from several nsIWidget instances, because
  they can use the nsBaseWidget one.

--HG--
extra : rebase_source : b8a0d9a49b31929dd06af9e61fc57f484af7671d
2016-08-25 13:43:26 +10:00
Nicholas Nethercote ff02e25e13 Bug 1296993 (part 1) - Streamline nsIWidget::ReparentNativeWidget. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Puts an empty implementation into nsBaseWidget.

- Removes the empty implementations from several nsIWidget instances, because
  they can use the nsBaseWidget one.

--HG--
extra : rebase_source : e98b7f9970a920c39e941bb531dfc098125913d1
2016-08-25 13:43:26 +10:00
Jim Chen cb7a422ffa Bug 1296744 - Update auto-generated bindings; r=me 2016-08-26 12:26:46 -04:00
Jim Chen ab92abb418 Bug 1296744 - Make cameraCallbackBridge use new native JNI bindings; r=snorp
Make the GeckoAppShell.cameraCallbackBridge callback use the new native
JNI bindings. Also refactor the relevant code in GeckoAppShell and
CameraStreamImpl.
2016-08-26 12:26:46 -04:00
Jim Chen d924b1c615 Bug 1297836 - Get surface when creating or resuming compositor; r=snorp
Get rid of LayerView.Compositor.getSurface and just pass in the surface
when creating or resuming the compositor. That also lets us get rid of
some synchronization required for getSurface.
2016-08-26 12:25:57 -04:00
Jim Chen 4c8cec0df5 Bug 1297836 - Don't use WindowEvent for LayerViewSupport; r=snorp
Now that nsWindow doesn't own LayerViewSupport, we shouldn't be using
WindowEvent for LayerViewSupport calls. This patch converts the calls
that dispatch to proxy to dispatch directly to Gecko. For
SyncResumeResizeCompositor, it used a proxy to call OnResumedCompositor
on the Gecko thread; this patch makes SyncResumeResizeCompositor post an
event to call OnResumedCompositor directly, without going through the
proxy.
2016-08-26 12:25:57 -04:00
Jim Chen 5a0ee6a6ba Bug 1297462 - Report OutOfMemoryError exception as OOM crash; r=snorp
Detect OutOfMemoryError exceptions and report them as OOM crashes in the
crash report.
2016-08-26 12:25:57 -04:00
Jim Chen da50d1a62c 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 c25482dbd4 Bug 1297462 - Always handle uncaught Java exception in native code if possible; r=snorp
We used to only handle certain exceptions in native code, and otherwise
forward the exception to Java handling code. Handling exceptions in
native code gives us better native stack traces in crash reports, so
this patch makes us always handle uncaught Java exceptions in native
code if possible, and only forward to Java as a fallback.
2016-08-26 12:25:57 -04:00
Randall Barker e2ca496e35 Bug 1297850 - part 1, Remove dead code left behind after JPZ removal. r=jchen 2016-08-25 17:26:42 -07:00
Wes Kocher 1f49af4fc0 Backed out 2 changesets (bug 1297850) for robocop bustage a=backout CLOSED TREE
Backed out changeset e83c9eb279a9 (bug 1297850)
Backed out changeset 979694026137 (bug 1297850)
2016-08-25 11:29:35 -07:00
Randall Barker 4839c748eb Bug 1297850 - part 1, Remove dead code left behind after JPZ removal. r=jchen 2016-08-25 08:14:52 -07:00
Kan-Ru Chen b6d880aca1 Bug 1297276 - Rename mfbt/unused.h to mfbt/Unused.h for consistency. r=froydnj
The patch is generated from following command:

  rgrep -l unused.h|xargs sed -i -e s,mozilla/unused.h,mozilla/Unused.h,

MozReview-Commit-ID: AtLcWApZfES


--HG--
rename : mfbt/unused.h => mfbt/Unused.h
2016-08-24 14:47:04 +08:00
Jim Chen 56dab97730 Bug 1182840 - Make generated SDK bindings depend on annotation processor; r=snorp
Make the generated SDK binding files depend on the annotation processor
jar file, so that changes in the annotation processor will cause the
bindings to regenerate.
2016-08-23 18:55:12 -04:00
Jim Chen 2672917d6f Bug 1296757 - Correctly resume compositor when reattaching; r=snorp
We need to set the compositor-created flag in LayerView correctly when
reattaching to a new LayerView, so that we resume the compositor instead
of trying to create the compositor again, which we already did
previously.

This patch consists of general code cleanup and a new reattach method in
LayerView.Compositor that we call in order to set the compositor-created
flag correctly.
2016-08-23 18:55:12 -04:00
Jim Chen adde79eb82 Bug 1294481 - Update auto-generated bindings; r=me 2016-08-23 18:52:30 -04:00
Jim Chen abb40676c0 Bug 1294481 - Rip out old Java code for AndroidSurfaceTexture; r=snorp
Rip out the old GeckoAppShell methods that implemented a
OnFrameAvailableListener callback system for AndroidSurfaceTexture.
2016-08-23 18:52:30 -04:00
Nicholas Nethercote 00246f9dff Bug 1293596 (part 8) - Make nsIWidget::EnableDragDrop() infallible. r=jimm.
Its return value is only checked in one low-value assertion.

The patch also does the following.

- Removes the Android and GTK overloadings of EnableDragDrop(), which are
  identical to the nsBaseWidget one.

- Streamlines the Windows implementation: fixes the indentation and takes
  advantage of infallible |new|.

--HG--
extra : rebase_source : d090848cf5ea2e92c0188b07559c1e1f3899829f
2016-08-22 09:16:50 +10:00
Nicholas Nethercote 367d94e34e Bug 1293596 (part 7) - Make nsIWidget::Destroy infallible. r=karlt.
--HG--
extra : rebase_source : 403d279c432c70671aa85991868d006c1f2da81d
2016-08-10 10:04:11 +10:00
Nicholas Nethercote 8bc855b22d Bug 1293596 (part 6) - Make nsIWidget::SetSizeMode() infallible. r=mstange,baku.
The only implementation of SetSizeMode() that can fail is the nsCocoaWindow
one, on an Objective C exception, which is unlikely and can be swallowed.

This allows some nsGlobalWindow functions to become infallible as well.

--HG--
extra : rebase_source : 85d54185f63d2c138ee3f3e0e0bfe3b5e805a981
2016-08-22 09:15:49 +10:00
Jim Chen 7b67a45c6a Bug 1294479 - Update auto-generated bindings; r=me 2016-08-19 17:17:25 -04:00
Jim Chen 3bd8918fcf Bug 1294479 - Remove ANativeWindow methods from AndroidBridge; r=snorp
The ANativeWindow methods in AndroidBridge are just wrappers around
ANativeWindow calls in the NDK. We should just use those calls instead
of going through the wrappers.
2016-08-19 17:17:24 -04:00
Jim Chen 39e01a1284 Bug 1294479 - Remove presentation methods from nsWindow/AndroidBridge; r=snorp
Remove the presentation methods from nsWindow/AndroidBridge now that
they are not used. This also eliminates gGeckoViewWindow from nsWindow.
NS_PRESENTATION_WINDOW and NS_PRESENTATION_SURFACE constants are added
for GetNativeData/SetNativeData to provide replacements that support
multiple GeckoViews/nsWindows.
2016-08-19 17:17:24 -04:00
Jim Chen a13d864c61 Bug 1294479 - Add native methods in PresentationMediaPlayerManager; r=snorp
Put presentation surface native methods in PMPM Instead of in
GeckoAppShell, and also make these methods work with multiple GeckoViews
by having them take a GeckoView parameter if necessary. This also lets
us eliminate the static nsWindow reference in nsWindow.cpp.
2016-08-19 17:17:24 -04:00
Randall Barker 6db3f09efd Bug 1294998 - In Fennec only show overscroll effect for root content r=botond 2016-08-19 13:41:30 -07:00
Nicholas Nethercote 3fda0deee8 Bug 1293596 (part 5) - Tweak nsIWidget::MakeFullScreen{,WithNativeTransition}(). r=mstange.
They don't need to be NS_IMETHOD.

The patch also gives nsBaseWidget an InfallibleMakeFullScreen() function, which
avoids the need for some checks.
2016-08-19 09:27:28 +10:00
Nicholas Nethercote cc993d1772 Bug 1293596 (part 4) - Tweak nsIWidget::Create. r=mstange.
They don't need to be NS_IMETHOD, but they should be MOZ_MUST_USE. Adding the
latter catches a few missing checks, which the patch adds.

The patch also gives PuppetWidget an InfallibleCreate() function, which makes
the infallibility of PuppetWidget creation clear.
2016-08-19 09:03:17 +10:00
Nicholas Nethercote 67af4817e9 Bug 1293596 (part 2) - Rework nsIWidget bounds getters. r=mstange.
This patch makes GetBounds(), GetScreenBounds() and GetClientBounds() more
obviously infallible, like existing functions such as GetNaturalBounds() and
GetClientSize(). This results in clearer behaviour in nsCocoaWindow.mm if
Objective C exceptions occur. Along the way, the patch removes some useless
failure checks for these functions.

The patch also removes the NS_IMETHOD from GetRestoredBounds and makes that
function MOZ_MUST_USE.
2016-08-19 09:03:04 +10:00
Jim Chen 767998ce0c 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 f78bb41597 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 16c96d39f8 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 ef76c29f7a 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 f76d27da14 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
Jim Chen f13d6e6a90 Bug 1293709; r=snorp 2016-08-18 18:03:04 -04:00
Wes Kocher 07f8858bf6 Merge inbound to central, a=merge 2016-08-17 16:38:41 -07:00
John Lin f5e84e8425 Bug 1257777 - Part 4: Implement remote codec proxy. r=snorp
MozReview-Commit-ID: 3YEfXXkg2Xi

--HG--
extra : rebase_source : b860ff64bd37a76b8a58edfab39dbe4951c21ba7
2016-08-05 15:23:47 +08:00
Randall Barker fcda0a5859 Bug 1291373 - [geckoview] part 5, Remove Layer and all derived classes r=snorp 2016-08-16 14:33:43 -07:00
Randall Barker 983cc6b2d1 Bug 1291373 - [geckoview] part 4, Remove GeckoEvent and AndroidGeckoEvent r=jchen 2016-08-16 14:33:43 -07:00
Randall Barker 9a3fae864f Bug 1291373 - [geckoview] part 3, Remove MOZ_ANDROID_APZ r=botond,snorp 2016-08-16 14:33:43 -07:00
Randall Barker c1e108f7ad Bug 1291373 - [geckoview] part 1, Remove JavaPanZoomController (JPZ) from mobile/android r=snorp 2016-08-16 14:33:43 -07:00
Wes Kocher d602abb016 Merge inbound to central, a=merge 2016-08-15 14:20:38 -07:00
Makoto Kato 191d54e86a Bug 1293585 - Remove more unused members in AndroidBridge after bug 1255628. r=snorp
MozReview-Commit-ID: C8W4dnY2his

--HG--
extra : rebase_source : 6214c05db368a9868916d6bc2e4703ff921bf997
2016-08-09 17:18:02 +09:00
Jim Chen 1241198df6 Bug 1263808 - Guard against premature LayerView destruction; r=rbarker
It's possible for LayerView to be destroyed before it's finished
initializing on the Gecko thread. In that case, we should not continue
with normal destruction of NPZC. Checking isGeckoReady() in
GeckoLayerClient accomplishes that. Also, guard against a case where
LayerView.onSizeChanged is called after LayerView destruction and
results in a NPE from mCompositor being null.
2016-08-11 15:16:22 -04:00
Nicholas Nethercote e7f10a07fd Bug 1293603 (part 2) - Make Run() declarations consistent. r=erahm.
This patch makes most Run() declarations in subclasses of nsIRunnable have the
same form: |NS_IMETHOD Run() override|.

As a result of these changes, I had to add |override| to a couple of other
functions to satisfy clang's -Winconsistent-missing-override warning.

--HG--
extra : rebase_source : 815d0018b0b13329bb5698c410f500dddcc3ee12
2016-08-08 12:18:10 +10:00
Botond Ballo 77a19465e3 Bug 1290823 - Send Gesture:SingleTap even if we're in a chrome document. r=rbarker
MozReview-Commit-ID: 8fRAVdUpM9j

--HG--
extra : rebase_source : 1e29b96467390b2d11b4b1f8976eda1e4fe9aca0
2016-08-08 15:24:11 -04:00
Botond Ballo 7230352e0f Bug 1290823 - Factor out the code for dispatching a single tap event to observers into its own function. r=rbarker
This is not just a refactoring. It ensures that the early return in the
factored-out code only skips the dispatch to observers, *not* the
additional processing by ChromeProcessController.

MozReview-Commit-ID: F7xCoORKRlG

--HG--
extra : rebase_source : f9ef57d25a54442dd083560029437fcad885149c
2016-08-08 16:12:40 -04:00
James Cheng b85064a2c6 Bug 1291229 - Fix typo for moving Java bindings to mozilla::java namespace. r=jchen
MozReview-Commit-ID: KGAS6EhnwAI
2016-08-05 13:23:44 -04:00
Carsten "Tomcat" Book cf611bec79 merge mozilla-inboudn to mozilla-central a=merge 2016-08-05 12:01:14 +02:00
Carsten "Tomcat" Book 1f5f6ac888 Merge mozilla-central to fx-team 2016-08-04 16:06:09 +02:00
Jim Chen a4fcd0b442 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 2dbcd17eca Bug 1288821 - Update auto-generated bindings; r=me 2016-08-04 09:17:54 -04:00
Jim Chen 52c109b436 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 535fa2c33f Bug 1288821 - Refactor Java notification interface; r=snorp
Refactor the notification-related methods in GeckoAppShell. In
particular, combine showPersistentAlertNotification into
showAlertNotification, and move code out of AndroidBridge.
2016-08-04 09:17:54 -04:00
Jim Chen 8e077be96a Bug 1288821 - Add AndroidAlerts as a nsAlertsService backend; r=snorp
Add a proper backend for nsAlertsService on Android, so we don't need
any special-case code for Android in nsAlertsService itself.
2016-08-04 09:17:54 -04:00
Jim Chen 15acbc5fab 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 8a82ef17c1 Bug 1289208 - Updated auto-generated bindings; r=me 2016-08-04 09:16:05 -04:00
Jim Chen 4b8a8da17c Bug 1289208 - Add native methods to AndroidGamepadManager; r=snorp
Add native method calls to AndroidGamepadManager to replace the gamepad
events in GeckoEvent. Implement those calls in AndroidGamepad.cpp. The
jni/Refs.h change is necessary to fix a compile error when using
jni::BooleanArray.
2016-08-04 09:16:05 -04:00
Jim Chen e5eac1e286 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 56e79ec2bc 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 139bb9bede Bug 1288838 - Update auto-generated bindings; r=me 2016-08-04 09:16:05 -04:00
Jim Chen 3a078bd650 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 580a7782fe 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 a0e70ac337 Bug 1288834 - Update auto-generated bindings; r=me 2016-08-04 09:15:17 -04:00
Jim Chen 4ea7bbbc21 Bug 1288834 - Implement native request method in ZoomedView; r=snorp
Add a native method in ZoomedView to request zoomed view data. The
native method is implemented in the ThumbnailHelper class on the C++
side because it shares a lot of code with the thumbnailing code.
2016-08-04 09:15:17 -04:00
Jim Chen 159d9d9ab2 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 a174ac0918 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
Kartikaya Gupta 6962e151a2 Bug 1273356 - Remove the unused and incorrect ComputeRenderIntegrity codepath for computing checkerboard. r=rbarker
MozReview-Commit-ID: 4i1rmeqrkZ1
2016-08-03 11:59:08 -04:00
James Willcox 26bcde6a5e Bug 1255628 - Replace and/or remove some graphics-related calls in AndroidBridge with NDK equivalents r=jchen 2016-08-04 09:23:34 -05:00
Jim Chen ac1b87c36f Bug 1292323 - Optimize native call dispatching; r=snorp
Refactor the dispatching code to be more streamlined, and add two
optimizations to the way we dispatch a call:

* avoid a pair of unnecessary calls to add/delete the global class ref,
  when dispatching a static call to the Gecko thread without a class ref
  parameter.

* avoid an extra allocation when dispatching to a proxy function.
2016-08-12 23:15:53 -04:00
Jim Chen 0ca0344ec2 Bug 1292323 - Merge NativeStubImpl into NativeStub; r=snorp
Merge all the NativeStubImpl specializations in jni/Natives.h into one
NativeStub, which makes it more organized and facilitates code sharing.
2016-08-12 23:15:53 -04:00
Jim Chen 347603e672 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 36628f0198 Bug 1292323 - Implement JNI thread checking and dispatching; r=snorp
Implement checking the calling thread of a JNI call based on the
calledFrom attribute set in WrapForJNI. Also implement automatic call
dispatching based on the dispatchTo attribute set in WrapForJNI. This
eliminates the use of UsesNativeCallProxy and UsesGeckoThreadProxy.
2016-08-12 23:15:52 -04:00
Jim Chen 7b6a176b60 Bug 1292323 - Update auto-generated bindings; r=me 2016-08-12 23:15:52 -04:00
Jim Chen 0bd1b97d16 Bug 1292323 - Update annotationProcessor to reflect WrapForJNI changes; r=snorp
Update the code generator and related classes in annotation processor to
use the new WrapForJNI flags. Also add some more sanity checking to make
sure the flags are used correctly.
2016-08-12 23:15:52 -04:00
Jim Chen c800eaab74 Bug 1292323 - Update WrapForJNI usages; r=snorp
Replace old flags in WrapForJNI usages with new flags. The calledFrom
and dispatchTo flags are set based on whether the method is native or
non-native, and how the method is used.

Also fix testEventDipatcher to respect NativeJSObject's calledFrom =
"gekco" flag, by moving a test to Gecko thread.
2016-08-12 23:15:52 -04:00
Jim Chen 75ce4d9aaa Bug 1292323 - Move Java UI thread registration to mozglue; r=snorp
We need to register the Java UI thread in native code very early in the
startup process, before libxul registers its JNI entry points. So it
makes sense to register the Java UI thread in mozglue.
2016-08-12 23:15:52 -04:00
Dylan Roeh 62350ea07f Bug 1288467 - This patch removes GLController.java entirely, moving necessary functionality into LayerView and a new Compositor class. r=jchen 2016-08-01 13:21:31 -05:00
Kartikaya Gupta 85fd233d34 Bug 1250024 - Fix touch-tap event coordinate transformations when a fullzoom is applied. r=botond
There were a couple of problems when delivering tap gestures to content with
full zoom applied. One was that the ConverToGecko function converted the coords
into "CSS pixel" space by using the web content's CSS-to-LD scale, but also
applied that on the translation from the chrome area. Moving that conversion
to later in the process (after the coords got passed through TabParent::
AdjustTapToChildWidget) corrected that issue.

The other problem was that bits of code in APZEventState and APZCCallbackHelper
were using the widget->GetDefaultScale() value as the CSS-to-LD scale, but that
omitted the full zoom value. Getting the CSS-to-LD scale from the presShell and
propagating that through corrected that issue.

MozReview-Commit-ID: KdrkdEZslHo
2016-07-29 14:44:29 -04:00
Nicolas Silva 48805c9b3e Bug 1284837 - Disallow implicit conversions from float to integer when creating IntPoint and IntSize objects. r=botond 2016-07-26 16:48:30 +02:00
Makoto Kato b1da9d4a6c Bug 1094729 - Part 2. Support floating candidate window for hardware keyboard on Android 5+. r=jchen
MozReview-Commit-ID: G148os7J9wO

--HG--
extra : rebase_source : 1cbf1cb1a2a6897439effa7f3edf720adc184e15
extra : histedit_source : 2d84917b32d5eca4066e426f94ece36e81c0bdea
2016-07-20 16:19:05 +09:00
Makoto Kato 36599f24c5 Bug 1288616 - Part 2. Remove unused ANativeWindow_fromSurfaceTexture and android_SurfaceTexture_getNativeWindow. r=snorp
MozReview-Commit-ID: 40rPBLzoLPO

--HG--
extra : rebase_source : 4ab9b4a45610df1be14c764a9927f78cc2d0a4a9
extra : histedit_source : 6f6821be672f77c57352355390eab6b0ab909ce1
2016-07-22 14:40:42 +09:00
Makoto Kato a0e21d5dea Bug 1288616 - Part 1. Remove unused AcquireNativeWindowFromSurfaceTexture / ReleaseNativeWindowForSurfaceTexture. r=snorp
MozReview-Commit-ID: 15SfycJX9Wn

--HG--
extra : rebase_source : b746aca45f437b56911b8034e8919cc2b8b6ce2c
extra : histedit_source : f915d9ce02a3fb564d7ff4593c0a2fe022f22de1
2016-07-22 14:39:09 +09:00
Carsten "Tomcat" Book 8b6316ec5f Merge mozilla-central to mozilla-inbound 2016-07-22 11:59:06 +02:00
Carsten "Tomcat" Book 336105a0de merge mozilla-inbound to mozilla-central a=merge 2016-07-22 11:58:02 +02:00
Thomas Zimmermann 9bf5588624 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
Thomas Zimmermann 48ef99e762 Bug 1265386: Fix white-space errors in widget/, r=nfroyd
MozReview-Commit-ID: ATXI7dYFHmA
2016-07-22 10:56:13 +02:00
Jim Chen a7794572ee Bug 1287946 - Improve usage of StringParam in PrefsHelper; r=me
PrefsHelper uses Maybe<> as a replacement for a ternary expression, in
order to work around jni::StringParam's lack of copy constructor.
However, we can add a move constructor to StringParam, which lets us use
it in a ternary expression, and avoid the awkwardness of Maybe<>.
2016-07-21 13:49:05 -04:00