Commit Graph

390 Commits

Author SHA1 Message Date
Carsten "Tomcat" Book
1560e65352 Backed out changeset 9d0048e04446 (bug 1365879) 2017-06-23 12:15:32 +02:00
David Anderson
d2fb1ed134 Add MLGPU feature bits and compositor initialization. (bug 1365879 part 21, r=mattwoodrow) 2017-06-22 21:12:19 -07:00
Carsten "Tomcat" Book
238bf154d5 Backed out changeset 4f6302a98ae4 (bug 1372405) 2017-06-21 13:59:26 +02:00
Edgar Chen
9ecece4cc2 Bug 1236512 - Part 1: Send "occlusionstatechange" custom event when occlusion state in Mac is changed; f=spohl; r=mstange
MozReview-Commit-ID: GTBeH4UwZiU
2017-05-26 18:09:34 +08:00
Bill McCloskey
67e8af4720 Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-20 21:44:11 -07:00
Carsten "Tomcat" Book
38d49a9419 Backed out changeset 844d46609652 (bug 1236512) for test failures in own test 2017-06-20 14:30:54 +02:00
Edgar Chen
cde6168a4b Bug 1236512 - Part 1: Send "occlusionstatechange" custom event when occlusion state in Mac is changed; f=spohl; r=mstange
MozReview-Commit-ID: GTBeH4UwZiU
2017-05-26 18:09:34 +08:00
Kartikaya Gupta
36cdfd496e Bug 1339474 - Enable APZ in QuantumRender builds. r=jrmuizel
All reftests that are still failing with APZ enabled are annotated with
a bug number that is tracking the fix.

MozReview-Commit-ID: 8QU15LHVy1t
2017-06-19 15:46:38 -04:00
domfarolino@gmail.com
a74b51da54 Bug 1274663 - Expose API to trigger device reset. r=dvander 2017-06-15 14:34:00 -04:00
Botond Ballo
6d74d7a067 Bug 1369074 - Store the layers id in a variable of the proper type (uint64_t) in nsBaseWidget::StartAsyncScrollbarDrag(). r=kats
MozReview-Commit-ID: App50MV57JJ
2017-05-31 13:48:01 -04:00
Ryan VanderMeulen
4551e69b02 Merge m-c to autoland. a=merge 2017-05-19 12:26:48 -04:00
Masayuki Nakano
8a4fe66f6a Bug 1339543 part 4 Change nsIWidget::ExecuteNativeKeyBinding() to nsIWidget::GetEditCommands() which just retrieves edit commands for the type r=smaug
Now, nsIWidget::ExecuteNativeKeyBinding() isn't used by anybody for executing
edit commands.  Instead, they need array of edit commands for the key
combination.  So, the method should be renamed to GetEditCommands() and just
return edit commands as an array.

MozReview-Commit-ID: 4G0B1lJ8Lbe
2017-05-19 17:49:41 +09:00
Kartikaya Gupta
a9946470aa Bug 1364987 - Remove the pref to allow APZ with webrender. r=rhunt
People seem to be turning on this pref in the wild and generating crash reports
which are wasting time and energy of people who have better things to do.

MozReview-Commit-ID: 5VfjKaDluYJ
2017-05-16 09:43:36 -04:00
Stephen A Pohl
3c73138c89 Bug 429824: Properly forward native OSX events to the native menu bar if they haven't been handled by the child process in e10s. r=mstange,masayuki 2017-05-15 22:59:35 -04:00
David Anderson
c307b79865 Handle in-process device resets by recreating the entire rendering stack. (bug 1363126 part 2, r=rhunt) 2017-05-11 22:44:27 -07:00
Kris Maglione
2d98d9a4ca Bug 1353060: Allow APZ in popup window widgets. r=kats
Prior to this patchset, we never hosted remote, scrollable content in widgets
other than toplevel and child windows, so all other widget types have APZ
disabled. Since we now need to host remote content in popup widgets, and would
like similar performance and behavior for those browsers as other remote
browsers, we also need to enable APZ for those widgets too.

MozReview-Commit-ID: AVDt9U5i2WK
2017-04-17 13:29:56 -07:00
Kartikaya Gupta
c861a54205 Back out bug 1353060 (3 csets) for possibly causing a checkerboarding regression. r=backout
MozReview-Commit-ID: AIHvzAUUCeu
2017-05-09 13:23:20 -04:00
David Anderson
84e57aa33f Make PLayerTransaction's constructor async. (bug 1350634, ipc_r=billm, r=mattwoodrow, r=kats)
PLayerTransaction's constructor was previously synchronous so we could
return a TextureFactoryIdentifier. This is quite reliably available
already in the case of opening a tab, due to RenderFrameParent knowing
which compositor it is attached to, so we can make the constructor
asynchronous.

In the top-level widget case, we add a new synchronous message to find
the TextureFactoryIdentifier.
2017-05-05 10:53:17 -07:00
Kris Maglione
1d336e7c90 Bug 1353060: Allow APZ in popup window widgets. r=kats
Prior to this patchset, we never hosted remote, scrollable content in widgets
other than toplevel and child windows, so all other widget types have APZ
disabled. Since we now need to host remote content in popup widgets, and would
like similar performance and behavior for those browsers as other remote
browsers, we also need to enable APZ for those widgets too.

