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

2047 Коммитов

Автор SHA1 Сообщение Дата
James Willcox 4a8c671a89 Bug 1322650 - Update JNI bindings r=jchen
MozReview-Commit-ID: EjRjyY8BQxw
2017-05-11 15:42:44 -05:00
James Willcox 8069ecfcd6 Bug 1322650 - Adjust Android Flash support to API changes r=jchen
MozReview-Commit-ID: CmMINaGcTER
2017-05-11 15:42:44 -05:00
Jim Chen 04c08fbf1d Bug 1362195 - 5. Remove GeckoInterface.setFullScreen; r=me
Remove GeckoInterface.setFullScreen now that it's no longer used. r=me
for trivial patch.
2017-05-11 16:40:18 -04:00
Jim Chen 044b6b9b8c Bug 1362195 - 3. Call onFullScreen for full screen changes; r=snorp
Send an event from nsWindow to GeckoView when we enter/exit full screen
mode, and call ContentListener.onFullScreen to notify the implementer.
2017-05-11 16:40:17 -04:00
Jim Chen 34b8e70127 Bug 1362195 - 1. Add EventDispatcher::Dispatch for C++ code; r=snorp
Add an EventDispatcher::Dispatch function for C++ code, so native code
can dispatch events to JS/Java.
2017-05-11 16:40:17 -04:00
Jim Chen 05c9cfa565 Bug 1362191 - 3. Remove GeckoAppShell.scheduleRestart; r=snorp
GeckoAppShell.scheduleRestart was called from XPCOM toolkit when we
needed to restart after the Gecko thread exits. But because we made the
"Gecko:Exited" event contain a "restart" flag, we can handle that
entirely in Java now, so we don't need to call
GeckoAppShell.scheduleRestart anymore.
2017-05-11 16:39:30 -04:00
Jim Chen 87eb61480f Bug 1362191 - 1. Add "restart" flag for "Gecko:Exited" event; r=snorp
In the GeckoBundle data for the "Gecko:Exited" event, indicate whether
we should restart or not through the "restart" flag.
2017-05-11 16:39:29 -04:00
bechen e6109d70d8 Bug 1354853 - Avoid thread racing on Androidridge instance. r=jolin, r=jchen
Add a static boolean sThreadDestroyed which can be accessed only on JAVA UI thread.
Set sThreadDestroyed to true at DestroyOnUiThread that will stop remain tasks to access the Bridge() instance at JAVA thread.

MozReview-Commit-ID: 5JtUFgc6Vl3
2017-05-09 15:05:27 +08:00
Randall Barker 6166881c14 Bug 1361881 - Remove unused function AdjustScrollForSurfaceShift from APZCTreeManager IPC stack r=kats
APZCTreeManager::AdjustScrollForSurfaceShift is only called from the
compositor now, so there is no need to expose this API for callers in
widget code.

MozReview-Commit-ID: BySCQ8N4SuM
2017-05-08 17:02:07 -07:00
Sebastian Hengst f3bfd1e1da Backed out changeset d6516a10c808 (bug 1322650) 2017-05-05 18:53:40 +02:00
Sebastian Hengst 2340610625 Backed out changeset 9d3843274c67 (bug 1322650) 2017-05-05 18:53:36 +02:00
Sebastian Hengst a73c158876 Backed out changeset adf185af7963 (bug 1322650) 2017-05-05 18:53:31 +02:00
James Willcox 2fec319cd5 Bug 1322650 - Add jni::GetAPIVersion() to get Android API version r=jchen
MozReview-Commit-ID: EfPMfS7RmcH
2017-05-05 08:56:39 -05:00
James Willcox daee505699 Bug 1322650 - Update JNI bindings r=jchen
MozReview-Commit-ID: EjRjyY8BQxw
2017-05-05 08:56:38 -05:00
James Willcox 9392b1227a Bug 1322650 - Adjust Android Flash support to API changes r=jchen
MozReview-Commit-ID: CmMINaGcTER
2017-05-05 08:56:36 -05:00
Nicholas Nethercote ea25e62e3c Bug 1360471 (part 4) - Use a bitfield to represent profiler features. r=mstange.
Currently the profiler mostly uses an array of strings to represent which
features are available and in use. This patch changes the profiler core to use
a uint32_t bitfield, which is a much simpler and faster representation.
(nsProfiler and the profiler add-on still use the array of strings, alas.) The
new ProfilerFeature type defines the values in the bitfield.

One side-effect of this change is that profiler_feature_active() now can be
used to query all features. Previously it was just a subset.

Another side-effect is that profiler_get_available_features() no longer incorrectly
indicates support for Java and stack-walking when they aren't supported. (The
handling of task tracer support is unchanged, because the old code handled it
correctly.)
2017-05-01 14:23:34 +10:00
Jim Chen 4ad848635e Bug 1352177 - 3. Update existing binding config files; r=snorp
Update the existing binding config files to the new format. Bundle is no
longer used so Bundle-classes.txt is removed.
2017-05-03 11:36:19 -04:00
Randall Barker dd168bca55 Bug 1359618 - Prevent LayerView from accessing the compositor until UiCompositorControllerChild is open r=jchen
MozReview-Commit-ID: 3SmdJx0QXW8
2017-04-28 08:37:41 -07:00
Jim Chen c3aa7c74d4 Bug 1353799 - 2. Update current composition when setting/removing spans; r=esawin
Update the composition when setting/removing spans, so that we update
the selection/cursor during a composition. However, we must limit any
updating to the current composition only (as indicated by the
keep-current-composition flag), because the Facebook comment box behaves
incorrectly if we repeatedly start and end new compositions.
2017-04-27 20:59:42 -04:00
Jim Chen 96684881fe Bug 1365485 - Remove GeckoInterface.getDefaultChromeURI; r=droeh
Add getChromeUri/setChromeUri APIs to GeckoView, to allow each
GeckoView's chrome URI to be set individually. This lets us remove
GeckoInterface.getDefaultChromeURI. This patch also changes the default
chrome URI to the GeckoView default, and let Fennec specify its chrome
URI (browser.xul) inside GeckoApp.

MozReview-Commit-ID: Gkwbp8VyLcu
2017-05-18 18:09:20 -04:00
Jim Chen b5676f0d84 Bug 1365127 - Move history accessors from GeckoAppShell to GlobalHistory; r=droeh
Move checkUriVisited, markUriVisited, and setUriTitle from
GeckoApp/GeckoAppShell to GlobalHistory. Make them static and directly
accessible from native code, so that we can remove those methods from
GeckoInterface.

