Commit Graph

745 Commits

Author SHA1 Message Date
Jim Chen
d5f3264031 Bug 1442250 - 5. Reset native queue early when transferring; r=esawin
When we reset the old native queue when transferring to another session,
perform the reset right after the transfer() call, instead of in
onTransfer(), which is too late for clearing stale pending calls.

Then, after transferring to a new queue, let Gecko call Window.onReady
to set the new queue's state if needed. That way the Java queue state is
consistent with the Gecko state.

MozReview-Commit-ID: CUXGrhR4FCD

--HG--
extra : rebase_source : a196361f1db1304c178a3471082d586dddfe2a32
2018-03-09 12:34:38 -05:00
Michael Kaply
27dd77631b Bug 1342288 - Remove PresentationMediaPlayerManager. r=snorp
MozReview-Commit-ID: 4H46ahWTntR

--HG--
extra : rebase_source : 647b6f702b14bbb13bc44812870069164ccbddfd
2018-03-06 16:33:42 -06:00
James Willcox
e7c0c03f32 Bug 1432485 - Add GeckoSession.NavigationListener.onNewSession r=jchen,esawin
This allows apps to decide which GeckoSession should handle a load that
will be in a new window (e.g., window.open()).

MozReview-Commit-ID: BkJM93489Ga
2018-02-22 09:18:32 -06:00
Boris Zbarsky
9bdcffc985 Bug 1436902 part 3. Replace usage of NS_IMPL_ISUPPORTS_INHERITED0 with NS_INLINE_DECL_REFCOUNTING_INHERITED when possible. r=mccr8
The change to RootAccessible.cpp fixes an obvious bug introduced in bug 741707.

The visibility changes in gfx/thebes are because NS_DECL_ISUPPORTS has a
trailing "public:" that those classes were relying on to have public
constructors.

MozReview-Commit-ID: IeB8KIJCGhU
2018-02-12 15:44:40 -05:00
Boris Zbarsky
523343906d Bug 1436508 part 16. Remove nsIDOMSimpleGestureEvent. r=masayuki
MozReview-Commit-ID: 8JDovhthKtx
2018-02-09 11:17:10 -05:00
Nick Alexander
e5c8c8e9a3 Bug 1419581 - Part 3: Guard PresentationMediaPlayer windows with MOZ_NATIVE_DEVICES. r=jchen
MozReview-Commit-ID: 3ZlVUMufn2g

--HG--
extra : rebase_source : 277c272236fed0a4d316401d7369bf025221fe75
extra : intermediate-source : 5224db0c36aa41d3a333875b29c9048e25eca651
extra : source : a7d75667c58ba0069bbb40ad688884a856660a60
2018-01-05 11:35:00 -08:00
Brindusan Cristian
9e0ffdd8cb Backed out 7 changesets (bug 1419581) as requested by nalexander a=backout
Backed out changeset 7f41dd3bbc2d (bug 1419581)
Backed out changeset d4d42899e5cd (bug 1419581)
Backed out changeset 78828bf781d7 (bug 1419581)
Backed out changeset 5224db0c36aa (bug 1419581)
Backed out changeset 072108d16590 (bug 1419581)
Backed out changeset f8b3e95f18e4 (bug 1419581)
Backed out changeset 5f7645a19bf1 (bug 1419581)
2018-01-24 22:28:19 +02:00
Nick Alexander
5f1e6bc10e Bug 1419581 - Part 3: Guard PresentationMediaPlayer windows with MOZ_NATIVE_DEVICES. r=jchen
MozReview-Commit-ID: 3ZlVUMufn2g

--HG--
extra : rebase_source : e88c8b84c990574cb6b6f78ed629e7050f3807e9
extra : intermediate-source : c71bc2d65fac7df474a08e9f2c0dc7ad4e3b0bc4
extra : source : a7d75667c58ba0069bbb40ad688884a856660a60
2018-01-05 11:35:00 -08:00
Ryan VanderMeulen
8ac2db0699 Backed out 7 changesets (bug 1419581) for incorrect android:debuggable. r=nalexander
Backed out changeset bd1e3857b5ba (bug 1419581)
Backed out changeset be888fa125dc (bug 1419581)
Backed out changeset 44bcb609e721 (bug 1419581)
Backed out changeset a7d75667c58b (bug 1419581)
Backed out changeset 2ea82ff4a757 (bug 1419581)
Backed out changeset 8f1655752d43 (bug 1419581)
Backed out changeset 65195aae48d8 (bug 1419581)
2018-01-17 15:54:22 -05:00
Nick Alexander
3d8b16b3ab Bug 1419581 - Part 3: Guard PresentationMediaPlayer windows with MOZ_NATIVE_DEVICES. r=jchen
MozReview-Commit-ID: 3ZlVUMufn2g

