Commit Graph

411 Commits

Author SHA1 Message Date
Jim Chen
791a65ebd1 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
sotaro
7e65803272 Bug 1340510 - Fix nsBaseWidget::RevokeTransactionIdAllocator() r=nical 2017-02-20 10:57:06 +09:00
Kartikaya Gupta
4979fd659f Merge m-c to graphics
MozReview-Commit-ID: IN2hMCjMHLL
2017-02-17 23:33:24 -05:00
Nicolas Silva
1819922f47 Bug 1335799 - Update WR layers and FFI/bindings code for the webrender update. r=jrmuizel
MozReview-Commit-ID: Hv3MwSr97Op
2017-02-14 13:34:15 -05:00
Kartikaya Gupta
531c45795f Bug 1337085 - Add a gfxVar to control whether or not webrender is enabled. r=sotaro
MozReview-Commit-ID: 8Ebc0DbhYbZ
2017-02-06 22:22:36 -05:00
Kartikaya Gupta
3e3b1b3f6f Merge m-c to graphics
MozReview-Commit-ID: uU8MPphFqj
2017-02-02 13:38:51 -05:00
Kartikaya Gupta
5c508e0b98 Merge m-c to graphics
MozReview-Commit-ID: FOyS87VawTT
2017-01-25 08:52:04 -05:00
Kartikaya Gupta
32150e0df6 Bug 1333122 - Remove gfxPrefs::WebRenderEnabled() to avoid it being used inappopriately; do WR and APZ decision-making during compositor creation. r=dvander?
MozReview-Commit-ID: Fkv6G35BcFw
2017-01-24 08:03:08 -05:00
Kartikaya Gupta
62ce806cab Merge m-c to graphics
MozReview-Commit-ID: LyU2woFOt7O
2017-01-18 13:48:56 -05:00
Kartikaya Gupta
ebf1ce5c2b Bug 1328066 - Don't broadcast the live-resize events to all browser windows unnecessarily. r=mstange
The machinery for suppressing the displayport during live resizes
was using the Observer service. However, in the case of multiple
browser windows, this meant that all the open browser windows would
have their displayport suppressed if *any* of the browser windows
was being resized. This was mostly ok, as the displayport suppression
would be turned off once the resize ended. However, the code to
kick off a repaint with the unsuppressed displayport would only get
triggered on one of the windows (whichever happened to process the
unsuppress message last).

This patch stops using the Observer service for the implementation
machinery, and instead locates the active TabParent of the relevant
nsWindow, and invokes the displayport suppression directly on that.
This fixes the repainting bug and also avoids unnecessarily
broadcasting the suppression/unsuppression notification to windows
that don't neccessarily need it.

