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

111 Коммитов

Автор SHA1 Сообщение Дата
Alastor Wu a7c687ab30 Bug 1601508 - create a general interface for getting platform-specific media keys event source r=spohl
Create a general interface for getting platform-specific media keys event source in order to remove platform specific code from non-platform related folder `dom/media`.

Differential Revision: https://phabricator.services.mozilla.com/D55892

--HG--
rename : dom/media/mediacontrol/MediaHardwareKeysEventSourceMac.h => widget/cocoa/MediaHardwareKeysEventSourceMac.h
rename : dom/media/mediacontrol/MediaHardwareKeysEventSourceMac.mm => widget/cocoa/MediaHardwareKeysEventSourceMac.mm
extra : moz-landing-system : lando
2019-12-06 20:55:26 +00:00
Agi Sferro cbc3c1528e Bug 1530402 - Provide GeckoImageDecoder. r=snorp
This class allows GeckoView embedders to decode images using Gecko's image
library.

Differential Revision: https://phabricator.services.mozilla.com/D49038

--HG--
extra : moz-landing-system : lando
2019-11-18 16:48:55 +00:00
Noemi Erli 9548dd980a Backed out 13 changesets (bug 1530402, bug 1533156) for causing raptor failures CLOSED TREE
Backed out changeset 6d7b7d22b0c6 (bug 1530402)
Backed out changeset acea32ec5975 (bug 1530402)
Backed out changeset 597e32ad2f5b (bug 1530402)
Backed out changeset 352068fe68bc (bug 1530402)
Backed out changeset e0ae4f16f7ed (bug 1530402)
Backed out changeset 282b033c7daa (bug 1530402)
Backed out changeset 72274a5a821b (bug 1530402)
Backed out changeset 3d3366fe476f (bug 1530402)
Backed out changeset 7400c3fd2b5f (bug 1530402)
Backed out changeset 23d43a425641 (bug 1530402)
Backed out changeset 83b9603f5fa1 (bug 1530402)
Backed out changeset 50c50a80e881 (bug 1533156)
Backed out changeset 5975264fd34b (bug 1530402)

--HG--
rename : toolkit/components/extensions/schemas/browser_action.json => browser/components/extensions/schemas/browser_action.json
rename : toolkit/components/extensions/schemas/page_action.json => browser/components/extensions/schemas/page_action.json
extra : rebase_source : 551e88b6719692756499387e93f797454a336180
2019-11-15 18:57:20 +02:00
Agi Sferro dd3df73eb6 Bug 1530402 - Provide GeckoImageDecoder. r=snorp
This class allows GeckoView embedders to decode images using Gecko's image
library.

Differential Revision: https://phabricator.services.mozilla.com/D49038

--HG--
extra : moz-landing-system : lando
2019-11-15 16:33:45 +00:00
Andreea Pavel 30f5e9486a Backed out 13 changesets (bug 1530402, bug 1533156) for failing test_ext_tabs_query.html on a CLOSED TREE
Backed out changeset aa9499a196e3 (bug 1530402)
Backed out changeset ce12e494a189 (bug 1530402)
Backed out changeset 1b053a203af9 (bug 1530402)
Backed out changeset f57bc0ee284b (bug 1530402)
Backed out changeset 701de7bcb484 (bug 1530402)
Backed out changeset ab7b21969769 (bug 1530402)
Backed out changeset c7b8cc91f245 (bug 1530402)
Backed out changeset e2be10dbad5e (bug 1530402)
Backed out changeset f52a8fedcded (bug 1530402)
Backed out changeset 4fcca36d5b3e (bug 1530402)
Backed out changeset 82b28001164b (bug 1530402)
Backed out changeset 1dc6a4ebc9e1 (bug 1533156)
Backed out changeset ae5ead19921d (bug 1530402)