--HG--
extra : rebase_source : 539690b6ebe6fd5805d2be379c3732350f1b223f
2018-01-05 11:35:00 -08:00
Margareta Eliza Balazs
b61bd7a503 Backed out 7 changesets (bug 1419581) for B bustage on /builds/worker/workspace/build/src/widget/android/nsWindow.h:0 on a CLOSED TREE
Backed out changeset 1af5a54e829d (bug 1419581)
Backed out changeset c9aef37de282 (bug 1419581)
Backed out changeset 8d0855cb17b7 (bug 1419581)
Backed out changeset d0eba5853ab6 (bug 1419581)
Backed out changeset bc4cda1cc57c (bug 1419581)
Backed out changeset 93547276fba8 (bug 1419581)
Backed out changeset 45b5309a73cb (bug 1419581)
2018-01-17 00:03:19 +02:00
Nick Alexander
99937bae9f Bug 1419581 - Part 3: Guard PresentationMediaPlayer windows with MOZ_NATIVE_DEVICES. r=jchen
MozReview-Commit-ID: 3ZlVUMufn2g

--HG--
extra : rebase_source : c20fafb28c3033451541ec3590695285b17bff73
2018-01-05 11:35:00 -08:00
Andrew McCreight
ab7fa64021 Bug 1410209, part 4 - Add names to some IPC runnables. r=kanru
This patch requires that each instance of IPC's RunnableFunction is
passed in a name, like the non-IPC RunnableFunction.

MozReview-Commit-ID: Atu1W3Rl66S

--HG--
extra : rebase_source : f932d7597a26a3f0c4246b3a95df638860d3d32d
2017-10-27 13:39:28 -07:00
Jim Chen
8a3fd41d0a Bug 1425553 - Only process input calls when Gecko is ready; r=esawin
Track the Gecko ready state in TextInputController through
GeckoSession's NativeQueue, and only pass through input calls when Gecko
is ready.

MozReview-Commit-ID: KugQ6whg2QA

--HG--
extra : rebase_source : 6ea266d9746d22c58cdd21c7122fa7f20ec730fc
2017-12-19 17:02:46 -05:00
Jim Chen
96ffac273d Bug 1416918 - 3. Use TextInputController in GeckoView; r=esawin
Use the new TextInputController API in GeckoView to process key events
and input method interactions.

MozReview-Commit-ID: H0oyCDkGHul

--HG--
extra : rebase_source : a0ab70e77aa05b7d3aa05982c47299a0222f3ee5
2017-12-13 22:57:21 -05:00
Jim Chen
6075204d7c Bug 1416918 - 1. Add TextInputController; r=esawin
Add TextInputController and add a getter for it in GeckoSession.
TextInputController is used to process key events and to interact with
the input method manager.

MozReview-Commit-ID: 1j2Moqukf8U

--HG--
extra : rebase_source : 03fee51ba3e2034b8689c4fa6fe58f7432dc1ad4
2017-12-13 22:57:21 -05:00
Jim Chen
e5d2629ea4 Bug 1422728 - Don't try to open GeckoSession window synchronously; r=snorp
As a startup optimization, we tried to open the GeckoSession window
synchronously in certain situations, but apparently that's conflicting
with some other code to cause deadlocks.

MozReview-Commit-ID: 88uhr7leVy1
2017-12-08 21:53:10 -05:00
Jim Chen
203776418e Bug 1416330 - 3. Update Fennec code to not use LayerView; r=rbarker
Use GeckoSession/LayerSession or GeckoView in Fennec code instead of
using LayerView.

MozReview-Commit-ID: Iod7XsqKy1e

--HG--
extra : rebase_source : 5917540422698f5526ca373f17c4358a712cdcef
2017-12-04 11:50:20 -05:00
Sebastian Hengst
5e55af8f82 merge mozilla-central to autoland. r=merge a=merge 2017-12-01 01:30:16 +02:00
Dylan Roeh
3589e9efe6 Bug 1412678 - Ensure the window most recently interacted with is the active window. r=snorp 2017-11-30 09:00:05 -06:00
Jim Chen
84ca8a1479 Bug 1416316 - 3. Update NPZC usages; r=rbarker
Remove NPZC references from LayerView, and add an NPZC getter in
LayerSession. Use the new APIs in GeckoView to forward events to NPZC.