MozReview-Commit-ID: JrmlfeKibaW
2017-05-18 18:09:16 -04:00
Jim Chen 5412475e7c Bug 1365126 - Move shortcut creation to static methods in GeckoApplication; r=droeh
Move shortcut creation code in GeckoApp to GeckoApplication, and make
the methods static so that we can call them without a GeckoInterface
instance. This lets us remove GeckoInterface.createShortcut.

MozReview-Commit-ID: AUnQGI02Bk
2017-05-18 18:09:05 -04:00
Jim Chen 9fe9e6e1c3 Bug 1365122 - Move launchOrBringToFront from GeckoAppShell to GeckoApp; r=droeh
Move GeckoAppShell.launchOrBringToFront to GeckoApp, so that we can use
GeckoActivityMonitor to check whether BrowserApp is the current
foreground Activity. This lets us remove GeckoInterface.isForegrounded.

MozReview-Commit-ID: CgjnaNK8OGW
2017-05-18 18:09:04 -04:00
Randall Barker a606cd8b60 Bug 1335895 - Android GeckoView Dynamic Toolbar Version 3 r=botond,dvander,jchen,kats
This version of the Dynamic Toolbar moves the animation of the toolbar
from the Android UI thread to the compositor thread. All animation for
showing and hiding the toolbar are done with the compositor and a static
snapshot of the real toolbar.

MozReview-Commit-ID: BCe8zpbkWQt
2017-04-20 15:15:14 -07:00
Jim Chen 8c1d0c7cd6 Bug 1356563 - Only set global ready state on native widget loading; r=snorp
Our "chrome-document-loaded" observer may detect several different types
of widgets that can exist in the parent process, including the Android
nsWindow, PuppetWidget, etc. We should only set the global state to
ready when the first top-level nsWindow has loaded, and not just any
window.
2017-04-18 17:42:59 -04:00
Sebastian Hengst d8496d0a1f merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: EjT9dcum69m
2017-04-14 23:56:10 +02: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
Masatoshi Kimura 7e1158fd16 Bug 1356023 - Remove nsIScreenManager.systemDefaultScale. r=jfkthame
MozReview-Commit-ID: 6Ha8XrJBSiU

--HG--
extra : rebase_source : a83a64acf01dc9d1a0593c0ddbff76f74809a79b
2017-04-13 07:20:35 +09:00
Eugen Sawin f6e5f80eca Bug 1351169 - [1.2] Update GeckoView's state after finishing window reattachment. r=jchen 2017-04-13 18:08:15 +02:00
Wes Kocher 25d50f2c30 Merge inbound to central, a=merge 2017-04-12 14:39:09 -07:00
Dylan Roeh 739267098f Bug 1322575 - Add private mode support to GeckoView. r=jchen,esawin 2017-04-11 16:53:20 -05:00
Masayuki Nakano 61ce5526c6 Bug 1296220 Rename nsIMEUpdatePreference to mozilla::widget::IMEUpdatePreference r=m_kato
MozReview-Commit-ID: 2rIXTlwA6my

--HG--
extra : rebase_source : a51be3edd717092738c2b5e8ccc4f60540712bfd
2017-04-11 21:24:55 +09:00
John Lin ab9060d531 Bug 1349883 - part 3: resolve decode promise according to buffer status. r=jya
MozReview-Commit-ID: JwOOi56t30Y

--HG--
extra : rebase_source : 48f0cc0bfde3f84cc0574c5a5da6c738112c843f
2017-04-07 17:07:02 +08:00
James Willcox 224324d56d Bug 1344347 - Move Android out-of-process decoder service into GeckoView r=jolin
MozReview-Commit-ID: QTnp95uhQV


--HG--
rename : mobile/android/base/aidl/org/mozilla/gecko/media/FormatParam.aidl => mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/media/FormatParam.aidl
rename : mobile/android/base/aidl/org/mozilla/gecko/media/ICodec.aidl => mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/media/ICodec.aidl
rename : mobile/android/base/aidl/org/mozilla/gecko/media/ICodecCallbacks.aidl => mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/media/ICodecCallbacks.aidl
rename : mobile/android/base/aidl/org/mozilla/gecko/media/IMediaDrmBridge.aidl => mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/media/IMediaDrmBridge.aidl
rename : mobile/android/base/aidl/org/mozilla/gecko/media/IMediaDrmBridgeCallbacks.aidl => mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/media/IMediaDrmBridgeCallbacks.aidl
rename : mobile/android/base/aidl/org/mozilla/gecko/media/IMediaManager.aidl => mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/media/IMediaManager.aidl
rename : mobile/android/base/aidl/org/mozilla/gecko/media/Sample.aidl => mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/media/Sample.aidl
rename : mobile/android/base/aidl/org/mozilla/gecko/media/SessionKeyInfo.aidl => mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/media/SessionKeyInfo.aidl
rename : mobile/android/base/java/org/mozilla/gecko/media/AsyncCodec.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/AsyncCodec.java
rename : mobile/android/base/java/org/mozilla/gecko/media/AsyncCodecFactory.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/AsyncCodecFactory.java
rename : mobile/android/base/java/org/mozilla/gecko/media/Codec.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/Codec.java
rename : mobile/android/base/java/org/mozilla/gecko/media/CodecProxy.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/CodecProxy.java
rename : mobile/android/base/java/org/mozilla/gecko/media/FormatParam.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/FormatParam.java
rename : mobile/android/base/java/org/mozilla/gecko/media/GeckoMediaDrm.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoMediaDrm.java
rename : mobile/android/base/java/org/mozilla/gecko/media/GeckoMediaDrmBridgeV21.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoMediaDrmBridgeV21.java
rename : mobile/android/base/java/org/mozilla/gecko/media/GeckoMediaDrmBridgeV23.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoMediaDrmBridgeV23.java
rename : mobile/android/base/java/org/mozilla/gecko/media/JellyBeanAsyncCodec.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/JellyBeanAsyncCodec.java
rename : mobile/android/base/java/org/mozilla/gecko/media/MediaDrmProxy.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/MediaDrmProxy.java
rename : mobile/android/base/java/org/mozilla/gecko/media/MediaManager.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/MediaManager.java
rename : mobile/android/base/java/org/mozilla/gecko/media/RemoteMediaDrmBridge.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/RemoteMediaDrmBridge.java
rename : mobile/android/base/java/org/mozilla/gecko/media/RemoteMediaDrmBridgeStub.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/RemoteMediaDrmBridgeStub.java
rename : mobile/android/base/java/org/mozilla/gecko/media/SamplePool.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/SamplePool.java
rename : mobile/android/base/java/org/mozilla/gecko/media/SessionKeyInfo.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/SessionKeyInfo.java
rename : mobile/android/base/java/org/mozilla/gecko/mozglue/SharedMemory.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/SharedMemory.java
2017-04-06 14:32:58 -05:00
Andrzej Hunt 86b076ed2e Bug 1338629 - Update annotation processing classpath to reflect SDK 25.3+ r=nalexander
It looks like Google decided to split these jars out a bit, so we need to piece
them all back together.