--HG--
rename : toolkit/components/extensions/schemas/browser_action.json => browser/components/extensions/schemas/browser_action.json
rename : toolkit/components/extensions/schemas/page_action.json => browser/components/extensions/schemas/page_action.json
2019-11-15 05:48:23 +02:00
Agi Sferro d917224183 Bug 1530402 - Provide GeckoImageDecoder. r=snorp
This class allows GeckoView embedders to decode images using Gecko's image
library.

Differential Revision: https://phabricator.services.mozilla.com/D49038

--HG--
extra : moz-landing-system : lando
2019-11-14 19:08:40 +00:00
Csoregi Natalia 4cf34e2666 Backed out 13 changesets (bug 1530402, bug 1533156) for multiple failures e.g columnrule-linestyles.html and test_composite.html. CLOSED TREE
Backed out changeset 9e55fee783ff (bug 1530402)
Backed out changeset f6af9d6a5482 (bug 1530402)
Backed out changeset bf09025d6f98 (bug 1530402)
Backed out changeset 9717ba255826 (bug 1530402)
Backed out changeset e34768ee01db (bug 1530402)
Backed out changeset b540d7b34ef6 (bug 1530402)
Backed out changeset 126af041394b (bug 1530402)
Backed out changeset cf16e02e62cd (bug 1530402)
Backed out changeset 3638fcff5bed (bug 1530402)
Backed out changeset 9630bed0ca2c (bug 1530402)
Backed out changeset 1aa5898efa5f (bug 1530402)
Backed out changeset 7462bbe4e676 (bug 1533156)
Backed out changeset 536a4cac3ffe (bug 1530402)

--HG--
rename : toolkit/components/extensions/schemas/browser_action.json => browser/components/extensions/schemas/browser_action.json
rename : toolkit/components/extensions/schemas/page_action.json => browser/components/extensions/schemas/page_action.json
2019-11-14 03:46:37 +02:00
Agi Sferro aeb4e02ba0 Bug 1530402 - Provide GeckoImageDecoder. r=snorp
This class allows GeckoView embedders to decode images using Gecko's image
library.

Differential Revision: https://phabricator.services.mozilla.com/D49038

--HG--
extra : moz-landing-system : lando
2019-11-13 20:29:08 +00:00
Ricky Stewart c010710916 Bug 1586358 - Replace existing instances of GENERATED_FILES with references to the GeneratedFile template r=firefox-build-system-reviewers,mshal
(Same content as bad revision https://phabricator.services.mozilla.com/D48230, but with a very small change to config/external/icu/data/moz.build to fix the build breakage.)

Try push: https://treeherder.mozilla.org/#/jobs?repo=try&revision=833f6a69fcac689488a640b43e8e0bdaa086a56c

Differential Revision: https://phabricator.services.mozilla.com/D48409

--HG--
extra : moz-landing-system : lando
2019-10-07 21:15:19 +00:00
Daniel Varga 052ef806b5 Backed out changeset 8d95f2c8867b (bug 1586358) for build bustage with FATAL ERROR PROCESSING MOZBUILD FILE. On a CLOSED TREE
--HG--
extra : rebase_source : 325fbad2455afc7f693087e75fa57dba79f4d86b
2019-10-07 20:22:08 +03:00
Ricky Stewart 940d91af38 Bug 1586358 - Replace existing instances of GENERATED_FILES with references to the GeneratedFile template r=nalexander
This patch doesn't remove all references to GENERATED_FILES, but does remove most of them, leaving only those which can't be trivially translated to the new template.

Try push: https://treeherder.mozilla.org/#/jobs?repo=try&revision=e4a25230c3992b9c5519ceb351fb37f6b2bf605e

Differential Revision: https://phabricator.services.mozilla.com/D48230

--HG--
extra : moz-landing-system : lando
2019-10-07 15:31:05 +00:00
Nick Alexander c46ec74815 Bug 1580356 - Remove Fennec (Firefox for Android). r=snorp,mshal
This does many things:

1) stops producing (and consuming) `FennecJNI*` JNI wrappers
2) removes the :app and :thirdparty Gradle projects
3) removes relevant pieces of the Gradle target configuration
4) updates lints
5) purges old configurations