MozReview-Commit-ID: 1UcJkpW0XuM

--HG--
extra : rebase_source : 6f50d1ca9398a2549678cc4e0fbb2578d284f63a
2017-11-30 13:25:50 -05:00
Jim Chen
bd61ff7f2f Bug 1416316 - 2. Clean up NativePanZoomController; r=rbarker
Clean up the NativePanZoomController object including,

1) Remove references to LayerView because NPZC will be created and used
by LayerSession.

2) Rename `mDestroyed` to `mAttached` because NPZC now needs to support
cases where it's used before being attached, in addition to after being
destroyed.

3) Move origin of synthesized event coordinates from the screen to the
surface in native code, so we don't need to do the same thing in Java.

4) Invoke all callbacks from native code on the UI thread.

MozReview-Commit-ID: Fu4XIY59yKw

--HG--
extra : rebase_source : cb4d432cb940cfa92f3c0a931f1f2d2991932462
2017-11-30 13:25:50 -05:00
Jim Chen
c8f7a24671 Bug 1416316 - 1. Move overscroll to LayerSession; r=rbarker
There is some overscroll handling code in NativePanZoomController that
should be moved, along with other overscroll code in LayerView, to
LayerSession. LayerSession now provides a getter for
OverscrollEdgeEffect, which is cleaned up to have a public API with
documentation.

MozReview-Commit-ID: LkKHFS8OkR7

--HG--
extra : rebase_source : dc6b680b1cc7d7e2dd221091a63a208971d63c80
2017-11-30 13:25:50 -05:00
Jim Chen
b21cdffaf4 Bug 1416319 - 1. Move content-document-is-displayed flag to native code; r=rbarker
One fix I forgot to make in bug 1416310 is to change the code to reset
the flag in LayerView. I think it's better if we just moved the whole
thing to native code, since we don't really use the flag in Java.

MozReview-Commit-ID: 9cbcYb89LhC

--HG--
extra : rebase_source : a209669d6657a60c198f59f4a0e4d959478485c3
2017-11-22 14:12:22 -05:00
Jim Chen
a845c063bf Bug 1416310 - 4. Don't use GeckoLayerClient in native code; r=rbarker
Use LayerSession::Compositor or NativePanZoomController to call back
into Java from nsWindow.

MozReview-Commit-ID: 9JUKAE5XQK1

--HG--
extra : rebase_source : 9d6861b9d641e6abb6b6f94f5f9c4b3661ff071c
2017-11-20 17:17:02 -05:00
Jim Chen
db59a90277 Bug 1415994 - 6b. Track GeckoDisplay origin changes; r=snorp
Add a `screenOriginChanged` callback to GeckoDisplay.Listener, which
informs Gecko of changes in the origin of the display. The origin
translates to coordinates for web APIs like screenX/screenY and certain
other calculations.

Also, make GeckoDisplay listen to layout changes in the view tree (by
overriding gatherTransparentRegion as an optimization), and call
`screenOriginChanged` accordingly.

MozReview-Commit-ID: C72EHCkbV3T

--HG--
extra : rebase_source : 240c5c8fb3c2938ae966f40e86f7c5a0ca66526c
2017-11-14 18:18:35 -05:00
Jim Chen
ff6c25061a Bug 1415994 - 5. Use LayerSession from GeckoSession; r=snorp
Make GeckoSession inherit from LayerSession, and connect its Compositor
to native code as part of the GeckoSession routine.

MozReview-Commit-ID: wQaH1A0a7z

--HG--
extra : rebase_source : ee4ae96e974d15c8cb9ad569ea9abf0ace4d0fa5
2017-11-14 18:18:35 -05:00
Jim Chen
e029f5ee64 Bug 1415994 - 4. Use LayerSession in native code; r=snorp
Make native code use LayerSession::Compositor instead of
LayerView::Compositor. Also, make some callbacks happen on the UI thread
to make the Java code cleaner.

MozReview-Commit-ID: KhuHel7Zfdn

--HG--
extra : rebase_source : 040442539fd7cc1af8e13e4be1d9ebfb1625f778
2017-11-14 18:18:35 -05:00
Jim Chen
11dc67a595 Bug 1415994 - 1. Don't report screen size in GeckoLayerClient; r=rbarker
We don't actually use the screen size through GeckoLayerClient anymore.
Getting rid of it lets us get rid of the Context field in
GeckoLayerClient as well.

MozReview-Commit-ID: GM1jlhAZm4T