We could probably just query the sdk version instead, but I'm not 100% sure
know when this setup changed - moreover we don't know when (if?) the paths
are likely to change again. SDK 26.0 still has lint 25.3.1, so the SDK and
lint versions don't appear to be tied.

It seems that only the lint* jars are needed to compile 'build/annotationProcessor',
however we need all the remaining jars in the classpath when running that code
in 'widget/android/bindings'.

MozReview-Commit-ID: GAKwMrVXW55

--HG--
extra : rebase_source : 4e790aaccae8ccc3f151c39bf1ef4404b2581d7a
2017-03-30 18:55:02 -07:00
Wes Kocher 483fea00ef Merge inbound to central, a=merge 2017-03-31 17:48:18 -07:00
Munro Mengjue Chiang 8c7e3d6e57 Bug 1265755 - Support encoder case for CodecProxy; r=jolin
MozReview-Commit-ID: 4cEZQs8spo7

--HG--
extra : rebase_source : 33989d576cbd15194c5d740745fd5ddf35958346
2017-03-30 08:51:12 +08:00
Munro Mengjue Chiang 0d0b538b3e Bug 1265755 - separate JavaCallbacksSupport class declaration to a different header file; r=jolin
MozReview-Commit-ID: 7Vj3G47n2bu

--HG--
extra : rebase_source : 9dac50f9a4c405b2461e7f677c58beef7f634f6e
2017-03-30 08:30:23 +08:00
Eugen Sawin 80710c9297 Bug 1346542 - [1.2] Move state holder to GeckoView::Window and set ready state when reattaching to window. r=jchen 2017-03-31 13:12:21 +02:00
Kan-Ru Chen 1e8d2f14b9 Bug 1194751 - Part 6.1 change nsScreenManagerAndroid::ScreenForId to a concrete method. r=snorp
nsIScreen::GetId and nsIScreenManager::ScreenForId is removed in patch
part 6. These methods are still used by Fennec on Android to implement
Presentation API support so I changed them to concrete methods in
nsScreenAndroid and nsScreenManagerAndroid.

nsScreenAndroid and nsScreenManagerAndroid does not use the generic
Screen and ScreenManager class because its implementation is quite
different.

MozReview-Commit-ID: 4rxxIgvNxMb

--HG--
extra : rebase_source : 1f8a437f6a9465bd79ce9be37c9e3de6f6d7b2fd
2017-03-09 19:30:53 +08:00
Kan-Ru Chen 8ba424eabb Bug 1194751 - Part 6. Use mozilla::widget::ScreenManager in content process. r=mconley
This is the most important part of the patch series. It removes the
PScreenManager protocol and use ScreenManager directly in the content
processes.

Initial and subsequent updates are sent via PContent::RefreshScreens.
struct ScreenDetails are kept to serialize Screen over IPC.

nsIScreenManager::ScreenForNativeWidget is removed because
nsIWidget::GetWidgetScreen can replace it. nsIScreen::GetId is removed
because it's not useful for the more general Screen class.

MozReview-Commit-ID: 5dJO3isgBuQ

--HG--
extra : rebase_source : 06aa4e4fd56e2b2af1e7483aee7c0cc7f35bdb97
2017-03-09 19:30:26 +08:00
Kan-Ru Chen 31ae8ff78f Bug 1194751 - Part 2. Remove unused nsIScreen::LockMinimumBrightness and related methods. r=snorp
It's not used anywhere in gecko or addons. Remove it will make
removing PScreenManager easier.

MozReview-Commit-ID: K3BHnktO7wU

--HG--
extra : rebase_source : 6f481759d1fb82d222ea6a92ebfd50dbb6cb63d5
2017-03-09 19:16:29 +08:00
Kan-Ru Chen 841c421ce8 Bug 1194751 - Part 1. Remove nsIScreenManager::GetNumberOfScreens. r=jimm
It's not used anywhere. Remove it will make removing PScreenManager
easier.

MozReview-Commit-ID: 5dn8kDhTZVl

--HG--
extra : rebase_source : 96b8ddb18deee94ca256bfa118b60ceacfd2d677
2017-03-09 19:16:24 +08:00
Alastor Wu 7dad8534a8 Bug 1347648 - part1 : only request Android audio focus for audible media. r=snorp
For non-audible media, we shouldn't request audio focus because it might interrupt
other app who is playing music or podcast.

MozReview-Commit-ID: 25iWJktgKUw

--HG--
extra : rebase_source : ca96240967131d2d6cab00f7a39c0ef4e6f2df78
2017-03-27 10:59:04 +08:00
Makoto Kato 4d5b7f9b2d Bug 1350169 - Part 1. Remove Android backend for Alarm API. r=snorp
After landing bug 1300884 and B2G is dead, Web Alarm API is removed.  So we should remove Android backend for Alarm API. This implementation was for B2GDroid.

MozReview-Commit-ID: ItmjOQrVSgs

--HG--
extra : rebase_source : 1844b81c515c043245c9bed034698a1904f03286
2017-03-24 10:35:38 +09:00
Jim Chen b00f1b075f Bug 1344892 - Let native calls dispatch to XPCOM event queue; r=snorp
Bug 1344892 - 1. Add option to dispatch to priority queue; r=snorp

For the regular "gecko" option, change to dispatching to the XPCOM event
queue, and add a new "gecko_priority" option that dispatches calls to
the widget event queue. GeckoThread.waitOnGecko is changed to wait on
both the widget queue and the XPCOM queue. nsAppShell::SyncRunEvent is
changed to avoid a possible deadlock condition involving locking
sAppShellLock twice.

Bug 1344892 - 2. Update dispatchTo = "gecko" options; r=snorp

Update some existing dispatchTo = "gecko" options to "gecko_priority",
which typically involve UI events or JNI management calls like
disposeNative. As a rule, disposeNative is dispatched to the queue with
the least priority among the queues that other native members of the
same class dispatch to (i.e. "gecko_priority" if all other native
members dispatch to "gecko_priority", or "gecko" if any native members
dispatch to "gecko").