MozReview-Commit-ID: LBHOgOW9KUp
2017-02-01 10:38:16 -05:00
Kartikaya Gupta
d1c11e9473 Bug 1326421 - Add a compositor option for WebRender being enabled or not. r=dvander
MozReview-Commit-ID: LeQRgKSn0Ql
2017-01-13 15:16:51 -05:00
Kartikaya Gupta
8975e03aba Back out 4 csets from bug 1326421 because of various test failures. r=backout 2017-01-13 17:07:59 -05:00
Kartikaya Gupta
ef61d8af30 Bug 1326421 - Clean up remaining uses of gfxPrefs::WebRenderEnabled. r=dvander
MozReview-Commit-ID: 4qE5l4cuHlk
2017-01-13 15:16:52 -05:00
Kartikaya Gupta
8e99801a4a Bug 1326421 - Add a compositor option for WebRender being enabled or not. r=dvander
MozReview-Commit-ID: LeQRgKSn0Ql
2017-01-13 15:16:51 -05:00
Ryan Hunt
3987a44ddb Merge m-c to graphics 2017-01-13 10:14:22 -06:00
David Anderson
c95520d716 Fix bogus check in OnRenderingDeviceReset. (bug 1333329 part 4, r=rhunt) 2017-01-24 11:23:12 -08:00
David Anderson
94fb0ef50b Ignore paints when a content device reset has not yet been acknowledged. (bug 1333329 part 3, r=rhunt) 2017-01-24 11:23:12 -08:00
David Anderson
31ae23d1eb Replace async image container IDs with a typed struct. (bug 1323957 part 1, r=mattwoodrow) 2017-01-17 18:47:05 -08:00
Kartikaya Gupta
e3df5ca2fe Bug 1330037 - Introduce a CompositorOptions struct that holds options on a per-compositor basis. r=dvander
MozReview-Commit-ID: Kja7zpCDmp3
2017-01-12 17:29:41 -05:00
Kartikaya Gupta
2d075dbfbe Merge m-c to graphics
MozReview-Commit-ID: 5ovnMmSOiZX
2017-01-09 10:18:37 -05:00
Kartikaya Gupta
26f427122c Merge m-c to graphics
MozReview-Commit-ID: E0Sr26LKcZx
2016-12-21 10:16:15 -05:00
Nicholas Nethercote
0aafa0e5ec Bug 1325234 (part 9) - Remove remaining NS_IMETHOD_ occurrences from nsIWidget. r=mstange.
|virtual T| is clearer than |NS_IMETHOD_(T)|.
2016-12-21 15:27:20 +11:00
Nicholas Nethercote
56412157dc 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|.
2016-12-21 11:13:08 +11:00
Nicholas Nethercote
343e7a7830 Bug 1325234 (part 4) - Streamline nsIWidget::{SetFocus,SetNonClientMargins}(). r=mstange.
This patch changes them from |NS_IMETHOD| to |virtual nsresult|.
2016-12-21 11:13:08 +11:00
Nicholas Nethercote
3343e46c62 Bug 1325234 (part 1) - Streamline nsIWidget::NotifyIME. r=jimm.
This patch changes it from |NS_IMETHOD| to |virtual nsresult|. The callsites
were a mix of checked and unchecked so using |MOZ_MUST_USE| didn't feel
appropriate.
2016-12-20 09:55:30 +11:00
sotaro
d995adddfd Bug 1320284 - Remove some MOZ_ENABLE_WEBRENDER r=nical? 2016-12-15 14:05:38 +09:00
Kartikaya Gupta
a386c27f34 Merge m-c to graphics
MozReview-Commit-ID: C13IwWOpf64
2016-12-14 09:32:38 -05:00
Kartikaya Gupta
17245d5f13 Merge m-c to graphics
MozReview-Commit-ID: KhxBqJbwxv8
2016-12-06 23:45:24 -05:00
sotaro
02c56edd1b Bug 1320284 - Switch WebRender by Pref r=nical? 2016-12-04 17:40:52 +09:00
sotaro
f218c79e98 Bug 1321183 - Deliver TextureFactoryIdentifier r=nical 2016-12-01 12:02:37 +09:00
Kartikaya Gupta
a22dff19b1 Merge m-c to graphics
MozReview-Commit-ID: E9vVT9ZNSAJ
2016-11-22 10:21:45 -05:00
David Anderson
53c2a67776 Delay the DidComposite call in ClientLayerManager's destructor. (bug 1305829, r=mattwoodrow) 2016-11-21 20:12:55 -08:00
Nicholas Nethercote
cde4c98d3e Bug 1299335 (part 6) - Streamline nsIWidget::{Move,Resize}Client(). r=mstange.
This patch changes them from |NS_IMETHOD| to |virtual void| because the return
values are never used.
2016-12-19 14:38:19 +11:00
Nicholas Nethercote
effeac0413 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.
2016-12-16 10:54:12 +11:00
Nicholas Nethercote
545f84822e 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.
2016-12-16 10:54:11 +11:00
Nicholas Nethercote
0f1cbfb57b 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.
2016-12-16 10:54:11 +11:00
Nicholas Nethercote
30a28fa991 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.
2016-12-16 10:54:02 +11:00
Mozilla Graphics Team
1f923fd38d Bug 1317774 - Add non-gfx code needed to use WebRender in gecko. r=gfx
This completes the migration of code from the github branch to the graphics
project repo. At this point all webrender-related code should be disabled
unless --enable-webrender is provided in the mozconfig.