--HG--
extra : rebase_source : 04827eb61d6304d4782a7a935d5528013255726f
2017-11-14 18:18:34 -05:00
Jim Chen
832cd8d996 Bug 1415074 - Fix unresponsiveness after restoring GeckoView states; r=jchen
Fix a bug where GeckoView becomes unresponsive to dispatched events
after restoring states, due to the native queue not being restored.
r=me for small, tested patch.

MozReview-Commit-ID: K1cVjjNaZK1

--HG--
extra : rebase_source : b1329c84d82f5bdc06767bf310ca87e52ff6ec9b
2017-11-07 01:53:11 -05:00
Jim Chen
edb0428314 Bug 1413698 - 2. Move GeckoView to GeckoSession; r=snorp
Rename GeckoView to GeckoSession. Strip out parts of it that depended on
being a subclass of View. Also strip out parts of it that dealt with
switching EventDispatcher and NativeQueue, because now there's only one
copy of each for each GeckoSession.

MozReview-Commit-ID: J699twtpmTS

--HG--
rename : mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoView.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoSession.java
extra : rebase_source : 60e045f6f1e6a70dcabc03f5a32cae5576c2edd8
2017-11-06 14:54:09 -05:00
Jim Chen
6fdb886eb4 Bug 1413698 - 1. Separate out attach() from open() in GeckoView.Window; r=snorp
Right now, `GeckoView.Window.open()` consists of opening a new Gecko
nsWindow and attaching it to the opening GeckoView. This patch separates
the attaching step into an `Window.attach()` function that was renamed
from `Window.reattach()`. Going forward, `Window.open()` and
`Window.close()` will correspond to opening and closing a session, which
`Window.attach()` will correspond to attaching a display to a session.

MozReview-Commit-ID: 94Un74pwizY

--HG--
extra : rebase_source : a7d9c6c3227de4b05e800d77a184f1deae9af5f8
2017-11-06 14:54:08 -05:00
Jim Chen
7496680254 Bug 1412872 - 4. Handle negate scroll pref in native code; r=rbarker
Handle the negate_wheel_scroll pref in native code so we don't depend on
PrefsHelper in NativePanZoomController.

MozReview-Commit-ID: 14YCcrDlObz
2017-11-01 14:54:03 -04:00
Jim Chen
453375471c Bug 1412872 - 3. Remove native GeckoView loadUri call; r=snorp
Remove the native GeckoView loadUri call because it's Fennec-only.
Replace the call with a Fennec-only "Tab:OpenUri" event.

MozReview-Commit-ID: 7xZW9aceoPL
2017-11-01 14:54:03 -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
Randall Barker
0cc6f26617 Bug 1392705 - part 3: Call nsBaseWidget::DestroyLayerManager() in nsWindow::Destroy to ensure IPC is not shutdown in the destructor for Android r=jchen
Due to the indeterminate nature of Gecko shutdown, the ref count of the
nsWindow on Android would sometimes go to zero before the XPCOM shutdown
observer was called in nsBaseWindow which is where the compositor thread
IPC is shutdown. If nsBaseWindow::Shutdown does not get called, then the
compositor thread IPC is shutdown in the nsBaseWindow destructor.
Unfortunately while the nsWindow is being deleted, it can be accessed in
the compositor thread and cause a crash in
LayerManagerComposite::RenderToPresentationSurface.
Calling nsBaseWidget::DestroyLayerManager() in nsWindow::Destroy()
ensures it gets called before the destructor gets invoked typically in
the Destroy() call.

MozReview-Commit-ID: KCv8SCmEjnb

--HG--
extra : rebase_source : f48fe01b15ff7e2e8763628dd22a2c926d051e9d
2017-09-05 13:00:06 -07:00
James Willcox
c9abfc59d6 Bug 1126479 - Correctly set widget size mode on Android r=jchen
MozReview-Commit-ID: AfNWDsyQC95
2017-08-22 09:08:41 -05:00
Jim Chen
0977b07333 Bug 1382335 - 5. Check for shutdown in LayerViewSupport::OnResumedEvent; r=esawin
It wasn't enough to just check for `mWindow` in `OnResumedCompositor()`,
because the `LayerViewSupport` instance itself could have been released.
This patch now checks for both cases.

MozReview-Commit-ID: hSnFUhtp8m
2017-08-14 12:59:19 -04:00
Jim Chen
b70b6eb453 Bug 1382335 - 4. Check for shutdown in more LayerViewSupport functions; r=esawin
Check for shutdown so we don't crash on accessing a null window pointer.