Bug 1344892 - 3. Update auto-generated bindings; r=me
2017-03-16 23:30:54 -04:00
Nicholas Nethercote e981884dca Bug 1347348 (part 5) - Remove an unnecessary profiler_is_active() calls. r=mstange.
profiler_get_profile() will return nullptr is the profiler is not active, so
there's no need to call profiler_is_active() just beforehand.

--HG--
extra : rebase_source : 9b7d4396599dc10230c5215492c9f63c48a4ff5e
2017-03-07 16:55:00 +11:00
Iris Hsiao 4f73e7bc5f Backed out changeset 4f5a93b89b2b (bug 1344892) for Mochitest rc4 failures in Android 2017-03-15 17:37:39 +08:00
Jim Chen 61f2f7ff7b Bug 1344892 - Let native calls dispatch to XPCOM event queue; r=snorp
Bug 1344892 - 1. Add option to dispatch to priority queue; r=snorp

For the regular "gecko" option, change to dispatching to the XPCOM event
queue, and add a new "gecko_priority" option that dispatches calls to
the widget event queue.

Bug 1344892 - 2. Update dispatchTo = "gecko" options; r=snorp

Update some existing dispatchTo = "gecko" options to "gecko_priority",
which typically involve UI events or JNI management calls like
disposeNative.

Bug 1344892 - 3. Update auto-generated bindings; r=me
2017-03-14 17:47:16 -04:00
David Major fa1854f65a Bug 1344629 - Part 7.5: Add constructors for jni::StringParam that accept literal strings. r=dbaron
MozReview-Commit-ID: 8vSf7TGwPmD

--HG--
extra : rebase_source : d212421502542b0efa22e3b22ce94a69f781e012
2017-03-14 15:26:36 +13:00
David Major dc67bfc9a3 Bug 1344629 - Part 6: Rewrite unnecessary uses of nsLiteralString. r=dbaron
There's an antipattern where nsLiteralString is used as an unnecessary intermediary in converting from CharT* to CharT*,
e.g. CallAFunctionThatTakesACharPointer(NS_LITERAL_CSTRING("foo").get());
or
NS_NAMED_LITERAL_STRING(foo, "abc");
CallAFunctionThatTakesACharPointer(foo.get());

This patch rewrites the callsites that can be trivially changed to use char*/char16_t*.

I'd somewhat like to remove nsTLiteralString::get() altogether, but in code that's less straightforward than these examples, get() is useful enough to keep.

MozReview-Commit-ID: Kh1rUziVllo

--HG--
extra : rebase_source : c21a65694d6e1c42fd88f73632f7ac8f38d005ae
2017-03-14 15:26:27 +13:00
Iris Hsiao 5cece96e1c Backed out 12 changesets (bug 1344629) for stylo build bustage
Backed out changeset cf4273d3ac30 (bug 1344629)
Backed out changeset a96390e044e0 (bug 1344629)
Backed out changeset d9b330f9bc24 (bug 1344629)
Backed out changeset 2b460fe020af (bug 1344629)
Backed out changeset 0ada91b0452e (bug 1344629)
Backed out changeset 083304fcd6bd (bug 1344629)
Backed out changeset 53d7d1ce2c97 (bug 1344629)
Backed out changeset 55eee7078ae4 (bug 1344629)
Backed out changeset 7d3c06b3eca9 (bug 1344629)
Backed out changeset e5df14c3db61 (bug 1344629)
Backed out changeset 636095ff2815 (bug 1344629)
Backed out changeset 0be052ad24c1 (bug 1344629)
2017-03-14 11:52:24 +08:00
David Major 04420e097d Bug 1344629 - Part 7.5: Add constructors for jni::StringParam that accept literal strings. r=dbaron
MozReview-Commit-ID: 8vSf7TGwPmD

--HG--
extra : rebase_source : d212421502542b0efa22e3b22ce94a69f781e012
2017-03-14 15:26:36 +13:00
David Major 40f4821701 Bug 1344629 - Part 6: Rewrite unnecessary uses of nsLiteralString. r=dbaron
There's an antipattern where nsLiteralString is used as an unnecessary intermediary in converting from CharT* to CharT*,
e.g. CallAFunctionThatTakesACharPointer(NS_LITERAL_CSTRING("foo").get());
or
NS_NAMED_LITERAL_STRING(foo, "abc");
CallAFunctionThatTakesACharPointer(foo.get());

This patch rewrites the callsites that can be trivially changed to use char*/char16_t*.

I'd somewhat like to remove nsTLiteralString::get() altogether, but in code that's less straightforward than these examples, get() is useful enough to keep.

MozReview-Commit-ID: Kh1rUziVllo

--HG--
extra : rebase_source : c21a65694d6e1c42fd88f73632f7ac8f38d005ae
2017-03-14 15:26:27 +13:00
Sebastian Hengst 772d7c9a4f Backed out changeset ffeffef36f34 (bug 1344892) on request of developer for issues with Android reftests. r=backout on a CLOSED TREE 2017-03-10 21:53:00 +01:00
Jim Chen d2521e4b81 Bug 1344752 - Guard against blurring when replacing text; r=esawin
Inside OnImeReplaceText, an action can cause the editor to blur and
mDispatcher to be reset. We should guard against that and abandon
subsequent actions.
2017-03-10 14:10:15 -05:00
Jim Chen c96d20e3f4 Bug 1344892 - Let native calls dispatch to XPCOM event queue; r=snorp
Bug 1344892 - 1. Add option to dispatch to priority queue; r=snorp

For the regular "gecko" option, change to dispatching to the XPCOM event
queue, and add a new "gecko_priority" option that dispatches calls to
the widget event queue.

Bug 1344892 - 2. Update dispatchTo = "gecko" options; r=snorp

Update some existing dispatchTo = "gecko" options to "gecko_priority",
which typically involve UI events or JNI management calls like
disposeNative.

Bug 1344892 - 3. Update auto-generated bindings; r=me
2017-03-10 14:10:15 -05:00
Eugen Sawin 307653da17 Bug 1343613 - [3.1] Enable window event dispatcher only on top level window. r=jchen 2017-03-09 00:29:30 +01:00
Eugen Sawin e574bdd70e Bug 1343613 - [2.3] Add GeckoView event queuing in EventDispatcher. r=jchen,snorp 2017-03-09 00:29:30 +01:00
Eugen Sawin 8e045250f7 Bug 1343613 - [1.7] Refactor native call queuing out of GeckoThread. r=jchen 2017-03-09 00:29:30 +01:00
Andrea Marchesini 12b54aa0f5 Bug 1299500 - Get rid of DeviceStorage API - part 10 - DeviceStorage, r=ehsan, r=billm 2017-03-08 20:15:45 +01:00
Jim Chen 53a1107cd1 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 394951281e 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 5728cb6576 Bug 1343613 - [2.3] Add GeckoView event queuing in EventDispatcher. r=jchen,snorp 2017-03-08 00:19:42 +01:00
Eugen Sawin 5db48b0409 Bug 1343613 - [1.7] Refactor native call queuing out of GeckoThread. r=jchen 2017-03-08 00:19:42 +01:00
Jim Chen 1294cccf48 Bug 1337467 - Convert observers to bundle events; r=rbarker r=sebastian
Bug 1337467 - 1. Convert "Window:Resize" observer to event; r=rbarker