After this commit, the `mobile/android` project/application builds
only GeckoView.

Differential Revision: https://phabricator.services.mozilla.com/D46536

--HG--
extra : moz-landing-system : lando
2019-10-04 20:55:11 +00:00
Eugen Sawin 2708b11d94 Bug 1566367 - [2.0] Add streaming telemetry Gecko-GV bridge. r=snorp,chutten
Differential Revision: https://phabricator.services.mozilla.com/D38899

--HG--
extra : moz-landing-system : lando
2019-08-09 04:51:10 +00:00
J.C. Jones 9b769ac3e9 Bug 1391438 - Support FIDO2 for WebAuthn on Android r=snorp,keeler
Support using the Google Play-provided FIDO2 API for Web Authentication.

FIDO U2F API support  is being handled subsequently in Bug 1550625.

This patch uses the privileged APIs and thus will only work on Fennec Nightly, Beta, and Release builds.

Differential Revision: https://phabricator.services.mozilla.com/D1148

--HG--
extra : moz-landing-system : lando
2019-05-10 16:40:17 +00:00
Mike Hommey 07aab2b391 Bug 1543009 - Move Android widget xpcom components to static registration. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D26891
2019-04-11 16:22:07 +09:00
Chris AtLee 92ae1aa498 Bug 1532341: make widget/android exclusive to android r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D21960

--HG--
extra : moz-landing-system : lando
2019-03-05 17:27:48 +00:00
Tarek Ziadé 2420a8ebb9 Bug 1502917 - Adding ChromeUtils.RequestProcInfo() - r=Ehsan,mstange,kershaw,mhowell
This patch introduces a new module in widget that implements a simple API to
retrieve system information about a process and its threads.

This function is wrapped into ChromeUtils.RequestProcInfo to return information
about processes started by Firefox.

The use case for this API is to monitor Firefox resources usage in projects
like the battery usage done by the data science team.

Differential Revision: https://phabricator.services.mozilla.com/D10069

--HG--
extra : moz-landing-system : lando
2019-02-23 18:07:59 +00:00
Dorel Luca e2b65baabd Backed out changeset cd5dbeee8c5d (bug 1502917) for build bustage. CLOSED TREE 2019-02-22 14:32:42 +02:00
Tarek Ziadé 983d831bbe Bug 1502917 - Adding ChromeUtils.RequestProcInfo() - r=Ehsan,mstange,kershaw,mhowell
This patch introduces a new module in widget that implements a simple API to
retrieve system information about a process and its threads.

This function is wrapped into ChromeUtils.RequestProcInfo to return information
about processes started by Firefox.

The use case for this API is to monitor Firefox resources usage in projects
like the battery usage done by the data science team.

Differential Revision: https://phabricator.services.mozilla.com/D10069

--HG--
extra : moz-landing-system : lando
2019-02-21 23:05:44 +00:00
Lina Cambridge aa4bb114b9 Bug 1494713 - Expose `EventDispatcher::GetGlobalObject()` and `nsWindow::GetEventDispatcher()`. r=snorp
Differential Revision: https://phabricator.services.mozilla.com/D11288

--HG--
extra : moz-landing-system : lando
2018-11-16 17:30:26 +00:00
James Willcox d64eea208c Bug 1405081 - Add WebRequest, WebResponse, and GeckoWebExecutor to GeckoView r=jchen,esawin
This exposes Gecko networking to GeckoView apps. It includes speculative connections, name resolution, and a Fetch-like HTTP API.

Differential Revision: https://phabricator.services.mozilla.com/D7799

