Commit Graph

751 Commits

Author SHA1 Message Date
Zhang Junzhi
4e076672d1 Bug 1358017 - Part 4: Implements the auto-dir scrolling feature(without the "honour root" functionality) in APZ r=kats
This commit implements the auto-dir scrolling functionality in APZ, based on
part 1 to part 3. However, the functionality of mousewheel.autodir.honourroot
will be implemented in a future.

MozReview-Commit-ID: 9xai99x71gh
2018-03-16 19:23:53 +08:00
Nathan Froyd
c415bb3846 Bug 1448016 - make some Android widget constructors explicit; r=snorp
Attempting to stand up the static analysis for Android builds revealed
that we weren't being explicit enough.
2018-03-27 10:51:32 -04:00
Kartikaya Gupta
5df2dfffc9 Bug 1448490 - Make the layers id a struct instead of a uint64_t. r=mattwoodrow
The new struct is in LayersTypes.h, all the rest of the changes are just
replacing existing uint64_t instances with the new LayersId struct.

Note that there is one functional change, in
CompositorBridgeParent::DeallocPWebRenderBridgeParent, where we now
correctly convert the PipelineId to a LayersId before using it to index
into sIndirectLayerTrees, whereas before we were incorrectly just using
the mHandle part of the PipelineId.

MozReview-Commit-ID: GFHZSZiwMrP
2018-03-24 19:06:01 -04:00
James Willcox
e51d3b14f0 Bug 1422137 - Rename NativePanZoomController to PanZoomController r=rbarker
MozReview-Commit-ID: DUdekq4OV2e
2018-03-22 12:39:53 -05:00
Boris Zbarsky
72b3558850 Bug 1446711 part 7. Switch the nsIDOMMouseEvent::MOZ_SOURCE_* constants over to MouseEventBinding. r=qdot
We can't include MouseEventBinding.h in MouseEvents.h because that produces
this include loop:

MouseEventBinding.h -> UIEventBinding.h ->
nsGlobalWindow.h -> nsGlobalWindowInner.h -> nsRefreshDriver.h ->
AnimationEventDispatcher.h -> AnimationComparator.h -> Animation.h ->
EffectCompositor.h -> PseudoElementHashEntry.h -> Element.h ->
PointerEventHandler.h -> MouseEvents.h -> MouseEventBinding.h

MozReview-Commit-ID: 6FNksGil7uD
2018-03-20 00:16:06 -04:00
Kartikaya Gupta
60181110ea Bug 1441324 - Extract an APZInputBridge interface from IAPZCTreeManager. r=rhunt
This separates the methods that are used to deliver input events
synchronously over IPDL to the compositor; this interface will be
remoted over a new APZInputBridge IPDL protocol in future patches.

MozReview-Commit-ID: 1f3V9SUKlfW
2018-03-16 16:28:18 -04:00
Jim Chen
c394d91b71 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
2018-03-09 12:34:38 -05:00
Michael Kaply
b5a6239d48 Bug 1342288 - Remove PresentationMediaPlayerManager. r=snorp
MozReview-Commit-ID: 4H46ahWTntR
2018-03-06 16:33:42 -06:00
James Willcox
5c4f4fd1d7 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
be90e72263 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
565892490c Bug 1436508 part 16. Remove nsIDOMSimpleGestureEvent. r=masayuki
MozReview-Commit-ID: 8JDovhthKtx
2018-02-09 11:17:10 -05:00
Nick Alexander
bd263914ea Bug 1419581 - Part 3: Guard PresentationMediaPlayer windows with MOZ_NATIVE_DEVICES. r=jchen
MozReview-Commit-ID: 3ZlVUMufn2g
2018-01-05 11:35:00 -08:00
Brindusan Cristian
40d299f257 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
a495afbfd9 Bug 1419581 - Part 3: Guard PresentationMediaPlayer windows with MOZ_NATIVE_DEVICES. r=jchen
MozReview-Commit-ID: 3ZlVUMufn2g
2018-01-05 11:35:00 -08:00
Ryan VanderMeulen
e8c58c5f80 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
80764e64e7 Bug 1419581 - Part 3: Guard PresentationMediaPlayer windows with MOZ_NATIVE_DEVICES. r=jchen
MozReview-Commit-ID: 3ZlVUMufn2g
2018-01-05 11:35:00 -08:00
Margareta Eliza Balazs
ad9f945f12 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
e3504ae615 Bug 1419581 - Part 3: Guard PresentationMediaPlayer windows with MOZ_NATIVE_DEVICES. r=jchen
MozReview-Commit-ID: 3ZlVUMufn2g
2018-01-05 11:35:00 -08:00
Andrew McCreight
b1354b9fe7 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
2017-10-27 13:39:28 -07:00
Jim Chen
dad9753bdd 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
2017-12-19 17:02:46 -05:00
Jim Chen
c13580ef17 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
2017-12-13 22:57:21 -05:00
Jim Chen
fbc94cb8de 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
2017-12-13 22:57:21 -05:00
Jim Chen
806f265d41 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
c995d47ab2 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
2017-12-04 11:50:20 -05:00
Sebastian Hengst
9c1eef62e3 merge mozilla-central to autoland. r=merge a=merge 2017-12-01 01:30:16 +02:00
Dylan Roeh
58032e8c10 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
ebc5007c31 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
2017-11-30 13:25:50 -05:00
Jim Chen
6bf1b192b3 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
2017-11-30 13:25:50 -05:00
Jim Chen
7dd42804b4 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
2017-11-30 13:25:50 -05:00
Jim Chen
3681507e9f 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
2017-11-22 14:12:22 -05:00
Jim Chen
12d4120f12 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
2017-11-20 17:17:02 -05:00
Jim Chen
2357bcaefa 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
2017-11-14 18:18:35 -05:00
Jim Chen
3a912ad454 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
2017-11-14 18:18:35 -05:00
Jim Chen
221fb2f02a 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
2017-11-14 18:18:35 -05:00
Jim Chen
523bc36d2a 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
2017-11-14 18:18:34 -05:00
Jim Chen
e806245b7a 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
2017-11-07 01:53:11 -05:00
Jim Chen
f5a0854900 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
2017-11-06 14:54:09 -05:00
Jim Chen
676da58b5d 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
2017-11-06 14:54:08 -05:00
Jim Chen
203417ecce 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
9276b259cd 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
7b8bf197bd 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
5bdc48bf17 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
2017-09-05 13:00:06 -07:00
James Willcox
c3897c59de 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
d8e5141eb7 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
de86c32f68 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
998cd74d67 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
d334200cd6 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
09493fcbcf Bug 1384835 (part 3, attempt 2) - Remove the Preferences::Get*CString() variants that return nsAdoptingCString. r=froydnj. 2017-07-31 14:28:48 +10:00
Jim Chen
3dc76ef494 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
43b4241f6f Bug 1379252 - Remove unused argument. r=rbarker
MozReview-Commit-ID: 7G8i0G9LyvZ
2017-07-07 14:56:10 -04:00