Bug 1337467 - 2. Convert "ScrollTo:FocusedInput" observer to event; r=rbarker

Bug 1337467 - 3. Convert "Update:CheckResult" observer to event; r=sebastian

Also remove notifyCheckUpdateResult from GeckoInterface.

Bug 1337467 - 4. Convert "GeckoView:ImportScript" observer to event; r=sebastian

Bug 1337467 - 5. Convert accessibility observers to events; r=sebastian

Bug 1337467 - 6. Convert media/casting observers to events; r=sebastian

Bug 1337467 - 7. Convert "Sanitize:ClearData" observer to event; r=sebastian

Bug 1337467 - 8. Convert "Notification:Event" observer to event; r=sebastian

Bug 1337467 - 9. Convert BrowserApp observers to events; r=sebastian

Bug 1337467 - 10. Convert Tab observers to events; r=sebastian

Bug 1337467 - 11. Convert "Passwords:Init" and "FormHistory:Init" observers to events; r=sebastian

Bug 1337467 - 12. Convert Reader observers to events; r=sebastian

Bug 1337467 - 13. Convert Distribution observers to events; r=sebastian

Bug 1337467 - 14. Convert "Fonts:Reload" observer to event; r=sebastian

Bug 1337467 - 15. Convert RecentTabsAdapter observers to events; r=sebastian

Bug 1337467 - 16. Convert "Session:Prefetch" observer to event; r=sebastian

Bug 1337467 - 17. Convert "Browser:Quit" and "FullScreen:Exit" observers to events; r=sebastian

Bug 1337467 - 18. Convert SessionStore observers to events; r=sebastian

The "Session:NotifyLocationChange" observer is sent by browser.js and
requires passing a browser reference, so it's left as an observer.

Bug 1337467 - 19. Remove unused "Tab:Screenshot:Cancel" notifyObserver call; r=me

Bug 1337467 - 20. Convert "Session:Navigate" observer to event; r=sebastian

Bug 1337467 - 21. Convert "Locale:*" observers to events; r=sebastian

Bug 1337467 - Add log for unhandled events; r=me

Add back the log indicating no listener for an event, which can be
useful when reading logcat. r=me for trivial change.

Bug 1337467 - Don't return error from EventDispatcher when OnEvent fails; r=me

When a listener's OnEvent method returns an error, continue to dispatch
to other listeners and don't return an error from the dispatch function.
This avoids unexpected errors when dispatching events. r=me for trivial
patch.
2017-03-07 12:34:04 -05:00
Carsten "Tomcat" Book 087da3f0d9 merge mozilla-inbound to mozilla-central a=merge 2017-03-07 15:13:31 +01:00
Jim Chen 3f746133a9 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
Jim Chen 3a24d6364c Bug 1343027 - 2. Add jni::Ref::Lock function; r=snorp
Add a Lock function to jni::Ref to lock the referenced object akin to
the synchronized keyword in Java. It returns an AutoLock RAII object
that automatically unlocks the object when going out of scope.
2017-03-06 15:32:36 -05:00
Jim Chen 0d3d8e6fd1 Bug 1343027 - 1. Add jni::Ref::Cast function; r=snorp
Add a Cast function to jni::Ref to cast a reference to a different type
(e.g. if ref is a jni::Object::Ref referring to a String instance, use |
ref.Cast<jni::String>()->Length() | to get the length of the string).

In MOZ_CHECK_JNI builds, Cast() checks that an instance of the source
class can indeed be cast to the target class.
2017-03-06 15:32:36 -05:00
David Major ed0b8f8653 Bug 1344615: Remove nsXPCOMStrings.{h,cpp} r=bsmedberg
These are now dead code.

MozReview-Commit-ID: AClU0Qx3kmN

--HG--
extra : rebase_source : df83cf89292da1519bb26027c11e14923d5c54a0
2017-03-06 17:52:54 +13:00
Jim Chen c7d526d4ee Bug 1339685 - Split GeckoEditable into parent and child classes; r=nalexander r=esawin r=snorp
Bug 1339685 - 1. Support compiling GeckoView aidl from multiple packages; r=nalexander

Specify a list of AIDL files for GeckoView so we can include AIDLs from
multiple packages, and not just those from the org.mozilla.gecko.process
package.

Bug 1339685 - 2. Add AIDLs for GeckoEditable; r=esawin

Add IGeckoEditableParent.aidl and IGeckoEditableChild.aidl for two-way
communication between the parent, which lives in the main process, and
the child, which lives in the main process or a child content process.

Bug 1339685 - 3. Refactor some GeckoEditable code; r=esawin

Auto-generate native constants for the constants in GeckoEditableClient,
instead of keeping a separate set of constants in native code.

Bug 1339685 - 4. Add GeckoEditableChild; r=esawin

Add the GeckoEditableChild class, which is currently only used in the
main process as the interface between the native nsWindow and
GeckoEditable. Eventually, it will be expanded to child content
processes as the interface between the native PuppetWidget and
main process GeckoEditable.

Bug 1339685 - 5. Use GeckoEditableChild from GeckoEditable; r=esawin

Make calls to GeckoEditableChild from GeckoEditable, and remove code
that exists in GeckoEditableChild from GeckoEditable.

Bug 1339685 - 6. Add GetNativeObject member to proxied native calls; r=snorp

Add a convenience function for getting the C++ object that is the target
of the native call.

Bug 1339685 - 7. Use GeckoEditableChild from native code; r=esawin

Make nsWindow and GeckoEditableSupport use GeckoEditableChild for
communication. nsWindow still keeps a reference to GeckoEditable for
switching views.

Bug 1339685 - 8. Updated generated bindings; r=me
2017-03-02 13:47:14 -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
Jan Henning 644356e330 Bug 1337325 - Remove unused zoom and scroll code from browser.js r=kats
More JPZ leftovers, I presume. In any case what's left doesn't do anything really useful and a DXR search didn't reveal any remaining users, so this can be thrown out.