squash to executor
2018-11-01 09:52:23 -05:00
Csoregi Natalia f95bae0402 Backed out changeset 9a3a43e8743d (bug 1493081) for bustages on AccessibleWrap.cpp. CLOSED TREE 2018-10-22 12:00:29 +03:00
Jan Horak 9ac0f986e7 Bug 1493081 - Added nsIWidget::GetDesktopToDeviceScaleByScreen for scale factor lookup by window position; r=mattwoodrow
We've added nsIWidget::GetDesktopToDeviceScaleByScreen which will return scale factor of the newly placed window
according to its position on the display. This change is to move implementation to the nsIWidget derived classes.
We need that for GTK Wayland, because on the Wayland we cannot determine absolute position of the window, we
need to use parent's window scale factor. For other platforms the GetDesktopToDeviceScaleByScreen is implemented
in nsBaseWidget.

Differential Revision: https://phabricator.services.mozilla.com/D7290

--HG--
extra : moz-landing-system : lando
2018-10-12 17:03:54 +00:00
James Willcox f1b8f63457 Bug 1475875 - Use ScreenManager on Android r=esawin,jchen
This ensures we have screen information with e10s.

MozReview-Commit-ID: 1zghxZuLqr3
2018-08-07 14:14:32 -05:00
James Willcox 0a29f4fcc4 Backed out Bug 1475875 due to Chromecast breakage. r=backout
MozReview-Commit-ID: IUjur089BVS
2018-07-31 13:11:14 -05:00
James Willcox e20b654b18 Bug 1475875 - Use ScreenManager on Android r=esawin
This makes sure things work under e10s, but also results
in simplified code since we weren't actually using the
features of nsScreenManagerAndroid any more.

MozReview-Commit-ID: 1zghxZuLqr3
2018-07-30 11:21:33 -05:00
Nick Alexander bf575d403e Bug 1444546 - Part 4: Use GENERATED_FILES for Android JNI wrapper generation. r=froydnj,jchen
MozReview-Commit-ID: 1IjoQdEMqr8

--HG--
extra : rebase_source : 9f2e539328d83aa15bce0357a8c7d2722d517b2a
2018-03-06 20:09:37 -08:00
Nick Alexander b2dc9043ec Bug 1419581 - Part 2: Guard media Fennec JNI primitives with MOZ_NATIVE_DEVICES. r=jchen
MozReview-Commit-ID: 3NWZ6BL5Tlr

--HG--
extra : rebase_source : 8cc4621269ac24abe889494ccfa80e6f90c7f428
extra : intermediate-source : 072108d165905e8e6dfdc6720512b6610e30cd68
extra : source : 2ea82ff4a757a0aeb7bdd8cff611d5b92dec14eb
2017-12-06 20:28:04 -08:00
Jonathan Watt 94df748ddb Bug 144114 part 1 - Rename the files for nsPrintOptions and its subclasses. r=bobowen
MozReview-Commit-ID: EcotGH6pXCR

--HG--
rename : widget/android/nsPrintOptionsAndroid.cpp => widget/android/nsPrintSettingsServiceAndroid.cpp
rename : widget/android/nsPrintOptionsAndroid.h => widget/android/nsPrintSettingsServiceAndroid.h
rename : widget/cocoa/nsPrintOptionsX.h => widget/cocoa/nsPrintSettingsServiceX.h
rename : widget/cocoa/nsPrintOptionsX.mm => widget/cocoa/nsPrintSettingsServiceX.mm
rename : widget/gtk/nsPrintOptionsGTK.cpp => widget/gtk/nsPrintSettingsServiceGTK.cpp
rename : widget/gtk/nsPrintOptionsGTK.h => widget/gtk/nsPrintSettingsServiceGTK.h
rename : widget/nsPrintOptionsImpl.cpp => widget/nsPrintSettingsService.cpp
rename : widget/nsPrintOptionsImpl.h => widget/nsPrintSettingsService.h
rename : widget/windows/nsPrintOptionsWin.cpp => widget/windows/nsPrintSettingsServiceWin.cpp
rename : widget/windows/nsPrintOptionsWin.h => widget/windows/nsPrintSettingsServiceWin.h
2017-12-19 10:06:39 +00:00
Randall Barker 7fe4594a76 Bug 1413362 - part 1: Add GeckoVRManager to support GVR WebVR implementation on Android r=jchen,snorp
MozReview-Commit-ID: C7XTF8N1W9a
2017-11-07 10:50:14 -08:00
Sebastian Hengst f2944960ec Backed out 3 changesets (bug 1413362) for causing merge conflicts. r=merge a=merge
Backed out changeset 8b15dfaeecaa (bug 1413362)
Backed out changeset 2d9da0d19d04 (bug 1413362)
Backed out changeset 653c66220a5f (bug 1413362)