MozReview-Commit-ID: FRky4dcuhrw
2017-08-04 13:21:06 -04:00
James Willcox
d0bb12024d Bug 1381916 - Remove support for plugins on Android r=jchen,bsmedberg
MozReview-Commit-ID: AcAIC1QQew2
2017-07-31 12:25:16 -05:00
Jim Chen
b9eff08b91 Bug 1382335 - 2. Revert workaround from bug 1372777; r=esawin
Introduce the crash again to get more crash reports for analysis.

MozReview-Commit-ID: DYq95o5RpzB
2017-07-31 12:30:13 -04:00
Nicholas Nethercote
72c884bf74 Bug 1384835 (part 3, attempt 2) - Remove the Preferences::Get*CString() variants that return nsAdoptingCString. r=froydnj.
--HG--
extra : rebase_source : d317b25be2ec21d1a60d25da3689e46cdce0b649
2017-07-31 14:28:48 +10:00
Jim Chen
ba6dd4ceb0 Bug 1382861 - 2. Don't use priority queue for GeckoView.Window and ThumbnailHelper; r=esawin
Use the regular XPCOM queue for those tasks because the priority queue
should only be used for input and other timing-sensitive tasks.

MozReview-Commit-ID: 5px0s0PJYrV
2017-07-25 17:26:14 -04:00
Kartikaya Gupta
b95ebf372e Bug 1379252 - Remove unused argument. r=rbarker
MozReview-Commit-ID: 7G8i0G9LyvZ

--HG--
extra : rebase_source : 229e4ef955e50b5a473c24522e3e499fdf658519
2017-07-07 14:56:10 -04:00
Christoph Kerschbaumer
8bd02d75b7 Bug 1364016 - Explicitly pass a triggeringPrincipal to openURI on android. r=snorp 2017-07-05 21:58:41 +02:00
Randall Barker
590cfe546d Bug 1367850 - Move Android UI thread runnable queue from AndroidBridge to AndroidUiThread r=jchen
MozReview-Commit-ID: 4okw7R2P2LC
2017-07-03 17:18:50 -07:00
Sebastian Hengst
24262bb678 Backed out changeset a6f8452cbd4b (bug 1367850) for Android mochitest crashes with EnqueueTask, e.g. bugs 1376668, 1376669, 1376670, test_ext_background_generated_url.html. r=backout a=backout
MozReview-Commit-ID: HiaJZ8N9J8O
2017-06-29 03:19:50 +02:00
Randall Barker
49e524747b Bug 1367850 - Move Android UI thread runnable queue from AndroidBridge to AndroidUiThread r=jchen
MozReview-Commit-ID: 4okw7R2P2LC
2017-06-27 14:42:15 -07:00
Bill McCloskey
f115503a0b Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-26 14:19:58 -07:00
Nicholas Nethercote
58786e1ea7 Bug 1375392 - Tweak the PROFILER_LABEL* macros. r=mstange.
This patch makes the following changes to the macros.

- Removes PROFILER_LABEL_FUNC. It's only suitable for use in functions outside
  classes, due to PROFILER_FUNCTION_NAME not getting class names, and it was
  mostly misused.

- Removes PROFILER_FUNCTION_NAME. It's no longer used, and __func__ is
  universally available now anyway.

- Combines the first two string literal arguments of PROFILER_LABEL and
  PROFILER_LABEL_DYNAMIC into a single argument. There was no good reason for
  them to be separate, and it forced a '::' in the label, which isn't always
  appropriate. Also, the meaning of the "name_space" argument was interpreted
  in an interesting variety of ways.

- Adds an "AUTO_" prefix to PROFILER_LABEL and PROFILER_LABEL_DYNAMIC, to make
  it clearer they construct RAII objects rather than just being function calls.
  (I myself have screwed up the scoping because of this in the past.)

- Fills in the 'js::ProfileEntry::Category::' qualifier within the macro, so
  the caller doesn't need to. This makes a *lot* more of the uses fit onto a
  single line.

The patch also makes the following changes to the macro uses (beyond those
required by the changes described above).

- Fixes a bunch of labels that had gotten out of sync with the name of the
  class and/or function that encloses them.

- Removes a useless PROFILER_LABEL use within a trivial scope in
  EventStateManager::DispatchMouseOrPointerEvent(). It clearly wasn't serving
  any useful purpose. It also serves as extra evidence that the AUTO_ prefix is
  a good idea.

- Tweaks DecodePool::SyncRunIf{Preferred,Possible} so that the labelling is
  done within them, instead of at their callsites, because that's a more
  standard way of doing things.

--HG--
extra : rebase_source : 318d1bc6fc1425a94aacbf489dd46e4f83211de4
2017-06-22 17:08:53 +10:00