MozReview-Commit-ID: 9dN6Jifpbvw

--HG--
extra : rebase_source : 04614d729a55e00c5331ecc321ca2ef5b5e73747
2017-02-12 13:33:42 +01:00
Steve Fink 5b823a90ec Bug 1337427 - Add MOZ_MUST_USE to GCVector bool returns, r=woof!
MozReview-Commit-ID: FuGjTr08mpL

--HG--
extra : rebase_source : f4adc4ad2b7558f25b344f8f4a7667ca05eed9c9
2017-02-07 16:13:04 -08:00
Nicholas Nethercote af10e0c45c Bug 1340928 (part 16) - Clean up profiler env var handling. r=mstange.
This patch does the following.

- Uses "entries" consistently for the name of the value that is obtained from
  MOZ_PROFILER_ENTRIES and is the first argument to profiler_start(). (I.e. not
  "entry" or "entrySize".)

- Removes variables (e.g. PROFILER_HELP) holding env var names and uses the
  names (e.g. "MOZ_PROFILER_HELP") directly. Some of the names are already used
  directly and I think the slight repetition isn't harmful. It's unlikely that
  we'd want to change these names the way we might need to change a numeric
  value, and they're perfectly descriptive.

- Changes the "MOZ_PROFILING_FEATURES" string in the weird Android-only startup
  code to be "MOZ_PROFILER_FEATURES", for consistency.

- Renames gUnwindInterval and gProfileEntries as gEnvVarInterval and
  gEnvVarEntries to make it clearer that they come from environment variables,
  but otherwise are parallel to gInterval and gEntries.

- Puts entries before intervals in most places, to match the profiler_start()
  argument order.

- Changes profiler_usage() so that (a) it always prints, no matter the
  verbosity, (b) it exits at its end, and (c) doesn't double-print "Profiler: "
  at the start of each line.

--HG--
extra : rebase_source : e5a0b1c48e390ada894c746f050f08ff5c241066
2017-02-23 14:26:46 +11:00
Eugen Sawin 9bf1487388 Bug 1322576 - [5.3] Make GeckoView settings accessible through nsIAndroidView. r=jchen 2017-02-22 14:57:42 +01:00
Iris Hsiao cac0976ded Backed out changeset 28c5827d707c (bug 1337325) for tc-M(31) perma failure 2017-02-22 16:15:49 +08:00
Jan Henning 9c78f37fc6 Bug 1337325 - Remove unused zoom and scroll code from browser.js r=kats
More JPZ leftovers, I presume. In any case what's left doesn't do anything really useful and a DXR search didn't reveal any remaining users, so this can be thrown out.

MozReview-Commit-ID: 9dN6Jifpbvw

--HG--
extra : rebase_source : 04614d729a55e00c5331ecc321ca2ef5b5e73747
2017-02-12 13:33:42 +01:00
Makoto Kato 50721a68ae Bug 1256565 - Part 2. Use GetEventTimeStamp() for timestamp. r=jchen
MozReview-Commit-ID: 4fBI6EXLmR1

--HG--
extra : rebase_source : d36dccb3179b386619b7ec855bf214a3ff3e6689
2016-12-27 10:59:15 +09:00
Makoto Kato a5d634db34 Bug 1256565 - Part 1. Implement GetEventTimeStamp(). r=jchen,karlt
Android uses android.os.SystemClock.uptimeMilles for event time and SystemClock.uptimeMilles uses SYSTEM_TIME_MONOTONIC.

So since TimeStamp posix impelemetation uses SYSTEM_TIME_MONOTONIC too, so we can use event time on FromSystemTime.

MozReview-Commit-ID: 5Qb5kmnHHCI

--HG--
extra : rebase_source : 26d1554fa60e3216edfd4b149380910fe2a9d845
2017-02-20 12:34:44 +09:00
Wes Kocher 8c4ce17711 Merge inbound to m-c a=merge
MozReview-Commit-ID: DCUf7VEDrTt
2017-02-17 13:38:51 -08:00
Vedant Sareen 7d4bd52fae 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
Randall Barker 95dafbe631 Bug 1336929 - Have UiCompositorControllerChild cache surface resize when not yet initialized. r=jchen,dvander 2017-02-14 09:11:14 -08:00
Tom Tromey f8ab4ddf02 Bug 1060419 - remove unneeded includes of prprf.h, r=froydnj
MozReview-Commit-ID: JifhpA3oOeH

--HG--
extra : rebase_source : 08460997dc3fd91f3065c718e17b41bb4acf8bae
2016-12-09 10:00:01 -10:00
Jean-Yves Avenard b1c337cb35 Bug 1340096: Remove MediaCodecDataDecoder. r=bwu,jolin
We prefer the RemoteDataDecoder instead.

MozReview-Commit-ID: SK0D3hycRh

--HG--
extra : rebase_source : 97899154bf5fcbcd2feb44ac82879a79eabb44f7
2017-02-16 12:26:53 +01:00
Tim Huang 42a2c99db5 Bug 1312954 - Part 11: Update speculativeConnect to speculativeConnect2 for Fennec. r=sebastian 2017-02-02 22:18:00 -05:00
Jim Chen 89c63a086b Bug 1334728 - 2. Require string value for dispatch event type; r=snorp
Instead of having xpconnect convert any JS value to a string for us,
accept a jsval as the event type argument, and make sure that it is a
string.
2017-02-01 17:35:45 -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
Jim Chen 735fe99d21 Bug 1333590 - 5. Support other primitive types in event callback; r=snorp
Add support for byte, short, float, long, and char types as the response
object for event callbacks.
2017-02-01 17:35:45 -05:00
Randall Barker 7039d10a5d Bug 1329362 - part 2, Add accessor functions for EGLNativeWindowType, ANativeWindow, and EGLSurface to AndroidCompositorWidget r=dvander,kats 2017-01-27 09:32:24 -08:00
Jim Chen 9a9702cab0 Bug 1330409 - Convert CastingApps events to bundle events; r=sebastian
Convert the events used in MediaCastingBar and ChromeCastPlayer to
GeckoBundle/BundleEventListener events. UI thread events are used
because the listener performs operations on the UI thread.
2017-01-25 18:53:57 -05:00
Eugen Sawin 0cb63b48cd Bug 1323429 - [1.1] Don't verify IME root content with e10s enabled. r=jchen 2017-01-25 20:03:43 +01:00
Masatoshi Kimura 7ab3096e8e Bug 1331820 - Fix misuse of NS_NewNativeLocalFile in widget/android/. r=blassey
MozReview-Commit-ID: BJi20AfAQc0