MozReview-Commit-ID: AVDt9U5i2WK
2017-04-17 13:29:56 -07:00
Phil Ringnalda
7fea418646 Backed out changeset 867fcd3e181d (bug 1350634) for leaking in sessionstore's browser-chrome tests
MozReview-Commit-ID: 7NS2GkfZSp0
2017-04-30 21:14:10 -07:00
David Anderson
4baee636a8 Make PLayerTransaction's constructor async. (bug 1350634, ipc_r=billm, r=mattwoodrow, r=kats)
PLayerTransaction's constructor was previously synchronous so we could
return a TextureFactoryIdentifier. This is quite reliably available
already in the case of opening a tab, due to RenderFrameParent knowing
which compositor it is attached to, so we can make the constructor
asynchronous.

In the top-level widget case, we add a new synchronous message to find
the TextureFactoryIdentifier.
2017-04-30 17:22:56 -07:00
Kris Maglione
f1028815bb Bug 1365660: Part 4 - Only enable APZ for popups which contain remote content. r=kats
We only ever need to enable APZ for popups which contain remote content. In
theory, enabling it for other popups shouldn't hurt, but having it enabled
adds overhead that we'd rather avoid, and causes painting issues under some
circumstances.

Ideally, the painting issues should be fixed, but disabling APZ is a good
short term workaround, and we should try to avoid the unnecessary overhead
either way.

MozReview-Commit-ID: AOivnTQBWQh
2017-05-16 14:28:20 -07:00
Kris Maglione
c6d57c7637 Bug 1365660: Part 2 - Add a HasRemoteContent flag to popup widgets that contain remote browsers. r=kats,bas
There are several behaviors that we only need to apply to popups which are
known to contain remote content. And since those behaviors can cause issues
elsewhere, we need to be able to identify popups which should contain remote
content, and treat them specially, where appropriate.

MozReview-Commit-ID: EMFrSP8lZiD
2017-05-17 10:16:25 -07:00
Masayuki Nakano
fcf7a62eba Bug 1217700 part.1 nsIWidget should return reference to IMENotificationRequests r=m_kato
IMEContentObserver may need to change notifications to send when TextInputProcessor begins input transaction.  In current design, IMEContentObserver needs to retrieve IMENotificationRequests at every change.  However, if nsIWidget returns a reference to its IMENotificationRequests, IMEContentObserver can call it only once.

For that purpose, this patch changes nsIWidget::GetIMENotificationRequests() to nsIWidget::IMENotificationRequestsRef() and make it return |const IMENotificationRequests&|.  However, if the lifetime of the instance of IMENotificationRequest is shorter than the widget instance's, it's dangerous.  Therefore, it always returns TextEventDispatcher::mIMENotificationRequests.  TextEventDispatcher's lifetime is longer than the widget.  Therefore, this guarantees the lifetime.

On the other hand, widget needs to update TextEventDispatcher::mIMENotificationRequests before calls of nsIWidget::IMENotificationRequestsRef().  Therefore, this patch makes TextEventDispatcher update proper IMENotificationRequests when it gets focus or starts new input transaction and clear mIMENotificationRequests when it loses focus.

Note that TextEventDispatcher gets proper requests both from native text event dispatcher listener (typically, implemented by native IME handler class) and TextInputProcessor when TextInputProcessor has input transaction because even if TextInputProcessor overrides native IME, native IME still needs to know the content changes since they may get new input transaction after that.

However, there may not be native IME handler in content process.  If it runs in Android, PuppetWidget may have native IME handler because widget directly handles IME in e10s mode for Android.  Otherwise, native IME handler is in its parent process.  So, if TextInputHandler has input transaction in content process, PuppetWidget needs to behave as native event handler.  Therefore, this patch makes PuppetWidget inherit TextEventDispatcherListener and implements PuppetWidget::IMENotificationRequestsRef().

MozReview-Commit-ID: 2SW3moONTOX
2017-04-15 01:35:58 +09:00
Masatoshi Kimura
c2c48aea55 Bug 1356565 - Use AddFloatVarCache to cache layout.css.devPixelsPerPx. r=kanru
MozReview-Commit-ID: HZ9pBiU17H3
2017-04-09 01:28:54 +09:00
Masayuki Nakano
6d6b3d0a27 Bug 1296220 Rename nsIMEUpdatePreference to mozilla::widget::IMEUpdatePreference r=m_kato
MozReview-Commit-ID: 2rIXTlwA6my
2017-04-11 21:24:55 +09:00
Masatoshi Kimura
743b848027 Bug 1353493 - Cache the return value for nsIWidget::DefaultScaleOverride(). r=kanru
MozReview-Commit-ID: ExP179bxbHe
2017-04-06 23:30:09 +09:00
Kartikaya Gupta
6463b8f71f Bug 1343977 - Extract nsAutoRollup into a more self-contained class and clean it up some. No functional changes intended. r=enndeakin+6102
This just decouples nsAutoRollup from the widget class, which it isn't really
bound to anyway because the internal data is static. We'll need to be able to
use nsAutoRollup independently in the next patch.

MozReview-Commit-ID: 1dxSLTr4g1K
2017-03-13 10:44:56 -04:00
Jim Chen
0911a44f43 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
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