MozReview-Commit-ID: Dea8rxM6UPL
2016-11-16 08:54:51 -05:00
Kevin Wern
f8e064f837 Bug 1304044 - implement auxclick r=smaug
After click events with button 2 or 3 are fired, fire auxclick, a new
event intended to represent a non-primary mouse click. Because this
event, based on the design examples and blink's implementation, is
intended to be used with content listeners, always dispatch on content
listeners--not just those that force all events to be dispatched (i.e.
document/window). This diverges from the behavior of our click events
from non-primary buttons.

Eventually, we hope this will replace click events for non-primary
buttons. For now, leave those events for compatibility reasons.

Additionally, add handling of this new event, where necessary.

MozReview-Commit-ID: 8osozM4h6Ya
2016-11-30 19:48:02 -05:00
David Anderson
0757ad84ef Don't reset devices for each tab when the compositor resets. (bug 1316788, r=rhunt) 2016-11-14 11:47:01 -08:00
Sylvestre Ledru
34581e37d5 Bug 1338086 - Remove useless else blocks in order to reduce complexity widget/ r=mstange
MozReview-Commit-ID: AjL8H7aHLkm
2017-02-09 10:58:25 +01:00
Sylvestre Ledru
a78ffc700c Bug 1317973 - Use auto type specifier for variable declarations to improve code readability and maintainability r=tnikkel
MozReview-Commit-ID: 5RDrGaxV3E4
2016-11-16 15:22:36 +01:00
Carsten "Tomcat" Book
a3d6de70fa merge mozilla-inbound to mozilla-central a=merge 2016-11-09 16:38:04 +01:00
Kartikaya Gupta
53caf6b3c1 Bug 1315974 - When creating the widget layer manager, don't assume it will always be a ClientLayerManager. r=mattwoodrow
MozReview-Commit-ID: 8r037jdHJ0E
2016-11-08 10:42:26 -05:00
Kartikaya Gupta
37638cacbd Bug 1315477 - Add a AsBasicLayerManager() function and use instead of static_casts. r=mattwoodrow
MozReview-Commit-ID: DV6XZBEXw85
2016-11-07 11:38:45 -05:00
Kevin Wern
4f6968375c Bug 687787: support focusin/focusout based on webkit/blink r=smaug
Blink and webkit launch focusin after focus and focusout after blur. Despite
this contradiction with the spec, it is best to mirror this new way, as there
is little guidance or existing code to clarify implementation amiguities that
can arise from the spec.

If focus/blur is fired on a window or document, or the event triggers a change
of focus, do not fire the corresponding focusin/focusout. Otherwise, always
fire the corresponding event.

Additionally, add a mochitest and a w3c-platform-test.

MozReview-Commit-ID: AgQ8JBxKIqK
2016-10-06 21:39:53 -04:00
Ryan Hunt
b0f2285ebd Bug 1313199 - Allow sending reset compositor messages over IPDl. r=dvander 2016-11-06 12:56:53 -06:00
Kevin Chen
38a9e798ba Bug 1309829 - Remove redundant IdentifyTextureHost call. r=dvander 2016-10-17 20:33:00 +02:00
Chris Peterson
8337d17e2d Bug 1310399 - Fix -Wshadow warning in widget/nsBaseWidget.cpp. r=jimm
widget/nsBaseWidget.cpp:1970:14 [-Wshadow] declaration shadows a local variable
2016-10-17 22:37:52 -07:00
Nicolas Silva
a6c01acd99 Bug 1299860 - Don't use the compositor backend of a popup with ImageBridge and VRManager. r=Bas 2016-10-07 11:08:32 +02:00