--HG--
extra : rebase_source : b065565cded79c43ef72e046294d663923a43278
2017-01-21 15:43:41 +09:00
Randall Barker 489f7c72e6 Bug 1328752 - part 2, Update Android nsWindow to use UiCompositorControllerChild in place of CompositorBridgeParent r=jchen 2017-01-20 11:01:29 -08:00
Randall Barker 937209439a Bug 1331116 - part 1, Remove unused ProgressiveUpdateData.java r=jchen 2017-01-17 18:47:20 -08:00
Randall Barker 774c1fed10 Bug 1331055 - Ensure the Android UI nsThread has been initialized before making it accessible. r=jchen 2017-01-17 18:47:20 -08:00
Jim Chen f48add8fb6 Bug 1330515 - Try to recover from IME errors; r=esawin
Instead of throwing IME exceptions, try to recover from IME errors by
flushing the entire text unless we already tried that before. This
prevents annoying crashes, and deals with known IME bugs that are too
risky to uplift to older releases.
2017-01-13 14:39:27 -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
Jim Chen 2706d38064 Bug 1328115 - 3. Check for exceptions when finding Java class; r=snorp
Be more careful when we try to find Java classes, so that any exceptions
are not ignored and passed on to the caller, which is likely to result
in a hard-to-diagnose Dalvik/ART crash.
2017-01-09 14:10:24 -05:00
Jim Chen e097f47943 Bug 1328115 - 2. Update auto-generated bindings; r=me 2017-01-09 14:10:23 -05:00
Nicholas Nethercote 4ebfdea1f5 Bug 1325234 (part 10) - Final nsIWidget deCOMtamination clean-ups. r=mstange.
This patch converts some NS_IMETHOD and NS_IMETHODIMP occurrences that I missed
in previous bugs.

The patch also removes the Android
nsWindow::{Get,Set}HasTransparentBackground() functions because they're unused.

--HG--
extra : rebase_source : 7b121e5f9ac633ea9482bacc8b7424cb8d8889ef
2016-12-21 15:58:09 +11:00
Nicholas Nethercote 523bee37b8 Bug 1325234 (part 9) - Remove remaining NS_IMETHOD_ occurrences from nsIWidget. r=mstange.
|virtual T| is clearer than |NS_IMETHOD_(T)|.

--HG--
extra : rebase_source : 9c8f423d7a89782a4d790a50e137071271086eed
2016-12-21 15:27:20 +11:00
Nicholas Nethercote bf4a843d70 Bug 1325234 (part 8) - Streamline nsIWidget::DispatchEvent. r=jimm.
This patch changes it from |NS_IMETHOD| to |virtual nsresult| because some
callsites are checked and some aren't.

--HG--
extra : rebase_source : dd98266bce0a7583863908b6f04729a6e403b721
2016-12-21 11:18:40 +11:00
Nicholas Nethercote e52b19470c Bug 1325234 (part 6) - Streamline nsIWidget::SetTitle. r=jimm.
This patch changes it from |NS_IMETHOD| to |virtual nsresult| because some call
sites are checked and others aren't.

--HG--
extra : rebase_source : 6723b9db709d1506dd394b1e85572309c1c2e2cf
2016-12-21 11:13:08 +11:00
Nicholas Nethercote ea1e2ca6ce Bug 1325234 (part 5) - Streamline nsIWidget::SetCursor (both versions). r=jimm.
This patch changes one from |NS_IMETHOD| to |virtual nsresult| and the other to
|virtual void|.

--HG--
extra : rebase_source : 55af71c01dc75d6bf7c63191e9cfabc9f5368ffa
2016-12-21 11:13:08 +11:00
Nicholas Nethercote 0eaecf55da Bug 1325234 (part 4) - Streamline nsIWidget::{SetFocus,SetNonClientMargins}(). r=mstange.
This patch changes them from |NS_IMETHOD| to |virtual nsresult|.

--HG--
extra : rebase_source : 5e54c2fd340c393b33c9e1dcf20a80fe2f41b2f4
2016-12-21 11:13:08 +11:00
Nicholas Nethercote da5978a842 Bug 1325234 (part 3) - Streamline nsIWidget::Show(). r=mstange.
This patch changes it from |NS_IMETHOD| to |virtual void|. The return value was
only checked in one low-value assertion and one other place where the check had
no useful effect (in nsCocoaWindow::HideWindowChrome()).

--HG--
extra : rebase_source : f6671e9e0e10ee18fb32f8b1c83f1e64c3d97e67
2016-12-21 11:12:54 +11:00
Nicholas Nethercote e2d9e4ed68 Bug 1325234 (part 2) - Streamline nsIWidget::Invalidate(). r=jimm.
This patch changes it from |NS_IMETHOD| to |virtual void|. The return value was
only checked in one low-value assertion so I decided it wasn't needed.

--HG--
extra : rebase_source : 3523d9a086cf98c40d237d777f5dd471af0d7465
2016-12-20 09:55:32 +11:00
Randall Barker 1101ff0a36 Bug 1321644 - part 1, Remove android specific message loop code from APZThreadUtils.cpp r=botond 2016-12-23 09:08:37 -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
Randall Barker b5df4e8ab9 Bug 1319850 - part 3, Convert AndroidBridge::PostTaskToUiThread to use nsIRunnable instead of mozilla::Runnable r=jchen 2016-12-23 09:08:31 -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
Wes Kocher 079a079cbe Backed out 2 changesets (bug 1321644) for android xpcshell bustage a=backout
Backed out changeset 60ba1893ecf3 (bug 1321644)
Backed out changeset c25bce77b775 (bug 1321644)
2016-12-22 18:16:23 -08:00
Randall Barker 0adfb0ba8f Bug 1321644 - part 1, Remove android specific message loop code from APZThreadUtils.cpp r=botond 2016-12-22 16:15:14 -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
Randall Barker 3778c365d9 Bug 1319850 - part 3, Convert AndroidBridge::PostTaskToUiThread to use nsIRunnable instead of mozilla::Runnable r=jchen 2016-12-22 16:15:14 -08:00
John Lin d6335c2417 Bug 1075025 - part 1: receive vsync events through Choreographer. r=snorp
MozReview-Commit-ID: 69MefRKMWmh
2016-12-22 12:55:19 +08:00
Jim Chen aea12c5f05 Bug 1322574 - 3. Count NPZC events as UI events; r=rbarker
Post NPZC events as an Event subclass that identifies as an UI event.
This also lets us avoid some redundant code in the event lambda.
2016-12-21 13:37:20 -05:00
Jim Chen e0a649aa54 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
Nicholas Nethercote 3af5047314 Bug 1299335 (part 8) - Streamline nsIWidget::Enable. r=mstange.
This patch changes it from |NS_IMETHOD| to |virtual void| because every
implementation of these functions always returns |NS_OK|.