--HG--
extra : amend_source : e5c12297b0bb6ebe27a2481e4aac6c0ca8160a1b
2017-11-07 12:41:11 +02:00
Randall Barker 75f309874f Bug 1413362 - part 1: Add GeckoVRManager to support GVR WebVR implementation on Android r=jchen,snorp
MozReview-Commit-ID: C7XTF8N1W9a
2017-11-06 17:43:28 -08:00
Jim Chen 984efaf88e Bug 1406168 - 4. Remove unused code; r=snorp
Remove AndroidJNI.cpp, which is empty. Also remove some JNI string
functions that are unused from AndroidBridge.

MozReview-Commit-ID: CsP4L0TyN48
2017-11-01 14:48:48 -04:00
Jim Chen 5f70c0bf46 Bug 1406168 - 3. Remove AndroidJavaWrappers; r=snorp
Remove AndroidJavaWrappers. Convert nsJNIString usages to use
jni::String and AndroidMotionEvent usages to use java::sdk::MotionEvent.
Move key code constants to GeckoEditableSupport.cpp.

MozReview-Commit-ID: CwcGGADWCNv
2017-11-01 14:48:48 -04:00
Jim Chen ec08814aaa Bug 1406168 - 2. Remove AndroidJNIWrapper; r=snorp
Remove AndroidJNIWrapper. It was primarily used by JNI.jsm and WebRTC.
Usages in WebRTC are replaced with equivalent uses of JNI templates.

MozReview-Commit-ID: DPSeMOtH2wF
2017-11-01 14:48:48 -04:00
Louis Chang a63b8f6139 Bug 1352238 Part 4 - Implement PaintCheckBox/RadioControl and modify the original painting functions. r=mats
MozReview-Commit-ID: Jk6MS5wFA2g

--HG--
extra : rebase_source : 09ff29fddf9297550455af0c6f451c8d12ee0c09
2017-09-05 22:44:57 +08:00
Louis Chang 4ee1a817c5 Bug 1352238 Part 3 - Implement a fake native theme for checkbox/radio form controls on Android. r=mats,snorp
MozReview-Commit-ID: 5g6VJzfZv4Z