--HG--
extra : rebase_source : 07ee29c514bf35b97d7195c53bb5b9220d1ef961
2016-12-19 20:54:16 +11:00
Nicholas Nethercote a28c8f38b2 Bug 1299335 (part 7) - Streamline nsIWidget::{Move,Resize}. r=mstange.
This patch changes them from |NS_IMETHOD| to |virtual void| because every
implementation of these functions always returns |NS_OK|.

--HG--
extra : rebase_source : 6207df5a46aeb6b8aaa0f697447a51bc6a6dc366
2016-12-19 20:54:03 +11:00
Nicholas Nethercote d0912b2968 Bug 1299335 (part 4) - Streamline nsIWidget::HideWindowChrome. 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 : 0791d3cb05907d6b41879549b52f3a33018abf45
2016-12-16 10:54:12 +11:00
Nicholas Nethercote 1dab0c3072 Bug 1299335 (part 3) - Streamline nsIWidget::SetParent. r=mstange.
This patch removes its return value, because none of the call sites check it
except for one non-vital assertion.

--HG--
extra : rebase_source : 3471c4e22394b8a05c6708d0f8469686ffad9814
2016-12-16 10:54:11 +11:00
Nicholas Nethercote efc5071ff2 Bug 1299335 (part 2) - Streamline nsIWidget::SetIcon. 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 : a1a04193bc3940f1468c7c235f6d6e0341d0f1c2
2016-12-16 10:54:11 +11:00
Nicholas Nethercote 3970265787 Bug 1299335 (part 1) - Change some nsIWidget function return values from |NS_IMETHOD| to |virtual MOZ_MUST_USE nsresult|. r=jimm.
Specifically: OnDefaultButtonLoaded, AttachNativeKeyEvent, BeginMoveDrag,
BeginResizeDrag, GetAttention. These are all fallible functions whose result is
always checked.

The patch also moves some trivial function definitions from nsBaseWidget.cpp to
nsBaseWidget.h, and removes the android BeginResizeDrag() because it can
use the nsBaseWidget one.

--HG--
extra : rebase_source : ef32a41b547bcbc21f7df0043f683307470b136e
2016-12-16 10:54:02 +11:00
Jim Chen 23679b7509 Bug 1322711 - 1. Convert property name to string if necessary; r=snorp
When converting a JS object to a GeckoBundle, convert the property name
to a string if necessary, because the property name could be another
type such as an integer.
2016-12-13 03:21:47 -05:00
John Lin 0c318ba97d Bug 1299068 - part 5: release/render buffers when VideoData sent to compositor. r=snorp
MozReview-Commit-ID: JmEKLKlJnaL

--HG--
extra : rebase_source : 5177ed35206aad3423b9960ea5e9e59459540cde
2016-11-30 17:55:52 +08:00
Wes Kocher eff20804f2 Merge m-c to inbound, a=merge 2016-12-02 13:13:05 -08:00
Randall Barker fc730ca66e Bug 1321642 - Add missing include guards to nsDeviceContextAndroid.h r=jchen 2016-12-02 10:29:55 -08:00
Wes Kocher b9a8598f48 Merge m-c to inbound, a=merge 2016-12-01 15:46:23 -08:00
James Cheng 2fca45e7dc Bug 1320618 - Check if codec supports adaptive playback to determine the decoder support recycling or not. r=jolin
MozReview-Commit-ID: C3pI9NCUgiP

--HG--
extra : rebase_source : c9da5d21ee76e660ea5a18f77b1ea6bccd14286d
2016-11-30 16:30:16 +08:00
Dylan Roeh 9ff1fe4af5 Bug 1235431 - Implement windowClient.focus() for Fennec. r=catalinb 2016-11-14 17:22:13 -06:00
Nick Alexander e2a421b938 Bug 1320587 - Force first paint when (re-)attaching Gecko to Java. r=jchen
MozReview-Commit-ID: 6vUbIXTPNLQ

--HG--
extra : rebase_source : 24d6e8f5502568443f35c59963a66d8fe8ac4056
2016-11-29 23:12:53 -08:00
Carsten "Tomcat" Book d6cf7b77d6 Merge mozilla-central to autoland 2016-12-02 09:27:52 +01:00
Masayuki Nakano ab577a1cb6 Bug 1274503 part.2 Add KeyboardEvent.key value mapping on Android which are not mapped by Gecko but mapped on Chromium r=smaug
First, we should get rid of "Unidentified" keys which are mapped to specific value on Chromium and we can agree without any discussion.

MozReview-Commit-ID: C4TZzndahNM

--HG--
extra : rebase_source : 5e9d7527c4109049a44391fca45f2ffbd0f81960
2016-12-01 21:38:54 +09:00
Jim Chen cc57abd3cd Bug 1319496 - 1. Fix GeckoBundle array handling; r=snorp
Fix several bugs when handling arrays in GeckoBundle.

1. Correctly return null when getting an array that is not in the
   bundle, instead of crashing.

2. Convert object arrays to GeckoBundle arrays in EventDispatcher
   instead of leaving it as a single GeckoBundle with integer keys, due
   to lack of object array support in NativeJSObject.toBundle.

3. Return error when trying to convert a JS array of arrays to
   GeckoBundle, instead of crashing.

4. Add convenience methods for setting arrays; for example, setting
   boolean arrays from Boolean[] and Collection<Boolean>.
2016-11-29 12:25:52 -05:00
James Cheng 3f263dd616 Bug 1317239 - Part1 - Add an API to ask if the codec support adaptive playback. r=jolin
MozReview-Commit-ID: 7Pgj9hFE6pu

--HG--
extra : rebase_source : bc2b6b0c5052655c9e2ea0f8f44dd31169a40a75
2016-11-23 14:11:22 +08:00
Jim Chen 352cf02d22 Bug 1317604 - 4. Include nsIObserver in nsAndroidBridge interfaces; r=me on CLOSED TREE
Follow-up to include nsIObserver in the list of interfaces implemented
by QueryInterface for nsAndroidBridge. This fixes a bug where QI to
nsIObserver fails when removing nsAnroidBridge observers.

--HG--
extra : amend_source : 3913b85c801940276d3ee742e479b723d5ec393d
2016-11-21 17:24:36 -05:00
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