--HG--
extra : rebase_source : 7e1d46097b03c95fea0db85a686bc6ea1f6d9ec2
2017-09-05 22:44:42 +08:00
Karl Tomlinson 94ab0b4d5c Bug 1368597 label CompositorWidget and WindowSurface as Graphics BUG_COMPONENT r=rhunt
--HG--
extra : rebase_source : 5f2cf496030a5736424e66be1a3b8a53188d5e22
2017-05-30 14:29:22 +12:00
Joel Maher 99137683e9 Bug 1355089 - add BUG_COMPONENT to widget/* files. r=mstange,jimm
MozReview-Commit-ID: 49Ug2HTqHnf
2017-04-14 05:54:36 -04:00
Phil Ringnalda 9676504256 Backed out changeset 00daf2c5342a (bug 1340661) for Android reftest failures in ua-style-sheet-checkbox-radio-1.html 2017-03-07 20:57:57 -08:00
Mike Conley 9036c3c896 Bug 1340661 - Manually draw checkbox and radio frames on Android. r=snorp,tnikkel
MozReview-Commit-ID: 8IiaRZNJs16

--HG--
extra : rebase_source : 8844292c6bbfec709752a51d293fc3b9bdfdced8
2017-03-03 18:36:12 -05:00
Sebastian Hengst 9913356b39 Backed out changeset 8bd27accc2a0 (bug 1340661) for mass-failing on Android at gfx/thebes/gfxPrefs.h:377. r=backout on a CLOSED TREE 2017-03-07 21:36:20 +01:00
Mike Conley 8c8d67a332 Bug 1340661 - Manually draw checkbox and radio frames on Android. r=snorp,tnikkel
MozReview-Commit-ID: 8IiaRZNJs16

--HG--
extra : rebase_source : 7cedbc046bd7bff552b16d2f10d16af56a9c3f79
2017-03-03 18:36:12 -05:00
Jim Chen e559b260ee Bug 1137567 - Make nsWindow for Android use TextEventDispatcher; r=esawin r=rbarker r=masayuki r=snorp
Bug 1137567 - 1. Allow dispatching key events during composition; r=esawin

We potentially dispatch key events during composition to provide
compatibility for pages that only listen to key events.

Bug 1137567 - 2. Allow keyboard events in DispatchInputEvent when not on APZ thread; r=rbarker

We use nsIWidget::DispatchInputEvent to dispatch our keyboard events on
the Gecko thread, which on Android is not the APZ controller thread. We
should allow these events to pass instead of crashing.

Bug 1137567 - 3. Add GeckoEditableSupport class to support TextEventDispatcher; r=masayuki

Add a separate GeckoEditableSupport class, which implements
TextEventDispatcherListener and uses TextEventDispatcher for IME
operations. The new class is entirely separate from nsWindow to allow it
to be independently used in content processes as well.

Most of the code is copied from nsWindow::GeckoViewSupport, and adapted
to use TextEventDispatcher.

Bug 1137567 - 4. Make nsWindow::WindowPtr available for outside classes; r=snorp

Make nsWindow::WindowPtr available not just for classes inside nsWindow
but for outside classes as well. Also, add support for RefPtr native
objects to nsWindow::NativePtr.

Bug 1137567 - 5. Use GeckoEditableSupport in nsWindow; r=esawin

Use the new GeckoEditableSupport class in nsWindow to replace the
previous code in nsWindow::GeckoViewSupport. GeckoEditable native
methods now go to GeckoEditableSupport instead of GeckoViewSupport.

Several native methods in GeckoEditable are changed from
dispatchTo="proxy" to dispatchTo="gecko", because we no longer need the
special nsWindow::WindowEvent wrapper for our native calls.

Bug 1137567 - 6. Use pushPrefEnv in test_assign_event_data.html; r=masayuki

setAndObserveCompositionPref in test_assign_event_data.html does not
invoke the callback if the pref is already set. This patch changes it to
use SpecialPowers.pushPrefEnv so the callback is always invoked.
2017-03-01 15:29:30 -05:00
Jim Chen c9a4e01072 Bug 1333590 - 6. Remove GeckoEventListener and NativeEventListener; r=snorp r=sebastian
Remove GeckoEventListener and NativeEventListener now that we uniformly
use BundleEventListener. Also remove related classes NativeJSContainer,
NativeJSObject, and GeckoRequest, as well as related tests and C++
code.

The "Messaging" object in Messaging.jsm is replaced with a dummy object
that redirect calls to the global and/or window event dispatcher.
2017-02-01 17:35:45 -05:00
Randall Barker b6467def4a Bug 1328747 - Make Android UI nsThread and MessageLoop creation asynchronous r=froydnj 2017-01-11 09:42:29 -08:00
Randall Barker e5f409853d 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 0992df4676 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 72026a2dc3 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 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