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

10417 Коммитов

Автор SHA1 Сообщение Дата
David Anderson 8ac742dba7 Bug 1385101 Part 1 - Create CapturedPaintState in ContentClient rather than ClientPaintedLayer. r=mchang 2017-08-05 11:25:45 -07:00
Stone Shih f5cb5ecde2 Backed out changeset 07b66fb75c71 (bug 1351148) 2017-08-11 15:19:37 +08:00
vincentliu ab39d5cc75 Bug 1386487 - Add checking mechanism if ID3D11Buffer created fail. r=rhunt, dvander 2017-08-09 23:23:18 +08:00
Ethan Lin 80ffba5a9e Bug 1387455 - Add nullptr check for the draw target in WebRenderLayerManager::GenerateFallbackData. r=kats
MozReview-Commit-ID: Dk8WiqOmA1y

--HG--
extra : rebase_source : 91f66b56b70e7cf6401baed1a84fa63bc422dc8b
2017-08-07 10:10:58 +08:00
Mason Chang cddef9fa41 Bug 1386966. Coalesce OMTP drawtarget flushes until finished painting a layer. r=dvander 2017-08-09 08:24:15 -07:00
Kartikaya Gupta b239f49bcb Bug 1370682 - Send DisplayItemClip's RoundedRect clips to WR. r=mstange
This was spot-tested by taking the
layout/reftests/border-radius-clipping-1.html testcase, removing the
border, and fiddling with the border-radius values. Without this patch,
the div always appears with rectangular corners but with this patch the
border-radius value is respected correctly.

MozReview-Commit-ID: 1wBFnJnYCwC

--HG--
extra : rebase_source : 542f814af9369fe712af76fc2a8c78de26c6227f
2017-08-10 14:00:08 -04:00
Sebastian Hengst 5d5e6ac39c Backed out changeset 972371dc461b (bug 1370682) 2017-08-10 18:28:55 +02:00
Kartikaya Gupta 7027ecc44b Bug 1370682 - Send DisplayItemClip's RoundedRect clips to WR. r=mstange
This was spot-tested by taking the
layout/reftests/border-radius-clipping-1.html testcase, removing the
border, and fiddling with the border-radius values. Without this patch,
the div always appears with rectangular corners but with this patch the
border-radius value is respected correctly.

MozReview-Commit-ID: Cu1K3rLjm0V

--HG--
extra : rebase_source : b5994faceb9dd7e52222714bdbc5b06886d26415
2017-08-09 19:19:03 -04:00
Stone Shih b15ea606eb Bug 1351148 Part3: Synthesize native input events with priority. f=kats,smaug. r=smaug.
The test helper_touch_action_regions.html uses nsDOMWindowUtils to synthesize native input events and creates some runnables to trigger the test. It expects the runnables which synthesize native input events are processed first, then the runnables to continue the test, and finally the input events are forwarded from chrome process to content process. Enabling event prioritization may change the execution order.
Wraps those runnables to synthesize native input events as priority=input and dispatches those runnables to continue the test with priority=input to make sure the execution order is as expected.

MozReview-Commit-ID: 8hkaB1FRW9T
2017-05-19 15:41:24 +08:00
JerryShih 5d101602fb Bug 1357299 - P12: Add SyncObject in RendererOGL. v2. r=nical
With DXVA2 hardware-video-decoding, the RendererOGL should have a
synchronization mechanism to prevent the flickering of video texture.
Create a SyncObject in RendererOGL to do the texture synchronization.

The WebRenderAPI also exposes the RendererOGL's SyncHandle to
WebRenderBridgeParent. Then, the WebRenderBridgeParent could pass this SyncHandle
to the video decoding module for texture synchronization.

MozReview-Commit-ID: toQ2mO5fzG
2017-08-07 18:15:25 +08:00
JerryShih 061742e951 Bug 1357299 - P11: Update layers, dxva and vr module to use SyncObjectChild. v3. r=mattwoodrow,dvander
MozReview-Commit-ID: 4HTPz0YcYHq
2017-08-07 18:15:24 +08:00
JerryShih 3d8f544df7 Bug 1357299 - P10-1: Update MLGDeviceD3D11 and CompositorD3D11 to use SyncObjectHost. r=dvander
From bug 1163440, there is an additional AcquireSync() call around the swapChain::Present(). Export the KeyedMutex from SyncObjectD3D11Host for this synchronization.

MozReview-Commit-ID: 8mPs4jKj67W
2017-08-07 18:15:24 +08:00
JerryShih e60ceae85f Bug 1357299 - P10: Update MLGDeviceD3D11 and CompositorD3D11 to use SyncObjectHost. v2. r=mattwoodrow,dvander
MozReview-Commit-ID: 1a0Ho7smkAx
2017-08-07 18:15:24 +08:00
JerryShih 50bd333891 Bug 1357299 - P9: Do the refactoring for SyncObject. v2. r=mattwoodrow,dvander
The MLGDeviceD3D11, CompositorD3D11 and TextureClient use the same synchronization mechanism.
Create the new SyncObjectClient/Host types for reusing code.

Add SyncObject.cpp/h and create two new data types: SyncObjectClient and SyncObjectHost.
The SyncObjectClient is used for the TextureClient synchronization at client side.
The SyncObjectHost is used for the TextureHost synchronization in renderers such
as MLGDeviceD3D11 and CompositorD3D11.

MozReview-Commit-ID: 3l56WK1aZ15
2017-08-07 18:15:23 +08:00
JerryShih 339fc2e58c Bug 1357299 - P7: Fix unified-build build break. r=mattwoodrow
MozReview-Commit-ID: GSUxyWUfBVt
2017-08-07 18:15:23 +08:00
JerryShih f488575a07 Bug 1357299 - P3: Support DXGI texture type for WR. v2. r=nical
Create the corresponding RenderTextureHost type and WR commands for DXGI texture type.

The DXGITextureHostD3D11 will use 1 or 2 image keys for non-nv12 and nv12 texture format.

The DXGIYCbCrTextureHostD3D11 is a special case. The WR uses ANGLE in windows platform,
but the ANGLE doesn't support A8 format directx texture directly. So, we use libyuv to
convert the DXGIYCbCrTextureHostD3D11 texture buffer into RGBA format buffer and use
WR::AddImage() for that image. This is a slow code path. We will refine this case later.

The whole RenderD3D11TextureHostOGL implementation is in the next patch.

MozReview-Commit-ID: F4mPCALj1OY
2017-08-07 18:15:22 +08:00
JerryShih 9fdb7a255f Bug 1357299 - P2: Remove the unused IsWrappingNativeHandle() function in WebRenderTextureHost. r=nical
All WR texture related codes are move into GetWRImageKeys(), AddWRImage() and PushExternalImage().
Each texture type could generate its WR commands individually. So, this "mIsWrappingNativeHandle" flag is not used anymore.

MozReview-Commit-ID: 1TITkGRemAr
2017-08-07 18:15:21 +08:00
sotaro 9be589ac3c Bug 1387352 - Avoids falling into the fallback codepath for async ImageContainers in layers-free mode r=kats 2017-08-07 11:09:50 +09:00
David Anderson 783e6ecfd6 Add diagnostics for the crash in bug 1387467. r=milan 2017-08-05 01:32:25 -07:00
Sebastian Hengst f257cde65c Backed out changeset c044d8842861 (bug 1387467) for build bustage at FrameBuilder.cpp:154 (no member GetName). r=backout on a CLOSED TREE 2017-08-05 11:54:09 +02:00
David Anderson 20c4bd2549 Add diagnostics for the crash in bug 1387467. r=milan 2017-08-05 01:32:25 -07:00
Mason Chang ab70851265 Bug 1386849 - Always force CompositorBridgeChild::NotifyFinishedAsyncPaint. r=dvander 2017-08-03 22:55:44 -07:00
Ryan Hunt 2dbd25ee8a Bug 1384980 - Add a doc comment for apz.keyboard.enabled. r=botond
MozReview-Commit-ID: 5pQXqmUzxJQ

--HG--
extra : rebase_source : c14735e1fde801b8ee9eb388006e7012627ab33f
2017-08-04 11:31:49 -04:00
Ryan Hunt 767be953a9 Bug 1385071 - Allow keyboard APZ with passive listeners, behind a pref. r=kats
This commit adds the pref, 'apz.keyboard.passive-listeners', to allow web
content to have passive key event listeners and use keyboard APZ. When we are
allowing passive listeners, we need to dispatch the input to content and can
no longer consume the event. So we use mHandledByAPZ in nsXBLWindowKeyHandler
to determine whether we still need to do the default action, or whether it
has been done by APZ.

MozReview-Commit-ID: 2HAC6DjDyPZ

--HG--
extra : rebase_source : 77543ef3f28bdbb8ef77e984097ce75cdf333c82
2017-07-27 19:53:57 -04:00
Ryan Hunt c38e071dbe Bug 1385071 - Add another method to EventTarget for detecting only non-passive key listeners. r=smaug
This is for adding a pref that will allow web content to have key listeners
and use keyboard APZ, if they are marked passive. This commit also reworks
the function names and comments to make them more accurate.

MozReview-Commit-ID: LGDaVQOK1CS

--HG--
extra : rebase_source : a6bb4b7fff3488dea62b9114aa164814c74561a4
2017-07-27 19:46:44 -04:00
sotaro a773ee4276 Bug 1354411 - Rebuild CompositorSessions if WebRender is disabled r=kats
When WebRender creation is failed, WebRender is disabled in gecko. There is a case that WebRenderBridgeParents exist when WebRender is disabled. To handle this, gecko needs to rebuild all CompositorSessions.

There is also a problem related to gfxVars::UseWebRender on compositor thread. If e10s is enabled, but no-gpu process(default on linux and mac), gfxVars::UseWebRender change is soon notified by compositor thread tasks. If WebRender creation failure happens at 2nd WebRender creation, several WebRenderBridgeParents for 1st WebRender could exist. IPC messages from WebRenderLayerManager are normally async, then there is a chance that the WebRenderBridgeParents receive the messages after the gfxVars::UseWebRender change. Further the gfxVars::UseWebRender change in content process could be delayed than WebRenderBridgeParents, then content process does not have a way to stop sending PWebRenderBridge IPC until the change of gfxVars::UseWebRender is received. WebRenderBridgeParent related tasks handle the message, but some tasks are done based on gfxVars::UseWebRender. At this time, gfxVars::UseWebRender returned false on compositor thread, then it cause unexpected result for WebRenderBridgeParent and WebRender. To addres this inconsistent situation, WebRenderBridgeParent related tasks on compositor thread stop to use gfxVars::UseWebRender.
2017-08-04 14:36:41 +09:00
David Anderson b56bbf2305 Change the subdoc invalidation callback to handle overflow. (bug 1345891 part 5, r=mattwoodrow) 2017-08-03 21:22:49 -07:00
David Anderson aae46b02d1 Handle 3d context bounds overflow in LayerTreeInvalidation. (bug 1345891 part 4, r=mattwoodrow) 2017-08-03 21:22:49 -07:00
David Anderson 2cc63ceef3 Handle invalidation bounds overflow in ContainerLayerMLGPU. (bug 1345891 part 3, r=mattwoodrow) 2017-08-03 21:22:49 -07:00
David Anderson bb8c6e5f61 Handle bounds overflow in consumers of LayerTreeInvalidation. (bug 1345891 part 2, r=mattwoodrow) 2017-08-03 21:22:48 -07:00
David Anderson e74ca7f347 Refactor LayerTreeInvalidation::ComputeChangeInternal's signature to handle overflow. (bug 1345891 part 1, r=mattwoodrow) 2017-08-03 21:22:48 -07:00
Mason Chang 7dc5a03ec2 Bug 1386073 Don't set RotatedBuffer's returned DrawTarget transform with omtp. r=dvander 2017-08-03 20:51:30 -07:00
Mason Chang 68b377c1ce Bug 1383916 Prep a DrawTarget to be drawn to on the paint thread. r=dvander 2017-08-03 08:50:32 -07:00
Sebastian Hengst 5cfce14aba merge mozilla-central to mozilla-inbound. r=merge a=merge 2017-08-03 12:17:50 +02:00
Sebastian Hengst 50d2d60772 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 5MywkQxECqB
2017-08-03 11:46:00 +02:00
Ethan Lin 2f3e874c80 Bug 1386553 - Move boundary calculations from each item's CreateWebRenderCommands to StackingContextHelper constructor. r=kats
MozReview-Commit-ID: 7PJIghki2g2

--HG--
extra : rebase_source : cc54e11719239814eee6f6e6f7360fbc0d10f0ad
2017-08-03 17:41:41 +08:00
David Anderson 79f94b4bc8 Skip over layers with degenerate transforms. (bug 1381352, r=mattwoodrow) 2017-08-02 23:48:44 -07:00
sotaro 1b714b3485 Bug 1386903 - Fix IPDL reference handling of CrossProcessCompositorBridgeParent::AllocPWebRenderBridgeParent() r=nical 2017-08-03 18:36:55 +09:00
Sebastian Hengst a1ff1e3d1d Backed out changeset e5b859d66536 (bug 1386553) for Windows bustage at layers/StackingContextHelper.h(50). r=backout on a CLOSED TREE 2017-08-03 09:57:53 +02:00
Ethan Lin a05d601f59 Bug 1386553 - Move boundary calculations from each item's CreateWebRenderCommands to StackingContextHelper constructor. r=kats
MozReview-Commit-ID: 7PJIghki2g2
2017-08-03 15:24:25 +08:00
Morris Tseng 65beb79d45 Bug 1379920 - Support canvas in layers free mode. r=kats
MozReview-Commit-ID: 42jOb3fzodb
2017-08-03 13:55:15 +08:00
Morris Tseng 27195d489d Bug 1379920 - Introduce mLastCanvasDatas. r=kats
mLastCanvasDatas store used WebRenderCanvasData in last full
transaction. So that in next empty transaction, we can update canvas
content through mLastCanvasDatas.

MozReview-Commit-ID: 2H2m8R7Kzwf
2017-08-03 13:55:15 +08:00
Morris Tseng 23c9ce9b7b Bug 1379920 - Introduce WebRenderCanvasData. r=kats
MozReview-Commit-ID: 4aBfWib1bQq
2017-08-03 13:55:14 +08:00
Morris Tseng f3d4ff499f Bug 1379920 - Introduce CanvasRenderer and its derived classes. r=nical,jrmuizel
This patch move common canvas interfaces out of layer. So I create a
base class CanvasRenderer which move interfaces from CanvasLayer.
CopyableCanvasRenderer from CopyableCanvasLayer, ClientCanvasRenderer
from ClientCanvasLayer and WebRenderCanvasRenderer from
WebRenderCanvasLayer. And finally, WebRenderCanvasRendererSync for the
non layers free mode and WebRenderCanvasRendererAsync for the layers
free mode.

Summary all changes in this patch.
* Move class CanvasLayer::Data to CanvasRenderer.h and rename it to
CanvasInitializeData. Because this class not only use by layer but also
* Move BasicCanvasLayer::UpdateSurface to
CopyableCanvasRenderer::ReadbackSurface.
* CanvasClient::Update now accepts ShareableCanvasRenderer as parameter.
not CanvasLayer.
use by layers-free mode. Move it out of layer's class makes more sense.
* Add InitializeCanvasRenderer in the canvas related classes to
initialize CanvasRenderer without involved layer.
* All canvas layer has function "CreateCanvasRendererInternal" that
initialize corresponding CanvasRenderer.

* Description of all CanvasRenderer classes:
** CanvasRenderer: Based classes.
** CopyableCanvasRenderer: Can readback canvas content to a
SourceSurface. Use by BasicCanvasLayer.
** ShareableCanvasRenderer: Provide IPC capabilities that allow sending
canvas content over IPC. This is pure virtual class because the IPC handling is
different in different LayerManager.
** ClientCanvasRenderer: Implement IPC handling for ClientLayerManager.
Use by ClientCanvasLayer.
** WebRenderCanvasRenderer: Implement IPC handling for
WebRenderLayerManager.
** WebRenderCanvasRendererSync: Use by WebRenderCanvasLayer.
** WebRenderCanvasRendererAsync: Use by layers-free mode in WebRender.

class diagram shows below:

                      +--------------+
                      |CanvasRenderer|
                      +-------+------+
                              ^
                              |
                  +----------------------+
                  |CopyableCanvasRenderer|
                  +----------------------+
                              ^
                              |
                  +-----------+-----------+
                  |ShareableCanvasRenderer|
                  +-----+-----------------+
                        ^      ^
          +-------------+      +-------+
          |                            |
+--------------------+       +---------+-------------+
|ClientCanvasRenderer|       |WebRenderCanvasRenderer|
+--------------------+       +--------+--+-----------+
                                      ^  ^
              +-----------------------+  +----+
              |                               |
+-------------+-------------+   +-------------+--------------+
|WebRenderCanvasRendererSync|   |WebRenderCanvasRendererAsync|
+---------------------------+   +----------------------------+

MozReview-Commit-ID: 5hqQ19W169r
2017-08-03 13:55:14 +08:00
Morris Tseng 4fa6ccb4b3 Bug 1379920 - Rename Copy/ShareableCanvasLayer to Copy/ShareableCanvasRenderer. r=nical,jrmuizel
MozReview-Commit-ID: 9PItJtYtpCY

--HG--
rename : gfx/layers/CopyableCanvasLayer.cpp => gfx/layers/CopyableCanvasRenderer.cpp
rename : gfx/layers/CopyableCanvasLayer.h => gfx/layers/CopyableCanvasRenderer.h
rename : gfx/layers/ShareableCanvasLayer.cpp => gfx/layers/ShareableCanvasRenderer.cpp
rename : gfx/layers/ShareableCanvasLayer.h => gfx/layers/ShareableCanvasRenderer.h
2017-08-03 13:55:14 +08:00
Morris Tseng 2ecf605b8b Bug 1379920 - Add aAsync param to AddPipelineIdForAsyncCompositable and rename it to AddPipelineIdForCompositable. r=sotaro
When empty transaction in layers free mode, we don't rebuild whole
display list. But the canvas content will be updated and send the
content to parent by CanvasClient. We need some mechanism just like
async video which can update the content without rebuild the dl. But
CanvasClient doesn't use ImageBridge at all. So I slightly modify
AddPipelineIdForAsyncCompositable to let it support the Compostiable
either store in ImageBridge or WebRenderBridgeParent.

MozReview-Commit-ID: 3mKv13Pgc2k
2017-08-03 13:55:13 +08:00
Morris Tseng c956c9f91d Bug 1379920 - Fix unified build error. r=nical
MozReview-Commit-ID: Dx50fOh737p
2017-08-03 13:55:13 +08:00
Morris Tseng fbee651cc7 Bug 1378606 - Support mix-blend-mode in layers-free mode.
MozReview-Commit-ID: LNORKj1bUYq
2017-08-03 11:27:45 +08:00
Morris Tseng 5c89592091 Bug 1383212 - Store WebRenderLayerManager by RefPtr instead of raw pointer. r=kats
MozReview-Commit-ID: ArzdU60bIOE
2017-08-03 11:20:53 +08:00
Wes Kocher 851b59bdbe Merge m-c to inbound a=merge
MozReview-Commit-ID: 1p4eNdfSz9p
2017-08-02 17:46:32 -07:00
Wes Kocher baf6cddc4c Merge inbound to central, a=merge
MozReview-Commit-ID: 9NFjSEt96iT
2017-08-02 17:11:51 -07:00
David Anderson 6fc9eaab4a Don't flush async paints on the main thread. (bug 1386517, r=mattwoodrow) 2017-08-02 11:37:31 -07:00
Randall Barker 96a2116ce5 Bug 1370544 - Ensure EGLSurface is created with the same EGLConfig as the context r=jgilbert
MozReview-Commit-ID: 1cN7VzCa2lV
2017-08-02 17:09:37 -07:00
Botond Ballo a69196a7bc Bug 1385468 - Notify browser.xml when APZ cancels an AutoscrollAnimation. r=kats
The notification is sent via GeckoContentController, PAPZCTreeManager if
necessary (to go from the GPU process to the parent process), and the
observer service.

Naturally, the notification is not sent in the case where it's browser.xml
that initiates the shutdown.

MozReview-Commit-ID: IAaSf4HiDF4

--HG--
extra : rebase_source : 80855ac7d3ae44c393dde96650b330cc737f69d6
2017-07-31 19:15:26 -04:00
David Anderson ba247834e2 Always visit children of container layers, in case they have asynchronous animations outside of the precomputed visible bounds. (bug 1382382, r=mattwoodrow) 2017-08-02 14:24:13 -07:00
sotaro a17b90875f Bug 1386505 - Fix IPDL reference handling of CompositorBridgeParent::AllocPWebRenderBridgeParent() r=nical 2017-08-02 22:21:17 +09:00
Phil Ringnalda 2ef9ec6589 Backed out changeset 525c6c747a7a (bug 1383916) for Windows 8 reftest failures
CLOSED TREE

MozReview-Commit-ID: LvxYj7DmsGX
2017-08-01 23:07:18 -07:00
David Anderson c5e4aacb3f Handle resampled painted layers after occlusion culling. (bug 1385961, r=mattwoodrow)
--HG--
extra : rebase_source : 239abc310f202c527f0f1cb64f5d2d01cd3be15a
2017-08-01 15:40:32 -07:00
Mason Chang 788361e0d9 Bug 1383916. Prep and flush draw targets on the paint thread with OMTP. r=dvander 2017-07-31 20:56:01 -07:00
Wes Kocher 5df77c43f9 Merge m-c to autoland, a=merge
MozReview-Commit-ID: IJRYyJu1sWm
2017-08-02 17:42:10 -07:00
Botond Ballo ae01f40e30 Bug 1386742 - Fix a transcription error in the APZ autoscroll calculation. r=kats
MozReview-Commit-ID: DNVBRR6wucU

--HG--
extra : rebase_source : 45097a948b6a26cf1dbc1ed53741cd180d22b34a
2017-08-02 13:51:30 -04:00
Ethan Lin a1f704c881 Bug 1384839 - Part4. Use A8 format when painting mask image. r=kats
MozReview-Commit-ID: 9vMkBxRNAUv

--HG--
extra : rebase_source : 164011beb656b7b97f0854baeedabbe85c2f9321
2017-07-31 14:00:29 +08:00
Ethan Lin a79f89c36a Bug 1384839 - Part2. Add BuildWrMaskImage() for creating WrImageMask. r=kats
MozReview-Commit-ID: 5S3CRSLX5wY

--HG--
extra : rebase_source : aeedbdf986d6f53b1f9410bbe5608dc45226c8f7
2017-07-28 11:49:05 +08:00
Ethan Lin 582a02967a Bug 1384839 - Part1. Extract the generation of fallback data from PushItemAsImage into a helper function to reuse it for mask painting. r=kats
MozReview-Commit-ID: FUP6bZyfalQ

--HG--
extra : rebase_source : fcea78dc934761c1e6517bd11bd3a9233f4405c6
2017-07-28 11:30:05 +08:00
Sebastian Hengst ddd4030358 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: IrMqWiJhwan
2017-08-01 11:23:57 +02:00
Wes Kocher 3c2dc39278 Merge m-c to inbound, a=merge
MozReview-Commit-ID: BgPWEtPV0sy
2017-07-31 17:49:47 -07:00
Mason Chang e74cbf6505 Bug 1384756 - Don't support component alpha layers with OMTP. r=dvander 2017-07-31 16:48:56 -07:00
Kartikaya Gupta f852cfa561 Bug 1386020 - Use wr::IdNamespace instead of uint32_t for the WR namespace. r=sotaro
MozReview-Commit-ID: JbQNgNQHobO

--HG--
extra : rebase_source : c16f17e37e94a41127410daed01f32ec4b06cb91
2017-07-31 16:31:10 -04:00
Kartikaya Gupta c3e4aef0b4 Bug 1384616 - Save APZ-relevant scrollbar data into the WR scroll data for layers-free transactions. r=jrmuizel
MozReview-Commit-ID: 6DQz9N6Wq0H

--HG--
extra : rebase_source : 8a113d4a53e1562b55cc05a0bc411675a2ca9eb1
2017-07-31 15:27:30 -04:00
Kartikaya Gupta 4ed905c664 Bug 1384616 - Save APZ-relevant data from fixed-pos items in the WR scroll data for layers-free transactions. r=jrmuizel
MozReview-Commit-ID: HAFnrCVM9pZ

--HG--
extra : rebase_source : 9b7f5f7a3487501061b0526bfc92b06ef5593a88
2017-07-31 15:27:29 -04:00
Kartikaya Gupta 89f405f2be Bug 1384616 - Allow building a tree structure in WebRenderScrollData for layers-free transactions. r=jrmuizel
The three main changes in this patch are:
(1) Move the code to emplace_back a new WebRenderLayerScrollData to
after the display list recursion. This is necessary so that when we
empty the temporary mLayerScrollData stack into the final mScrollData
structure things end up in the right order.
(2) Maintain a stack of ASRs as we recurse so that when we are building
a given WebRenderLayerScrollData, we don't add scroll metadatas that
are already present on its ancestors.
(3) Compute the number of descendants created for each layer scroll
data item and record it, so that we can properly reconstruct the
shape of the tree.

MozReview-Commit-ID: BSdX78AqBNZ

--HG--
extra : rebase_source : 0bb4133572d74fb756476e1c5954b17f114fe7d0
2017-07-31 15:27:29 -04:00
Kartikaya Gupta 3b8aaa896a Bug 1384616 - Change how display items put their APZ-relevant info into the WebRenderScrollData. r=jrmuizel
Instead of the WebRenderLayerScrollData code knowing about all the
different display item types, it makes more sense to move this logic
into the display items.

In addition to avoiding dis-encapsulating the data from nsDisplayItem subclasses,
this makes it easier to handle two specific scenarios:
(1) the case where an nsDisplayItem A subclasses another nsDisplayItem B, but A
and B have different types returned by GetType(). Previously A and B would have
to be handled explicitly in the WebRenderLayerScrollData switch statements,
which doesn't scale well if new types are added. With the new approach the
virtual function is shared down from A to B and so takes care of it. This is
particularly relevant for types like nsDisplayOwnLayer which have a number of
subclasses.

(2) the case where a display item *might* have APZ-relevant information.
In this case the type of the item alone is not sufficient to determine
if we need to create a new WebRenderLayerScrollData for it. Instead, we
need to access specific state inside the display item. This is now
handled by the UpdateScrollData function returning true when passed
nullptr arguments, and replaces the switch statement in
WebRenderLayerManager that updated forceNewLayerData.

MozReview-Commit-ID: FlfHlgSccSn

--HG--
extra : rebase_source : d1fe841724cc6020433aea31ffb5214d8a44d0a9
2017-07-31 15:27:29 -04:00
Botond Ballo fafef4638c Bug 1105109 - ScrollInputMethod telemetry for APZ autoscrolling. r=kats
MozReview-Commit-ID: 5ICwYnZTcm9

--HG--
extra : rebase_source : ab29eb3d0d9dc83daa5843e4cef66fe58d9d2267
2017-07-28 16:32:42 -04:00
Botond Ballo 3916c49dc6 Bug 1105109 - Put APZ autoscrolling behind a pref. r=kats
For now, the pref is off by default.

MozReview-Commit-ID: BtzmFGIAGey

--HG--
extra : rebase_source : a85b20059ae904cc18241e128974bbe8ee060468
2017-07-28 19:01:52 -04:00
Botond Ballo e0c06e98b6 Bug 1105109 - Notify content when APZ is handling an autoscroll. r=kats
MozReview-Commit-ID: BeuZt30fMpn

--HG--
extra : rebase_source : 0d96639d873d12e63d981b3bc50b08360fb10d59
2017-07-26 19:32:57 -04:00
Botond Ballo e54b8b4984 Bug 1105109 - Have the parent process notify APZ of the start and stop of autoscrolling. r=kats
The messages are routed through nsITabParent, nsIWidget, and IAPZCTreeManager
(the latter possibly remoted via PAPZCTreeManager if out-of-process compositing
is used).

MozReview-Commit-ID: 1zXzLa1fqpG

--HG--
extra : rebase_source : c482816ecbaec0a889d817851ee15be186b2a49c
2017-07-26 19:33:02 -04:00
Botond Ballo 23e65cc51e Bug 1105109 - Add autoscrolling support to AsyncPanZoomController. r=kats
This involves adding a new type of AsyncPanZoomAnimation, a new APZC state,
and methods to start and stop autoscrolling.

MozReview-Commit-ID: BEYPJIR30Lw

--HG--
extra : rebase_source : 81a96fd73348853f9e1a94a9f72f7de0073cc66f
2017-07-28 15:04:00 -04:00
David Anderson 427fc1d03c Include visible region changes in the cached invalid region for ContainerLayers. (bug 1381666 part 4, r=mattwoodrow) 2017-07-31 12:29:18 -07:00
David Anderson 264a0b8e7e Fix a coordinate space bug in the cached invalid region of container layers. (bug 1381666 part 3, r=mattwoodrow) 2017-07-31 12:28:54 -07:00
David Anderson 4d45c02ee0 Add helper functions for dumping MLGTextures as files. (bug 1381666 part 2, r=mattwoodrow) 2017-07-31 12:28:41 -07:00
David Anderson b05dbf58c2 Add helpers for debugging Advanced Layers with RenderDoc. (bug 1381666 part 1, r=mattwoodrow) 2017-07-31 12:28:26 -07:00
sotaro 45948ad968 Bug 1384869 - Fix ImageCompositeNotification when WebRender is enabled r=nical 2017-07-31 13:00:06 +09:00
Wes Kocher 316fd8283a Merge m-c to inbound, a=merge
MozReview-Commit-ID: KcxntLtRalL

--HG--
rename : taskcluster/actions/__init__.py => taskcluster/taskgraph/actions/__init__.py
rename : taskcluster/actions/add-new-jobs.py => taskcluster/taskgraph/actions/add-new-jobs.py
rename : taskcluster/actions/registry.py => taskcluster/taskgraph/actions/registry.py
rename : taskcluster/actions/retrigger.py => taskcluster/taskgraph/actions/retrigger.py
rename : taskcluster/actions/run_missing_tests.py => taskcluster/taskgraph/actions/run_missing_tests.py
rename : taskcluster/actions/test-retrigger-action.py => taskcluster/taskgraph/actions/test-retrigger-action.py
rename : taskcluster/actions/util.py => taskcluster/taskgraph/actions/util.py
2017-07-28 17:54:59 -07:00
Wes Kocher 40c3480d89 Merge inbound to central, a=merge
MozReview-Commit-ID: JNxfwQh0cac

--HG--
rename : gfx/layers/wr/WebRenderCompositableHolder.h => gfx/layers/wr/AsyncImagePipelineManager.h
2017-07-28 17:40:43 -07:00
Kartikaya Gupta adeda831a6 Bug 1372880 - Followup to fix typo in function name. r=me
MozReview-Commit-ID: J2D0Cb6DRNJ
2017-07-28 12:57:13 -04:00
Nicolas Silva ef3943612a Bug 1383786 - Fix unified build issue. r=sotaro 2017-07-28 14:08:05 +02:00
Nicolas Silva c6cb34826b Bug 1383786 - Rename WebRenderCompositableHolder into AsyncImagePipelineManager. r=sotaro
--HG--
rename : gfx/layers/wr/WebRenderCompositableHolder.cpp => gfx/layers/wr/AsyncImagePipelineManager.cpp
rename : gfx/layers/wr/WebRenderCompositableHolder.h => gfx/layers/wr/AsyncImagePipelineManager.h
2017-07-25 10:54:36 +02:00
Nicolas Silva 08bf19b694 Bug 1383786 - Rename GetImageKey into GenerateImageKey. r=sotaro 2017-07-25 10:54:20 +02:00
sotaro b8bc54df5a Bug 1372880 - Add WebRender creation failure handling r=aosmond 2017-07-28 18:22:21 +09:00
Carsten "Tomcat" Book 28bdd40776 Merge mozilla-central to mozilla-inbound 2017-07-28 09:48:24 +02:00
Carsten "Tomcat" Book 6ddad46b40 Backed out changeset 1662b38e3107 (bug 1351148) 2017-07-28 09:20:23 +02:00
Carsten "Tomcat" Book d360d49d2a merge mozilla-inbound to mozilla-central a=merge 2017-07-27 10:57:25 +02:00
Mason Chang cc5d07571f Bug 1381973 - Lazily create the reference DT in DrawTargetCapture. r=dvander 2017-07-26 15:43:00 -07:00
sotaro eaf00c953c Bug 1377619 - Add EndTransaction to on screen timing log for WebRender r=nical 2017-07-28 08:05:56 +09:00
Ehsan Akhgari 6fc1019dc6 Bug 1385368 - Pass aTextIDs as a const reference; r=mystor 2017-07-28 15:27:59 -04:00
Ryan Hunt 0599df77a5 Bug 1383365 - Add a test to assert async key scrolling happens. r=botond
MozReview-Commit-ID: 13XydDOHXUE

--HG--
extra : rebase_source : 6824ddf0e0d00134b49147fee21ee4e75455ff29
extra : source : 1db44c2e79032184d3fb96d34e84052aa73b603a
extra : histedit_source : 9acc007ccd27100af79a297f24a3221cd63337f2
2017-07-23 12:42:26 -04:00
Ryan Hunt 52d2be54b8 Bug 1383365 - Add in missing code for mActiveKeyboardBlock in InputQueue. r=kats
MozReview-Commit-ID: EUq8wPS1aDZ

--HG--
extra : rebase_source : 3d684c76e67c3cbc2434e41f343232d6e6a69366
extra : source : d02ae74dab6da0990ecabcc3bcdeeaf3ba07ebf9
extra : histedit_source : d4724c5f7141ce6a9256482a9d1ebc2e1656f4de
2017-07-26 20:31:40 -04:00
Ryan Hunt 292142a929 Bug 1383365 - Fix APZ focus target log parameter order. r=botond
MozReview-Commit-ID: DJtXaylyseg

--HG--
extra : rebase_source : cb1228dcd6923884e3304c7b51851dee07964706
extra : source : 14d0e2a451e769dcd23f1a47f954b31231519dae
2017-07-23 13:58:19 -04:00
Ethan Lin 413b71eafc Bug 1382985 - Support image animation for layers-free mode. r=kats
We should do SchedulePaint in nsImageFrame for layers-free mode and set
invalid flag to make sure the image will be repainted.

MozReview-Commit-ID: 2lXElZ151Qa

--HG--
extra : rebase_source : 56045f66f3b36afe8a6327b841d80073f1d038cb
2017-07-24 14:43:55 +08:00
Kearwood Gilbert 21d51ec691 Bug 1310665 - macOS OpenVR Support r=daoshengmu,mattwoodrow
MozReview-Commit-ID: 9CDJpFOcFUB

--HG--
extra : rebase_source : ab1f13bd733a6f295570f58940191b333868a088
extra : source : d527620e9351a04bc70689af6a7369dd09ffeef0
2017-07-04 13:50:40 -07:00
Milan Sreckovic d573665103 Bug 1163440: Behind a preference, off by default, use a mutex around present calls. This makes it easier to test with users that can reproduce some problems. r=bas
MozReview-Commit-ID: 9PTO3ntOFuR

--HG--
extra : rebase_source : 64bf80a9ef789433a7d788fca086bb77c95b1673
2017-07-27 16:02:01 -04:00
Carsten "Tomcat" Book 740c6ff791 Merge mozilla-central to autoland 2017-07-28 15:27:47 +02:00
Kartikaya Gupta 4c1a0de0df Bug 1383041 - Update bindings for IdNamespace changes in WR cset 6a2662c. r=kvark
MozReview-Commit-ID: 32dsMgqoOvf

--HG--
extra : rebase_source : 9e779e2d78ed9943d596a2b2f5c3f516e13b49a7
2017-07-28 08:18:30 -04:00
Kartikaya Gupta a1f87cfcac Bug 1385070 - Remove the WebRenderOMTAEnabled pref. r=ethlin
MozReview-Commit-ID: CWdrpzorNxq

--HG--
extra : rebase_source : c244c3d09579a9f5cb40ac8dd503217e7f96e4c5
2017-07-27 16:11:17 -04:00
Botond Ballo 1e610da876 Bug 1105109 - Add a ScrollByAndClamp() utility function to AsyncPanZoomController. r=kats
MozReview-Commit-ID: GPnuL0kmWsN

--HG--
extra : rebase_source : c5773713b1ca8b1b7b95fc476372f0286690e211
2017-06-19 18:06:03 -04:00
Botond Ballo 9da4eab494 Bug 1105109 - Introduce a FrameMetrics::ClampAndSetScrollOffset() helper. r=kats
MozReview-Commit-ID: 6LCPKrdGM6M

--HG--
extra : rebase_source : 65f51ce5c40d9f1ac64c1f94055aa87d44a72cae
2017-07-28 14:57:54 -04:00
Botond Ballo e3ca66d639 Bug 1105109 - Have APZCTreeManager keep track of the current mouse position. r=kats
MozReview-Commit-ID: 7o80O8rpdNS

--HG--
extra : rebase_source : c775d1d2f245878e10774e41b58d550eabb77d18
2017-06-19 18:04:50 -04:00
Botond Ballo 50e175b0bc Bug 1105109 - Fix unified compilation errors. r=kats
MozReview-Commit-ID: DB3JNwlE3Dw

--HG--
extra : rebase_source : 3d0a92cb9f7dd850d25d6d7b5fbe6eb3291e0d67
2017-07-28 20:17:19 -04:00
Bevis Tseng 95b18d794e Bug 1382172 - Name nsITimerCallback instances in native implementation. r=billm
--HG--
extra : rebase_source : 84de1abfcc30a6964144c2e6718a508c71027b65
2017-07-27 02:18:20 +08:00
Bevis Tseng a7505864a8 Bug 1378930 - Part 2: Remove the aName parameter from SchedulerGroup/DocGroup/DispatcherTrait. r=billm
--HG--
extra : rebase_source : 11319e568a51d16754a6a9990f76c35c86c2bda7
2017-07-26 16:13:35 +08:00
Bevis Tseng d935b29e72 Bug 1378930 - Part 1: Remove nsINamed::SetName(). r=billm
MozReview-Commit-ID: 7aM1yJRsfPH

--HG--
extra : rebase_source : f207a37be835ac4e6c431af56737cebacf5c566d
2017-07-21 11:50:43 +08:00
Nathan Froyd e1013bf46d Bug 1347963 - part 7 - make ImageContainer use RecursiveMutex; r=kats
Making ImageContainer slightly faster with RecursiveMutex is a good thing.
We need to fix up some cargo-culting of includes along the way, though.
2017-07-04 13:47:42 -04:00
Kartikaya Gupta ba4b3b9101 Bug 1384233 - Remove SizePrintfMacros.h. r=froydnj
We have a minimum requirement of VS 2015 for Windows builds, which supports
the z length modifier for format specifiers. So we don't need SizePrintfMacros.h
any more, and can just use %zu and friends directly everywhere.

MozReview-Commit-ID: 6s78RvPFMzv

--HG--
extra : rebase_source : 009ea39eb4dac1c927aa03e4f97d8ab673de8a0e
2017-07-26 16:03:57 -04:00
Kartikaya Gupta 1220276afe Bug 1384181 - Add utility dump functions for debugging. r=jrmuizel
MozReview-Commit-ID: 5YJLGhnMkwG

--HG--
extra : rebase_source : b705d1db828b14d5829ee88aa3b0cebfef0e0b6f
2017-07-26 14:47:49 -04:00
Kartikaya Gupta 5da102e5d4 Bug 1384181 - Build WebRenderLayerScrollData instances for remote layer trees. r=jrmuizel
This adds handling for nsDisplayRemote frames, so that we create a
WebRenderLayerScrollData item for each nsDisplayRemote frame that we
encounter. This is the equivalent of a "ref layer" in a normal layer
tree, and allows the APZ side to glue together the scroll data from
different processes into a full tree.

MozReview-Commit-ID: 3lgsqtCKQya

--HG--
extra : rebase_source : eb93be1ef415349e00c09d7274d49fcf7992d197
2017-07-26 14:47:48 -04:00
Kartikaya Gupta 7a6592bf98 Bug 1384181 - Ensure that the WebRenderScrollData has a single root layer node. r=jrmuizel
The semantics of the WebRenderScrollData structure is that the per-layer
structures form a tree with a single root node. When we build the data
structure from the display list, we are generating (for now) a flat
list. Therefore we need to synthesize a root node in order to make stuff
work as intended.

MozReview-Commit-ID: IDXyziBO7pk

--HG--
extra : rebase_source : 99486a4c5b5e9938c4b7bbaa3f710d25e73d4401
2017-07-26 14:47:48 -04:00
Kartikaya Gupta 1766bdd4ab Bug 1384181 - Reorganize the WebRenderScrollData code to work with layers-free transactions. r=jrmuizel
Until now WebRenderScrollData was only used with "layers" WR
transactions, but we want to use it with layers-free transactions as
well. As such, we need to allow collecting information from display items
instead of layers. This restructures the code a little bit to allow
that. This patch should not have any functional effect on the "layers"
codepath, but on the "layers-free" codepath it is now actually
populating some rudimentary data into the WebRenderScrollData before
sending it across. This will be fleshed out in future patches.

MozReview-Commit-ID: BROqpsHPRND

--HG--
extra : rebase_source : 8510c52895e6be5cb546b42b02d56ec067de0623
2017-07-26 14:47:48 -04:00
Botond Ballo 95d3464484 Bug 1383912 - Ensure we always get a composite for the latest async scroll offset. r=kats
This fixes a regression with apz.frame_delay.enabled=true introduced in
bug 1375949.

MozReview-Commit-ID: AIcGA7c2Co0

--HG--
extra : rebase_source : b118a97674cadef1359e7658539e4e0e9cb785b8
2017-07-24 17:51:15 -04:00
vincentliu 6509ea12d3 Bug 1374254 - Re-adding the aggressive TDR checks in D3D11 EndFrame(). r=dvander 2017-07-26 11:56:44 +08:00
Samael Wang 4652607d6a Bug 1382897 - Auto lock on sIndirectLayerTreesLock in DidComposite. r=mattwoodrow
MozReview-Commit-ID: DZLEjHMmDDt
2017-07-25 17:28:39 +08:00
David Anderson 33346c4c1b Bug 1382829 - Don't mix and match Y/Cb/Cr slots when binding video. r=bas
--HG--
extra : rebase_source : d1345e6ab4025ab266800ae47a2613a5055b8d81
2017-07-25 14:51:27 -04:00
Tom Ritter 3efa760176 Bug 1370007 Generate Shaders on a MinGW Cross Compile on Linux r=dvander,ted
Bug 1365859 introduced a dependency on the Visual Studio binary 'fxc'
to generate Shader bytecode. This was unavailable when compiling for
Windows on Linux as part of a MinGW build.

This commit adds a configure check for fxc, and also searches for
fxc2, which was written (https://github.com/tomrittervg/fxc2) to be
a tiny application that wraps D3DCompileFromFile and can produce
similar (but not exactly the same) output as fxc.

fxc2 is compiled using MinGW for Windows, and runs under wine, so
we need to check for wine also.

Finally, fxc outputs some include information fxc2 doesn't, so
we will just change that assert to not take effect.

MozReview-Commit-ID: 8LVxuODi6cV

--HG--
extra : rebase_source : 9116d266663284d6594e34aa53bd37eae01ba67f
2017-07-24 14:32:08 -05:00
Wes Kocher a1eadef812 Merge m-c to autoland, a=merge
MozReview-Commit-ID: B7oWq7qfpJ0
2017-07-24 18:13:05 -07:00
sotaro 02d4ae4add Bug 1382948 - Fix WebRenderBridgeParent::FlushTransactionIdsForEpoch() r=nical 2017-07-24 21:20:22 +09:00
JerryShih 2fb75025f6 Bug 1349991 - Skip the DidComposite() message for non-updated layer tree. r=dvander,nical,mattwoodrow
MozReview-Commit-ID: NhVBMe7Qha

--HG--
extra : rebase_source : f7fb8dc928b0b804e0e9a37334708999ee3db454
2017-07-24 13:07:35 +02:00
Nicolas Silva 24239ea4f0 Bug 13821850 - Return false in GLContext::Readback if MakeCurrent failed. r=jgilbert 2017-07-24 12:24:18 +02:00
sotaro 042b1fc3ec Bug 1382132 - Improving throttling GenerateFrame() r=nical 2017-07-24 09:22:20 +09:00
Sebastian Hengst 78b9ef353f merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: Lanp1XedkmZ
2017-07-23 11:27:03 +02:00
Kartikaya Gupta 565bb8ca40 Bug 1382215. r=botond 2017-07-22 14:52:49 -04:00
Wes Kocher d45eb771f0 Merge m-c to inbound, a=merge
MozReview-Commit-ID: Ah48RzFU8Mt
2017-07-21 18:20:46 -07:00
Wes Kocher 051dc17e6c Merge inbound to central, a=merge CLOSED TREE
MozReview-Commit-ID: GYc8r8gnS0j
2017-07-21 18:12:55 -07:00
Ryan VanderMeulen f4e3a91992 Merge m-c to inbound. a=merge 2017-07-21 09:40:28 -04:00
Sebastian Hengst 367f0ac5a2 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: IWRTFZdtzaE
2017-07-21 12:56:44 +02:00
Kevin Chen bf448ceacc Bug 1351349 - Blacklist Intel HD Graphics 510/520/530 for Windows 7 without platform update; r=dvander
MozReview-Commit-ID: F94OfZGBRQj

--HG--
extra : rebase_source : a6c471aaa6d280d6448975d5db3f285684df266d
2017-07-20 18:09:47 +08:00
Sylvestre Ledru 7c0ae251cd Bug 1381253 - Remove redundant control flow declarations rs=ehsan
MozReview-Commit-ID: FFxP4aMCbOL

--HG--
extra : amend_source : 3aec108430b11048f47ffe19d5da7ac5034770a9
2017-07-15 19:03:04 +02:00
peter chang 84df6e8c7e Bug 1363830 - use previous frame time when advancing animations, r=kats
MozReview-Commit-ID: CqKOguZXnF9

--HG--
extra : rebase_source : b1ba85d20978fe5e7853a07065df7e3626c4a482
2017-06-29 13:44:00 -07:00
Kartikaya Gupta 4b9801e41b Bug 1359808 - Don't do empty transactions for scroll updates if there are already pending transforms in the layer tree. r=mstange
The pending transforms must have been computed using the older scroll offset
values, which means that updating the scroll offsets without recomputing the
transforms will make them wrong. If we do an empty transaction for the scroll
offset updates, the transforms will not get computed. This patch catches this
scenario and schedules a full paint instead of the empty transaction instead.
The case where the scroll offset is modified *before* the transform is already
handled by code in nsIFrame::TryUpdateTransformOnly.

MozReview-Commit-ID: I5s5J7BS1ru

--HG--
extra : rebase_source : 63fec656440c8bee322f069a4466a311ebcd0f7d
2017-07-12 11:14:11 -04:00
Ethan Lin dd722c7c28 Bug 1382314 - Fix invalidation problem for layers-free mode. r=jrmuizel
MozReview-Commit-ID: 8z03n7zmvOz
2017-07-21 14:21:47 +08:00
Ethan Lin 7aa3422a0a Bug 1378602 - Part3. Add OMTA support for nsDisplayTransform and nsDisplayOpacity. r=kats
MozReview-Commit-ID: CP4WEZgy83a
2017-07-21 14:21:47 +08:00
Ethan Lin a48f3ac6fe Bug 1378602 - Part2. Move animation data from layer to AnimationInfo. r=kats
MozReview-Commit-ID: 4gv8EfPgsii
2017-07-21 14:21:47 +08:00
Stone Shih 04c2d24213 Bug 1309678: Logging touch and mouse events in helper_bug1285070.html for easier debugging. r=kats.
MozReview-Commit-ID: DJHifeaynOX
2017-07-18 15:41:26 +08:00
David Anderson d53eee5b25 Fix crash when ancestor masks have no overlapping area. (bug 1381479, r=bas) 2017-07-20 15:10:40 -07:00
Ryan Hunt 2cac42b189 Bug 1382521 - Don't dereference a null PresShell in FocusTarget. r=kats
MozReview-Commit-ID: 4Zg4XrCIYZD

--HG--
extra : rebase_source : ab7527509ac7c75f4d762554233a38d8bf43478c
extra : histedit_source : 7ebdcff0fc47ce9cfc43dff6b817944fbcf9b0fd
2017-07-19 23:34:59 -04:00
Andrew Osmond ccbd885da6 Bug 1382644 - Remove assert in CompositorManagerChild::Init for false positives. r=me
CompositorManagerChild::mCanSend is cleared in ActorDestroy but that
often comes in too late and after ContentChild::RecvReinitRendering
which reinitializes the singleton. For now, just remove the assert so
that we no longer trigger false positives in the content process after
the GPU process crashes.
2017-07-20 09:03:28 -04:00
Nicolas Silva 0628887ea0 Bug 1378113 - Avoid LayerManager reentrency issues when propagating composite notifications. r=dvander 2017-07-19 10:18:25 +02:00
Kartikaya Gupta c4a54bfe61 Bug 1382682 - Collect scroll metadata for scrollinfo layers as well. r=mstange
MozReview-Commit-ID: JdHExWIpet9

--HG--
extra : rebase_source : d435088cdbc8659e44daeef932f1713ba078b5dc
2017-07-21 08:34:11 -04:00
Kartikaya Gupta e5b6c40781 Bug 1382682 - Collect scroll metadata from the display list in layers-free webrender. r=mstange
MozReview-Commit-ID: 9uiwmjpJH3T

--HG--
extra : rebase_source : 5f6446a78b2f949dfdefcaddc78012efa6241f5b
2017-07-21 08:33:24 -04:00
Ryan VanderMeulen d229288071 Merge m-c to autoland. a=merge
CLOSED TREE

--HG--
extra : amend_source : 2ab51304cc7df444f22c3aac001a1aba61faee3a
2017-07-21 09:42:41 -04:00
Kartikaya Gupta d9edfa153c Bug 1382744 - Make sure we process nested display items for layers-free webrender mode. r=ethlin
MozReview-Commit-ID: mTox2irS1w

--HG--
extra : rebase_source : 97cb2163aaf4a9f6df62688724df2ee051f55880
2017-07-20 14:14:25 -04:00
Bevis Tseng 76fdf58819 Bug 1378476 - Label layers::DestroyTextureData. r=nical 2017-07-19 14:23:19 +08:00
sotaro 200cae20a8 Bug 1382091 - Delete ImageKeys with ClearCachedResources r=nical 2017-07-20 10:30:31 +09:00
Wes Kocher b5bcc4905e Merge inbound to central, a=merge CLOSED TREE
MozReview-Commit-ID: CBL7SUEUGKV
2017-07-19 17:29:56 -07:00
Ryan Hunt f116107a57 Bug 1379280 - Only do async keyboard scrolling for a selection, not a focused element. r=smaug
This commit changes async keyboard scrolling to be enabled only if the content to
scroll is from a selection. This works around the problem of detecting whether
an arbitrary element has key listeners that should prevent async key scrolling,
because when they have the focus we will have disabled async key scrolling.

MozReview-Commit-ID: 6HhSuGZNsMX

--HG--
extra : rebase_source : 98a6449dd1e913136ca66532a67df8e0bb717e52
2017-07-13 15:53:26 -05:00
Ryan Hunt 522bc76415 Bug 1382128 part 8 - Remove Wr prefix from some type aliases. r=kats
MozReview-Commit-ID: 5h7QobhcYc1

--HG--
extra : rebase_source : 34d6636b6c3726ccc21b105f05227e27f84e63c9
2017-07-19 03:28:58 -04:00
Ryan Hunt f082c1791e Bug 1382128 part 4 - Remove WrGlyphInstance. r=kats
MozReview-Commit-ID: 2CpW51FKUoK

--HG--
extra : rebase_source : d24e596dbd1a114d660e0b0ec1657f3efc11965d
2017-07-18 18:53:09 -04:00
Ryan Hunt 017d292cac Bug 1382128 part 2 - Remove WrPoint, WrSize, WrRect, WrMatrix, and WrColor. r=kats
MozReview-Commit-ID: 9koNScu4CyE

--HG--
extra : rebase_source : 68185e949ddf2ae346a5d597d056a7f2d9ea7a28
2017-07-18 18:32:46 -04:00
Kartikaya Gupta 78a69a5578 Bug 1382200 - Eliminate LayerMetricsWrapper::IsScrollInfoLayer entirely by inlining it. r=botond
MozReview-Commit-ID: KX35cjOAQw7

--HG--
extra : rebase_source : 2e451ce0250ec17fc7f1a642e5a8a341c073105d
2017-07-19 09:24:28 -04:00
Kartikaya Gupta 4dfe8eadc0 Bug 1382200 - Change implementation of the LayerMetricsWrapper IsScrollInfoLayer to use the metrics flag. r=botond
This also updates the WebRenderScrollDataWrapper function as it is meant
to be semantically equivalent to the LayerMetricsWrapper one, which
allows removal of a flag propagation.

MozReview-Commit-ID: 9DBx4qbhq5A

--HG--
extra : rebase_source : 3201d8a4bb7192ecdbe95983b605ac53b1a28c50
2017-07-19 09:24:24 -04:00
Kartikaya Gupta 1147b9727c Bug 1382200 - Rename Layer::IsScrollInfoLayer to better capture what the call sites care about. r=botond
MozReview-Commit-ID: 1vMBMo5zOhK

--HG--
extra : rebase_source : c7f7e94c87c177cc244885912a916133a7cbfbd3
2017-07-19 09:24:22 -04:00
Ryan Hunt 3f3cb0a954 Bug 1382128 part 1 - Use a namespace in webrender_bindings. r=kats
MozReview-Commit-ID: 3JTMa9Ix5S7

--HG--
extra : rebase_source : 0bea14d9e395cab260d2db5135b1f64e9f82b2e2
2017-06-27 19:20:36 -04:00
Kevin Chen 91dc0db35c Bug 1364563 - Add a path for content process only device reset. r=dvander 2017-07-18 23:09:00 -04:00
Ehsan Akhgari 6bc10c105a Backout changeset bc5d9e5f1c02 (bug 1364563) because of build failures
This reverts commit a5224fd3910ee5116669728fcd5b154e051371fd.
2017-07-19 00:27:36 -04:00
Kevin Chen 563c00da4d Bug 1364563 - Add a path for content process only device reset. r=dvander 2017-07-17 00:13:00 -04:00
sotaro 7ceccd46b7 Bug 1378697 - Release resources in WebRenderXXXLayer::ClearCachedResources() r=nical 2017-07-18 22:37:36 +09:00
Andrew Osmond 094c212d54 Bug 1350408 - Gracefully handle failures in WebRenderLayerManager::Initialize to allow reinit. r=kats 2017-07-18 09:35:07 -04:00
Ryan Hunt 11bda66c5d Bug 1383714 - Update to cbindgen 0.1.19. r=kats
MozReview-Commit-ID: FdtZ9Pw0Z2A

--HG--
extra : rebase_source : 1cabc3fcc16ccf20a8d111389ccbbf518c42f32e
2017-07-21 12:39:25 -04:00
Stone Shih 5c6d99d228 Bug 1351148 Part3: Synthesize native input events with priority. f=kats,smaug. r=smaug.
The test helper_touch_action_regions.html uses nsDOMWindowUtils to synthesize native input events and creates some runnables to trigger the test. It expects the runnables which synthesize native input events are processed first, then the runnables to continue the test, and finally the input events are forwarded from chrome process to content process. Enabling event prioritization may change the execution order.
Wraps those runnables to synthesize native input events as priority=input and dispatches those runnables to continue the test with priority=input to make sure the execution order is as expected.

MozReview-Commit-ID: 8hkaB1FRW9T
2017-05-19 15:41:24 +08:00
Kris Maglione 86877fceef Bug 1381097: Part 1 - Add default-false pref to enable APZ in remote popups. r=kats
Ideally, we definitely want APZ in remote popup browsers for the sake of
responsiveness. However, there are currently some serious painting and
checkerboarding issues that make APZ popups unsuitable for release
populations.

Once these issues are addressed, we should enable the preference by default.
But given the relative lack of testing, and the issues we've seen so far, we
should keep the preference so that we can disable it with a hotfix if further
issues arise.

MozReview-Commit-ID: GOZRdsmLNZR

--HG--
extra : rebase_source : ce0f2ca029d951a9c65ec1482e065b6695793133
2017-07-15 12:01:36 -07:00
Sebastian Hengst 0c7a679780 Backed out changeset e4dc716c401c (bug 1377595) on suspicion of causing reftest failures on Android "(waiting for MozAfterPaint)". r=backout 2017-07-17 17:48:13 +02:00
Nicolas Silva f6e8232b40 Bug 1377595 - Track the valid region in WebRenderPaintedLayer. r=jrmuizel 2017-07-17 13:49:11 +02:00
Nicolas Silva c81891b82b Bug 1377595 - Avoid using blob images for items that must be painted on the content side. r=jnicol
This patch allows us to decide whether to use blob images depending on a MustPaintOnContentSide flag exposed by each display item. If any of the display item assigned to a given painted layer data have this flag, then the painted layer data is marked as preferring content side painting and the webrender layer manager uses this information to decide whether to create a regular content layer or serialize the drawing commands with blob image. This is useful for items that must be painted on the content side such as scroll bars, checkboxes, buttons, etc. Using blob images for these makes us first paint the widget on the content side, then serialize the painted pixels and blit the content again in the blob image which has a lot more overhead than painting the content into a layer and sharing it with webrender directly.
2017-07-17 13:49:07 +02:00
vincentliu 2bf7875f86 Bug 1367689 - Add a preference to make Wrench work with Gecko. r=jrmuize, jerry 2017-07-17 13:38:22 +08:00
Andrew Osmond 7d1a4b1e31 Bug 1377869 - Ensure that CompositorManagerChild will be reinitialized if the GPU process reuses its PID. r=dvander 2017-07-15 09:13:18 -04:00
Andrew Osmond b306aa3fb2 Bug 1380716 - Reinitialize ImageContainer::mImageClient if its parent ImageBridgeChild was also reinitialized. r=sotaro 2017-07-15 07:52:02 -04:00
Wes Kocher 6d62b1970e Merge m-c to inbound, a=merge
MozReview-Commit-ID: 4kiY84LofOi
2017-07-14 17:19:10 -07:00
Wes Kocher e9fa5c772a Merge inbound to central, a=merge
MozReview-Commit-ID: 8nlqm5dHCUQ
2017-07-14 17:14:43 -07:00
David Anderson 28b0c7d639 Fix mask coordinates when rendered into intermediate surfaces with Advanced Layers. (bug 1380744, r=mattwoodrow) 2017-07-14 11:47:54 -07:00
Mason Chang 0f5cb4866e Bug 1380483 - Properly set AA, transform and use rotated buffers with OMTP capturing. r=dvander 2017-07-14 08:01:45 -07:00
Ryan Hunt 8da6a723fb Bug 1381125 - Add whether a focus target has key listeners to the APZ keyboard logs. r=kats
MozReview-Commit-ID: 7S3VAowF2p3

--HG--
extra : rebase_source : 3e5ffeb1ce2329b3bbd68ac4612a4ded4dd49730
2017-07-13 10:56:17 -05:00
Ryan Hunt 0a77e754e4 Bug 1379826 - Use static_cast instead of a C style cast in APZ keyboard logs. r=botond
MozReview-Commit-ID: 4ca18ZxQwuL

--HG--
extra : rebase_source : 73b6103697486d9d6b55a5e156abe55b8411ec46
2017-07-10 18:39:04 -04:00
Milan Sreckovic cc13392457 Bug 1380655: Look for the timeout and terminate GPU process only when we have a separate GPU process, not also when the browser is acting as one. r=dvander
MozReview-Commit-ID: Fp4Dv5SArjX

--HG--
extra : rebase_source : ced0c45cc7a64e619f15c69bfb68b5d850d287fc
2017-07-14 12:18:52 -04:00
Carsten "Tomcat" Book e3195ceb5a Merge mozilla-central to inbound 2017-07-13 16:38:32 +02:00
Carsten "Tomcat" Book 260b5f956f merge mozilla-inbound to mozilla-central a=merge 2017-07-13 16:35:22 +02:00
Nicolas Silva 8d659cbd93 Bug 1378771 - Reduce the minimum painted layer width down to 8 pixels. r=jrmuizel 2017-07-13 13:59:29 +02:00
Kartikaya Gupta 6d0c0db395 Bug 1378966 - Don't cause immediate throttling of the refresh driver on repeat transactions. r=mattwoodrow
MozReview-Commit-ID: 8orAmdpIRTF

--HG--
extra : rebase_source : 2988a9faced2648cd182ebe8adff791634af519f
2017-07-12 09:10:25 -04:00
David Anderson 416337ceb9 Fix Advanced Layers not forcing a clear for the window theme. (bug 1378095 part 2, r=mattwoodrow) 2017-07-13 01:12:05 -07:00
David Anderson ddfbc3d0ae Add a helper for automating ClearView and clear-shader operations. (bug 1378095 part 1, r=mattwoodrow) 2017-07-13 01:11:58 -07:00
Carsten "Tomcat" Book bf8ecdbf1a Merge mozilla-central to autoland 2017-07-12 11:18:59 +02:00
Carsten "Tomcat" Book 0edfa97e38 merge mozilla-inbound to mozilla-central a=merge 2017-07-12 11:07:09 +02:00
David Anderson 6e75188a07 Cache MLGBuffers for systems that don't support constant buffer offsetting. (bug 1379714 part 2, r=bas) 2017-07-11 21:18:45 -07:00
David Anderson 4877a071cd Remove Advanced Layers' buffer cache in preparation for a new one. (bug 1379714 part 1, r=bas) 2017-07-11 21:17:30 -07:00
Ethan Lin a11b08a3ac Bug 1377571 - Add fallback path for layers-free. r=jrmuizel
MozReview-Commit-ID: KOM7JXYljX2

--HG--
extra : rebase_source : 94a8c314ac311a05256a27bd61648815b0e42734
2017-07-06 00:29:41 +08:00
Mason Chang 9bde55e1f0 Bug 1379322 Don't clear rect when init DrawTargetCapture with OMTP. r=jrmuizel 2017-07-07 18:08:12 -07:00
Carsten "Tomcat" Book 31311070d9 merge mozilla-inbound to mozilla-central a=merge 2017-07-11 12:51:59 +02:00
David Anderson 399881cdfc Report when constant buffer offsetting doesn't work. (bug 1379413 part 2, r=bas)
--HG--
extra : rebase_source : 881471eca6ae17e4b9810bc34b609d58c6eb0b3d
2017-07-11 00:13:26 -07:00
David Anderson ad257fcdb1 Use a runtime test for constant buffer offsetting. (bug 1379413 part 1, r=bas)
--HG--
extra : rebase_source : 9ceae88aac296f8429b9fc83d48aa0b6de325056
2017-07-11 00:13:21 -07:00
David Anderson 88d86847fe Don't use constant buffers for ancillary vertex data. (bug 1379314 part 3, r=mattwoodrow) 2017-07-11 00:05:30 -07:00
David Anderson 912a83e3b7 Refactor how vertices are added to unit-triangle shaders. (bug 1379314 part 2, r=mattwoodrow) 2017-07-11 00:04:50 -07:00
David Anderson 16a351a5e5 Use unit triangles for full polgyon shaders. (bug 1379314 part 1, r=mattwoodrow)
Previously, we submitted polygons as a list of triangles, duplicating
some ancillary data with each vertex. As we move away from constant
buffers for some of this ancillary data, it will bloat the size of each
vertex. To avoid this, we will now instance over a unit triangle
instead. Each instance contains three triangle coordinates and ancillary
data can be shared between them. The target vertex is computed similarly
to how we handle rects in the unit quad shaders.
2017-07-11 00:04:14 -07:00
Kartikaya Gupta 1fd7214235 Bug 1378355 - Remove unused function. r=bas
MozReview-Commit-ID: H051LFrFMgD

--HG--
extra : rebase_source : 2dca4cfb41a94de9e8fce847b985c9193eadc094
2017-07-10 10:15:23 -04:00
David Anderson 1b64928d17 Don't draw diagnostic overlays during drawWindow. (bug 1379828, r=mattwoodrow) 2017-07-10 19:09:34 -07:00
Wes Kocher 868f84f2d8 Merge m-c to inbound, a=merge 2017-07-10 18:48:52 -07:00
Kartikaya Gupta 7fe2c84b1e Bug 1374730 - Update for clip API change in WR cset 0bf6655. r=mrobinson
MozReview-Commit-ID: dEe7yDDZPk

--HG--
extra : rebase_source : 09a1f858a347bdc95baa8015db9fa156b119334a
2017-07-10 07:22:39 -04:00
sotaro e79d584602 Bug 1379033 - Remove CompositorBridgeParentBase::GetAnimationStorage() r=kats
The patch removes CompositorBridgeParentBase::GetAnimationStorage and CrossProcessCompositorBridgeParent::GetAnimationStorage, and remove the "aId" parameter to CompositorBridgeParent::GetAnimationStorage, since it's only ever called with "0" as the argument.
2017-07-10 10:03:12 +09:00
sotaro 02fd7d664d Bug 1379055 - Remove unused member of WebRenderPaintedLayerBlob r=jrmuizel 2017-07-10 09:21:22 +09:00
Kartikaya Gupta 540da41b2f Bug 1379394 - Add a pref to allow disabling the one-handed-zoom gesture in APZ. r=botond
MozReview-Commit-ID: LUB83oLyVkm

--HG--
extra : rebase_source : 4fd4b1c4a2069f4dcf8084be33aac1f64e7bd636
2017-07-08 23:04:33 -04:00
Botond Ballo dda8aeab18 Bug 1375949 - Fix helper_touch_action_regions.html. r=kats
The test was assuming that processing an input event that causes async
scrolling will result in the async scroll being reflected on the next
composite. With the changes in this bug, that is no longer a valid assumption.

MozReview-Commit-ID: HAB3xnmF3vo

--HG--
extra : rebase_source : 86eca7c9f030a2bf4be87d8aa632a97584722191
2017-06-28 17:45:40 -04:00
Botond Ballo 179d5b6afb Bug 1375949 - Fix an incorrect comment in helper_touch_action_regions.html. r=kats
MozReview-Commit-ID: 5UslMnD1SRG

--HG--
extra : rebase_source : bb6c94f0792ac29232443ad07512fcc2099693f2
2017-06-27 14:50:30 -04:00
Botond Ballo a01f110229 Bug 1375949 - Delay application of async scroll offset by one composite, to give content a chance to remain in sync. r=kats
With this in place, scroll-linked effects will remain in sync with async
scrolling if they can be processed and painted within the frame budget.

This change is currently behind a pref that's off by default.

MozReview-Commit-ID: 6GEJTKZh6ON

--HG--
extra : rebase_source : 534bf15ef1c5ca26e1dc0d7eb298063b80aa9dd3
2017-07-05 19:17:14 -04:00
Botond Ballo 8e4f219cfd Bug 1375949 - Repurpose AsyncPanZoomController::AsyncMode into a more general AsyncTransformConsumer enum. r=kats
The AsyncTransformConsumer enumeration captures the distinction between
the two main categories of consumers of async transforms: those using
it for hit-testing and related purposes, and those using it for
compositing.

MozReview-Commit-ID: 59CICcnPvY6

--HG--
extra : rebase_source : ba505e6b2b6f42592660074939a6d24aab7f73ff
2017-06-30 14:31:28 -04:00
sotaro f76bc78842 Bug 1377687 - Clear cached resources in WebRenderBridgeParent::RecvClearCachedResources() r=nical 2017-07-11 09:13:15 +09: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
Carsten "Tomcat" Book fe3f254925 Backed out changeset 018e683b25cd (bug 1370007) for breaking tier 2 nightly builds on windows 2017-07-07 15:23:54 +02:00
Carsten "Tomcat" Book b5c809a8bc merge mozilla-inbound to mozilla-central a=merge 2017-07-07 10:35:44 +02:00
Wes Kocher 19d135c982 Merge m-c to autoland, a=merge
MozReview-Commit-ID: 4R4GFHPiij
2017-07-06 16:19:38 -07:00
David Anderson 208baf0a94 Backed out changeset 8eb05f9fc699 for breaking Mac URL bars. (bug 1366618) 2017-07-06 12:13:46 -07:00
Carsten "Tomcat" Book 3f89ce0b43 Merge mozilla-central to mozilla-inbound 2017-07-06 11:21:11 +02:00
Carsten "Tomcat" Book 7857fa0a5e merge mozilla-inbound to mozilla-central a=merge 2017-07-06 11:18:05 +02:00
sotaro 5d1a3c3c3f Bug 1378297 - Add DXGITextureHostD3D11::GetAsSurface() support for webrender wrench r=mattwoodrow 2017-07-06 16:33:19 +09:00
Tom Ritter b1341f974a Bug 1370007 Generate Shaders on a MinGW Cross Compile on Linux r=dvander,ted
Bug 1365859 introduced a dependency on the Visual Studio binary 'fxc'
to generate Shader bytecode. This was unavailable when compiling for
Windows on Linux as part of a MinGW build.

This commit adds a configure check for fxc, and also searches for
fxc2, which was written (https://github.com/tomrittervg/fxc2) to be
a tiny application that wraps D3DCompileFromFile and can produce
similar (but not exactly the same) output as fxc.

fxc2 is compiled using MinGW for Windows, and runs under wine, so
we need to check for wine also.

Finally, fxc outputs some include information fxc2 doesn't, so
we will just change that assert to not take effect.

MozReview-Commit-ID: 8LVxuODi6cV

--HG--
extra : rebase_source : 39acca112f4cd9e6c39f7e47e7c55b13e7606824
2017-07-06 15:35:49 -05:00
Botond Ballo 8b7ba8ac1c Bug 1377020 - Use MOZ_DEFINE_ENUM instead of a sentinel enumerator for enumerations in gfx/layers. r=kats
MozReview-Commit-ID: IUQDb0VIAwQ

--HG--
extra : rebase_source : 50d05ab09a5fb03d16c044edd38f0f3e0dba7ada
2017-06-30 21:18:55 -04:00
Kartikaya Gupta 5a69e4f899 Bug 1378247 - Properly handle async scrollbar-dragging of RTL scrollframes. r=botond
For RTL scrollframes the scrollable rect can extend into the negative-x coordinate
space as the user can scroll leftwards from the "zero" position. The code was
assuming a zero minimum scroll position in a couple of places which broke down
on RTL scrollframes.

MozReview-Commit-ID: 5FxELpafWSD

--HG--
extra : rebase_source : a3c7614528cf59a5c60f350fca84161c8586509f
2017-07-05 15:19:09 -04:00
Kartikaya Gupta 4826f32d87 Bug 1377169 - Turn gfxRect into a typedef. r=jrmuizel
One thing to note here is that the Scale function on gfxRect has a
different implementation than that in gfx::Rect which is replacing it.
The former just scales the width/height directly whereas the latter
scales the XMost/YMost and recomputes the width/height.

MozReview-Commit-ID: 5FImdIaNfC3

--HG--
extra : rebase_source : 98662d2a52ff9652ec60b066641a07c6d5ee8e08
2017-07-05 11:22:00 -04:00
Kartikaya Gupta cad9534e69 Bug 1377090 - Turn gfxMatrix into a typedef for MatrixDouble. r=jrmuizel
Most of this patch is updating a few places that use gfxMatrix to use
the equivalent-but-differently-named functions on MatrixDouble:
- Translate/Rotate/Scale get turned into PreTranslate/PreRotate/PreScale
- Transform(Point) gets turned into TransformPoint(Point)
- gfxMatrix::TransformBounds(gfxRect) gets turned into
  gfxRect::TransformBoundsBy(gfxMatrix).
- gfxMatrix::Transform(gfxRect) gets turned into
  gfxRect::TransformBy(gfxMatrix).
The last two functions are added in this patch as convenience wrappers
to gfxRect instead of Matrix.h because we don't want Matrix.h to "know"
about gfxRect (to avoid adding gecko dependencies on Moz2D). Once we
turn gfxRect into a typedef for RectDouble these will be eliminated
anyway.

MozReview-Commit-ID: BnOjHzmOSKn

--HG--
extra : rebase_source : cf1692d1f0d44a4b05d684a66678739181a426d5
2017-07-05 11:18:49 -04:00
Kartikaya Gupta 1c54bb2347 Bug 1377090 - Make the Matrix class templated so we can instantiate it with a double type. r=bas
This extracts a BaseMatrix template of which Matrix is now a particular
specialization. The BaseMatrix allows us to reuse the same code for
floats and doubles, much like the other "base" classes (BasePoint,
BaseRect, etc.).

MozReview-Commit-ID: HO7bA83S9E0

--HG--
extra : rebase_source : dcd84d9a978cdea00bb54eb11eefcca9c6635901
2017-07-05 11:18:48 -04:00
Carsten "Tomcat" Book b72c4833d5 merge mozilla-inbound to mozilla-central a=merge 2017-07-05 13:01:22 +02:00
Morris Tseng 03f68881d2 Bug 1376855 - Removed unused variables and interfaces. r=kats
MozReview-Commit-ID: 5rPI7jNI94K

--HG--
extra : rebase_source : 20ffeb6e064de9ccf19729aa6045ffa595c51429
2017-06-28 13:42:24 -07:00
Morris Tseng b01c8dcc1a Bug 1376855 - Support nsDisplayBullet in layers free mode. r=kats
MozReview-Commit-ID: 8fCufpOLejH

--HG--
extra : rebase_source : a2a4024b8282336d60f7e9c416e93513860866d7
2017-06-28 13:39:34 -07:00
Morris Tseng 77424afaa9 Bug 1376855 - Introduce WebRenderUserData and WebRenderImageData. r=kats
Layers are retained between transaction and we store some data in the layers.
Thus, if we no longer use layers, we need find another storage to place
those data. I use frame's property to retain WebRenderUserData between
transaction.

MozReview-Commit-ID: Ku5VGBXa3w6

--HG--
extra : rebase_source : 636653f78d1d6c310726a1a2c944141dc691decc
2017-06-28 15:03:27 -07:00
Nicholas Nethercote 26f8199a36 Bug 1375776 (part 5) - Pass in a TimeStamp to LayerTranslationMarkerPayload(). r=mstange.
This makes it more like all the other payload classes.

--HG--
extra : rebase_source : dd30741f487158ace8f9c0427a5c4b00f051ff7b
2017-06-23 16:24:21 +10:00
Nicholas Nethercote 5d446671a8 Bug 1375776 (part 4) - Allow ProfilerMarkerPayload.h to be #included unconditionally. r=mstange.
This requires:

- Moving the constructors of ProfilerMarkerPayload and its subclasses into the
  .h file so they are visible even when ProfilerMarkerPayload.cpp isn't
  compiled.

- Similarly, using a macro to make StreamPayload() a crashing no-op when the
  profiler isn't enabled. (It is never called in that case.)

--HG--
extra : rebase_source : 7aad2fdb1bd4e49782024dba6664e8f992771520
2017-06-23 16:24:15 +10:00
Mats Palmgren f79b080654 Bug 1377707 - Ensure that LogTestDataForPaint is not called at all when APZTestLoggingEnabled() is false. r=tn
MozReview-Commit-ID: 8z7eqBBsn0R
2017-07-05 02:04:15 +02:00
Ehsan Akhgari 74f1a0ceb8 Bug 1378045 - Make ScrollableLayerGuid::Hash() return PLDHashNumber; r=botond 2017-07-04 11:08:29 -04:00
Wes Kocher f8eb8f400a Backed out 2 changesets (bug 1377060) for build bustage a=backout
Backed out changeset c8f818803df7 (bug 1377060)
Backed out changeset bf11ec80b0fb (bug 1377060)

MozReview-Commit-ID: Hp1PtpWYOWV
2017-07-03 11:44:58 -07:00
David Anderson c307f7ba43 Implement asynchronous OMTP behind a pref. (bug 1377060 part 2, r=mchang) 2017-07-03 11:20:40 -07:00
David Anderson 52b2572051 Refactor PaintThread for async painting. (bug 1377060 part 1, r=mchang) 2017-07-03 11:20:33 -07:00
Phil Ringnalda 915412e692 Merge m-i to m-c, a=merge
MozReview-Commit-ID: HINQtggBLDr
2017-07-01 17:36:09 -07:00
Ethan Lin 82a7c2b5e4 Bug 1372118 - Part3. Implement CreateWebRenderCommands for text, transform and background color. r=jrmuizel, r=kats
MozReview-Commit-ID: JRoSjygSFHc
2017-06-30 17:23:20 -07:00
Ethan Lin 17960f3f3e Bug 1372118 - Part2. Use new interface of CreateWebRenderCommands for non-image display items. r=jrmuizel, r=kats
MozReview-Commit-ID: BcmRjQhDEyf
2017-06-30 17:23:20 -07:00
Ethan Lin de600bafd7 Bug 1372118 - Part1. Have a path to create WebRender commands without layers. r=jrmuizel, r=kats, r=mattwoodrow
MozReview-Commit-ID: 7iOW9rEtwur
2017-06-30 17:23:20 -07:00
David Anderson 0360dc3a99 Fix OpenGL texture coordinate flipping in Advanced Layers. (bug 1377303, r=mattwoodrow) 2017-06-30 11:45:02 -07:00
Ryan Hunt ef12355496 Bug 1376912 - Add logging for APZ keyboard scrolling. r=kats
MozReview-Commit-ID: Gp14vangDaS

--HG--
extra : rebase_source : 5742f67a5330e1b27382613b5e875087fc9d90d2
2017-06-29 14:41:51 -04:00
vincentliu 7d576c4c02 Bug 1373937 - Add gfxCriticalNote() to get error information. r=dvander 2017-06-30 09:42:48 -07:00
Carsten "Tomcat" Book daa67cc9e3 merge mozilla-inbound to mozilla-central a=merge 2017-06-30 12:59:45 +02:00
sotaro 5145e40a3c Bug 1335335 - Manually call DidComposite() when transaction was dropped because of obsoleted command r=nical
The patch fixes a problem on windows. Before the patch, there was a case that moved tab was not re-rendered. When WebRenderBridgeParent reveived obsolted transaction, DidComposite() was not returned to a client side. It stopped nsRefreshDriver to trigger a next transaction.
2017-06-29 18:06:31 -07:00
sotaro 2292edf20c Bug 1335335 - Tab move between different windows does not work when e10s is enabled r=nical
When the tab move happens, related non-root WebRenderBridgeParent is updated as to render to different webrender instance. webrender does not support of sharing resources and keys yet. Then when the tab move happens, the patch just removes all keys and resources that belongs to previous webrender. Ideally all resources that belong to WebRenderBridgeParent should be reallocated in an update webrender. But the patch does not do it, instead it just request WebRenderBridgeChild to re-allocate all resources again for simplicity. Performance improvement will happen in a future patch.

This patch support only tab move that uses only raw data external images. Support of native texture external images will happen in a future patch.
2017-06-29 18:06:11 -07:00
sotaro cb7938acc1 Bug 1376875 - Call Destroy() from LayerTransactionParent::ActorDestroy() r=nical 2017-06-29 16:24:55 -07:00
Ryan Hunt ba66247ed7 Bug 1376526 - Perform scroll snapping with async keyboard scrolling. r=kats
MozReview-Commit-ID: 5AFRpQaw6jL

--HG--
extra : rebase_source : 5f5df5f3a4acfd7164644aeec3595355aa0e8b99
2017-06-29 14:37:54 -04:00
Randall Barker df2adf9cee Bug 1377224 - Ensure the real toolbar is visible when the page is too small to scroll r=kats
MozReview-Commit-ID: 1rTZUoQEi0P
2017-06-29 14:43:25 -07:00
Sebastian Hengst e85b6178ce Backed out changeset ac18f9244933 (bug 1335335) for build bustage: version control conflict in maker file at WebRenderBridgeParent.h:235. r=backout on a CLOSED TREE 2017-06-29 22:02:16 +02:00
Sebastian Hengst 86c1297e01 Backed out changeset c5dbfdc1892e (bug 1335335) 2017-06-29 22:01:19 +02:00
sotaro 6cec97d16c Bug 1335335 - Manually call DidComposite() when transaction was dropped because of obsoleted command r=nical
The patch fixes a problem on windows. Before the patch, there was a case that moved tab was not re-rendered. When WebRenderBridgeParent reveived obsolted transaction, DidComposite() was not returned to a client side. It stopped nsRefreshDriver to trigger a next transaction.
2017-06-29 12:45:29 -07:00
sotaro 23d69372f5 Bug 1335335 - Tab move between different windows does not work when e10s is enabled r=nical
When the tab move happens, related non-root WebRenderBridgeParent is updated as to render to different webrender instance. webrender does not support of sharing resources and keys yet. Then when the tab move happens, the patch just removes all keys and resources that belongs to previous webrender. Ideally all resources that belong to WebRenderBridgeParent should be reallocated in an update webrender. But the patch does not do it, instead it just request WebRenderBridgeChild to re-allocate all resources again for simplicity. Performance improvement will happen in a future patch.

This patch support only tab move that uses only raw data external images. Support of native texture external images will happen in a future patch.
2017-06-29 12:44:53 -07:00
sotaro 1deee6448b Bug 1377024 - Add support of device reset test from about:support r=kats,dvander 2017-06-29 11:46:36 -07:00
Ryan Hunt 341325dac4 Bug 1376549 - Prevent APZ handling of keyboard shortcuts hardcoded in ESM. r=kats
MozReview-Commit-ID: 1IolnCXGPjQ

--HG--
extra : rebase_source : 748ed1700383f255d4c32f82d7e5f1455ede8d50
2017-06-28 16:06:47 -04:00
Carsten "Tomcat" Book 5f00ae3a8b merge mozilla-inbound to mozilla-central a=merge 2017-06-29 15:47:04 +02:00
Ryan Hunt a95f4245e9 Bug 1376997 - Use the correct focus target in WebRenderBridgeParent::UpdateAPZ. r=kats
MozReview-Commit-ID: AXt28gZ3jdi

--HG--
extra : rebase_source : 0358529f0194df93ffa5602956fe2e1617cf80d0
extra : histedit_source : da561f94b8b5ba7b5d9bdc742d011ddd9258f983
2017-06-28 20:00:48 -04:00
Ryan Hunt 83d3e638ed Bug 1376879 - Check if we have a retargeted PresShell in FocusTarget. r=kats
MozReview-Commit-ID: L2v2U0MXecv

--HG--
extra : rebase_source : 271fb2d8c31b511981d4ace880b56df7a9b79455
extra : histedit_source : 37be2c45de26bf84124615900638f6803e11c553
2017-06-28 14:03:34 -04:00
Alastor Wu 67c4ba2c09 Bug 1373177 - part4 : add assertion to make sure the function call order. r=jolin
The Init()/Shutdown() would be run on the main thread, AcquireTexture() would be
on media thread and Fill() would be on compostitor thread.

Add assertion to make sure the call order, since we don't want to call Fill()
or AcquireTexture() after shutdown.

MozReview-Commit-ID: 3Gydr7b4Raq

--HG--
extra : rebase_source : a81f7a58c94b2fc75bba500a6a2d087e05b520cd
2017-06-30 11:14:00 -07:00
Alastor Wu 811f4cea38 Bug 1373177 - part2 : add log. r=jolin
Add lazy log for debugging.

MozReview-Commit-ID: 4VYjLDobFeW

--HG--
extra : rebase_source : f8e52333b0cd0bf7619b1611eb033f69744d0684
2017-06-30 11:12:52 -07:00
Alastor Wu eaf35bf952 Bug 1373177 - part1 : automatically refill the pool if the textures number is lower than specific threshold. r=bechen,jolin,snorp
The pool would be refilled when the compositor starts rendering the frame.
However, if we consume lots of textures but doesn't render any frame, then the
pool would always empty and no one can get new texture id.

One case is that when we release decoders too early before rendering the first
frame, the pool won't be refilled, and it causes all media threads are blocked.

Now we would refill the pool if the textures number is lower than the specific
threshold.

MozReview-Commit-ID: CYBLYi9hFD9

--HG--
extra : rebase_source : 309338a4cf2283ed93afcc4af2cc1cf5e925661d
2017-06-30 11:12:49 -07:00
Kartikaya Gupta 7332c6da98 Bug 1376782 - Replace gfxSize with a typedef to SizeDouble. r=jrmuizel
Most of the changes in this patch are just using the explicit
constructor from gfx::IntSize to gfx::Size, since gfxSize did
that implicitly but gfx::Size doesn't.

MozReview-Commit-ID: CzikGjHEXje

--HG--
extra : rebase_source : 9d19977f2a774d9a2a653db923553a6c2e06f82a
2017-06-28 11:41:21 -04:00
Andrew McCreight 1533adf4c3 Bug 1380124 - Fix 'desctruction' typos. r=njn
MozReview-Commit-ID: 8gNYd7NL58U

--HG--
extra : rebase_source : bc0c85d96a499e8de102d1409685e6b2f7605ffe
2017-07-11 13:04:26 -07:00
Carsten "Tomcat" Book 257a632d4b Merge mozilla-central to autoland on a CLOSED TREE 2017-06-28 16:33:00 +02:00
Carsten "Tomcat" Book 0a8e2e111d Backed out changeset c3ac91f3aeb9 (bug 1343728) 2017-06-28 15:52:09 +02:00
Carsten "Tomcat" Book 45f2e51f0a Merge mozilla-central to autoland 2017-06-28 13:47:29 +02:00
Mats Palmgren 557b895016 Bug 1376460 - Use Lookup instead of Get+Remove to avoid unnecessary hashtable lookups. r=froydnj
MozReview-Commit-ID: CE7r2ESeAia
2017-06-28 01:03:16 +02:00
Mats Palmgren c49a96b7fd Bug 1376297 part 2 - Switch to nsRefPtrHashtable since it's more appropriate for holding RefPtr values. r=froydnj
MozReview-Commit-ID: 5hxCuDpITcC
2017-06-28 01:03:16 +02:00
Mats Palmgren 1bbdb5f4c6 Bug 1376297 part 1 - Use Lookup instead of Get+Remove, and remove a useless Get before Remove, to avoid unnecessary hashtable lookups. r=froydnj
MozReview-Commit-ID: BeuLhwaQ8H6
2017-06-28 01:03:16 +02:00
Mats Palmgren 5293f63576 Bug 1376296 part 2 - Switch to nsRefPtrHashtable since it's more appropriate for holding RefPtr values. r=froydnj
MozReview-Commit-ID: IkVx7XJG0ai
2017-06-28 01:03:16 +02:00
Mats Palmgren bc03580b86 Bug 1376296 part 1 - Use Lookup instead of Get+Remove, and remove a useless Get before Remove, to avoid unnecessary hashtable lookups. r=froydnj
MozReview-Commit-ID: 6YgO0TzY32C
2017-06-28 01:03:16 +02:00
sotaro 5120a89df4 Bug 1375349 - Add calling ScheduleComposition() in CompositorBridgeParent::RecvAdoptChild() r=mattwoodrow 2017-06-27 14:56:16 -07:00
Michael Layzell e291335cf8 Bug 1343728 - Part 2: Add const operator== to TextureFactoryIdentifier and CompositorOptions, r=jrmuizel
MozReview-Commit-ID: 6BayMmqNlyx
2017-06-27 16:24:48 -04:00
David Anderson e09978bd8b Implement LayerMLGPU::SetLayerManager. (bug 1375759, r=mattwoodrow) 2017-06-27 13:11:01 -07:00
David Anderson 5168081e97 Fix not flushing unused TextureHosts in Advanced Layers. (bug 1376243, r=mattwoodrow)
--HG--
extra : rebase_source : 879c210dbe682b2128932b0e85e58927be600a06
2017-06-27 11:59:25 -07:00
Kartikaya Gupta dc174219de Bug 1375497 - Implement some more PLayerTransaction testing APIs in PWebRenderBridge. r=pchang
MozReview-Commit-ID: Em4VROmcUx0

--HG--
extra : rebase_source : c763f6f91f482f7b1ddc03280aff51ead6fd894e
2017-06-27 20:29:06 -04:00
Kartikaya Gupta b95fb227dd Bug 1375497 - Extract helper methods to read animation values. r=pchang
MozReview-Commit-ID: EusfcwPVGkL

--HG--
extra : rebase_source : a52bc1ce8430288e2f2cf41b13fa18d635c9fb7c
2017-06-27 20:29:06 -04:00
Kartikaya Gupta 4635e36bee Bug 1375497 - Make sure the WebRenderBridgeParent respects the testing time set in the CompositorBridgeParent. r=pchang
This allows testing code control over the animation steps running over in the
compositor, which is needed for the OMTA mochitests.

MozReview-Commit-ID: CXJcieSEoRl

--HG--
extra : rebase_source : ad73196ac835e7aae0003befa8c71e81a9019dd2
2017-06-27 20:29:05 -04:00
Kartikaya Gupta e5c184cad5 Bug 1375497 - Modify the SetTestSampleTime and LeaveTestMode functions to take a layers id instead of a LayerTransactionParent. r=pchang
This will make these functions usable from WebRenderBridgeParent, which has a
layers id but doesn't have a LayerTransactionParent.

MozReview-Commit-ID: FvxGPdLeUWe

--HG--
extra : rebase_source : eaed5dedeccda41068cade3d5b4527d0f047eed9
2017-06-27 20:29:05 -04:00
Ryan Hunt 9b1e2c1ec0 Bug 1351783 part 20 - Report async keyboard scrolling to telemetry. r=botond
MozReview-Commit-ID: IwLL2xg3BgY

--HG--
extra : rebase_source : ba0aea8605e33bc9755d6ff454bd4b3549998443
extra : histedit_source : 8de02662e5fd562c3002c18540fc74d4f61cb969
2017-06-22 19:26:07 -04:00
Ryan Hunt fb04e72bad Bug 1351783 part 19 - Rename Keyboard.h to KeyboardMap.h. r=masayuki
This is a better name for the header that matches its main class.

MozReview-Commit-ID: KSt9LVT3yRR

--HG--
rename : gfx/layers/apz/src/Keyboard.cpp => gfx/layers/apz/src/KeyboardMap.cpp
rename : gfx/layers/apz/src/Keyboard.h => gfx/layers/apz/src/KeyboardMap.h
extra : rebase_source : ec4c9ec5afa8479dc4cd3e987fc3293f047beb9e
extra : histedit_source : caa3a11043fc1ccdff3d7853eda69a0a3dfff99e
2017-06-15 18:06:00 -04:00
Ryan Hunt bb5749ccf1 Bug 1351783 part 17 - Do less work when apz.keyboard.enabled is false. r=kats
When keyboard apz is disabled, we don't need to calculate focus targets and
we don't need to update focus state. It should be harmless even if it's done,
but I think it's good to not add something on this critical path that doesn't
do anything.

This commit also disable keyboard map generation in this case too for similar
reasoning. This has the side effect that you can't turn on keyboard apz without
doing a restart.

MozReview-Commit-ID: LxmofT2g7qs

--HG--
extra : rebase_source : 719d29efd80498b824fee03a5be1c1fd05c83074
extra : histedit_source : 7ad71a19782fc6dd203207afbdc7a73a936b3e04
2017-06-06 11:08:45 -05:00
Ryan Hunt db5f497c0f Bug 1351783 part 16 - Perform async scrolling for keyboard events when possible. r=kats,botond,dvander
This commit ties it all together by dispatching keyboard actions to scroll targets
in response to keyboard inputs when we have current and valid focus state.

MozReview-Commit-ID: G7rZiS3FH5e

--HG--
extra : rebase_source : 10129d417fe8ef576cac5bda3157dd8f65b5843a
extra : histedit_source : be651a33f787f68bc764988ddc073d346e854491
2017-06-05 19:46:06 -05:00
Ryan Hunt c24e099b23 Bug 1351783 part 15 - Hook up APZC for scrolling based on a KeyboardScrollAction. r=kats,botond
This commit adds code for keyboard scroll animations and computing the delta
needed for a keyboard scroll action. Keyboard scrolling behavior is more complex
with scroll snapping, so we don't support async keyboard scrolling when we have
scroll snap points.

MozReview-Commit-ID: 97CpprCBp2A

--HG--
extra : rebase_source : 154b2c6b5a6c587fca011ab885c8d46ba6b4d80a
extra : histedit_source : 87ba53fe89069a47751d9ce25fc344011fb0f4de
2017-06-06 04:47:10 -05:00
Ryan Hunt 285770048d Bug 1351783 part 14 - Create a base class for WheelScrollAnimation. r=botond
MozReview-Commit-ID: BtUJo5NAiTR

--HG--
extra : rebase_source : ba3d7cf476ab806094ff2e0c33753e81f88761bf
extra : histedit_source : a898248b30fd1060e82478096fe2624a35473c26
2017-06-15 04:31:50 -04:00
Ryan Hunt 5e36e136d3 Bug 1351783 part 13 - Add a function for determing if a ScrollSnapInfo has scroll snap points. r=botond
MozReview-Commit-ID: 7Dj0RGfQFNC

--HG--
extra : rebase_source : e25f6657f379b286c9393af19b3771c6296db468
extra : histedit_source : e9206c7c276fb9653df142617e08ec3bb7c6f1ad
2017-06-15 03:52:34 -04:00
Ryan Hunt c1312e5abc Bug 1351783 part 12 - Create and sync focus sequence numbers. r=kats,botond,dvander
Focus can change at any moment in a document. This causes non-determinism and
correctness problems for doing keyboard apz scrolling. To get around this, we
will maintain deterministic behavior for focus changes initiated by input events
and see if we can get away with more non-determinism for things like `setTimeout`

In order to do this, we disable async keyboard scrolling when an input event is
processed that could have a event listener. We then attach a sequence number to
that input event and dispatch it to content. In content, we record the highest
sequence number that we have processed from an event, and send that on each focus
update. Using this, we can determine in APZ if we have a current focus target or
if we are still waiting for an input event to be processed and focus to be
reconfirmed.

MozReview-Commit-ID: CWcu8YEFQz4

--HG--
extra : rebase_source : 8c54a619bd4f5ee892f0cc8768a10f3e1e4e0b59
extra : histedit_source : 601ca293a028787883841adc6b40e62c0cc829e5
2017-06-05 19:45:31 -05:00
Ryan Hunt 0785b2f849 Bug 1351783 part 11 - Sync FocusTarget with WebRenderLayerManager. r=kats
MozReview-Commit-ID: LxWt22XY5IE

--HG--
extra : rebase_source : c8eb965d1737d4f6791d96d4f975a31365790632
2017-06-13 02:43:59 -04:00
Ryan Hunt a6a2b4f7c4 Bug 1351783 part 10 - Create and sync the current FocusTarget on each layer transaction. r=kats,botond
This commit modifies PresShell and nsDisplayList to send a FocusTarget update on
every layer transaction. Ideally we would like to send updates as often as possible,
but this seems like it works well. This can be iterated on later, if necessary.

MozReview-Commit-ID: 8PFqIOhzH77

--HG--
extra : rebase_source : 1e2c3b5620f5d7e6e789848da57b2486c3d74f14
2017-06-13 02:00:49 -04:00
Ryan Hunt 3332ba9ac0 Bug 1351783 part 9 - Disable a FocusTarget for an editable element. r=smaug
This commit updates FocusTarget to disable itself if the focused element is editable,
or is a part of an editable document. This is needed because we cannot do async
scrolling when this is the case.

MozReview-Commit-ID: Fl7W3967djG

--HG--
extra : rebase_source : f376dec47965ade11055e10d68311fa9566aca9f
2017-06-05 19:23:45 -05:00
Ryan Hunt 1432b9109d Bug 1351783 part 8 - Gather whether there are key listeners on the focused element. r=kats,smaug
This commit updates FocusTarget to collect whether there are key listeners
on the event target chain for the focused element. This is needed because we
cannot do async scrolling when this is the case.

MozReview-Commit-ID: FhSyF6ffZ4

--HG--
extra : rebase_source : 3e7e8e88ddda1a6b9e8542c131fdbb37e578d7e1
2017-06-05 19:22:16 -05:00
Ryan Hunt 99499fb9d6 Bug 1351783 part 7 - Create FocusState and FocusTarget types. r=kats,botond
This commit begins the work needed for tracking focus by creating two new classes,
FocusTarget and FocusState. FocusState is created and used by APZCTreeManager to
track the global focus information, while FocusTarget is created per layer tree and
sent to APZ with local focus information. Between the two we are able to figure out
what the correct scrollable layer is to use in response to a keyboard scroll.

See the comment in `FocusState.h` for more details on the architecture and things
needed in future patches to complete this.

MozReview-Commit-ID: F75VZv3i9U2

--HG--
extra : rebase_source : 3d04bced8e13a9884f0c1b320bad8ba2205d7011
2017-06-05 19:12:22 -05:00
Ryan Hunt cc923c3909 Bug 1351783 part 6 - Create and send KeyboardMap to APZCTreeManager. r=kats
This commit makes it so we initialize, send, and store a KeyboardMap for every
APZCTreeManager for later keyboard event processing.

This is a naive approach so it may be worth improving.

MozReview-Commit-ID: CYTbLL3wRlC

--HG--
extra : rebase_source : 016b80a2a209d4fb5b92bc3adb95bd2dbb4399e0
2017-06-05 18:35:32 -05:00
Ryan Hunt 18867b218f Bug 1351783 part 5 - Add a KeyboardMap type. r=kats,masayuki
The XBL bindings used for scrolling are managed by a nsXBLWindowKeyHandler. This
class loads the handlers and has logic for searching through them to match a
keyboard event. This commit adds a KeyboardMap class for storing KeyboardShortcuts
and for mirroring the search logic of nsXBLWindowKeyHandler.

MozReview-Commit-ID: 5BmFBilKTJy

--HG--
extra : rebase_source : 96cd0f5808ba6c4926e9da368ab3780b1d9d1449
2017-06-05 18:29:04 -05:00
Ryan Hunt 710c2e9481 Bug 1351783 part 4 - Add a KeyboardShortcut type. r=kats,masayuki
Keyboard scrolling works by first dispatching a key event to the focused element
of the page. It is then caught by a XBL binding put on the chrome event handler of
every window. The XBL binding searches through all of its handlers to find one
that can handle the keyboard event. The matching binding has a command string
which is dispatched to the nsGlobalWindowCommands which dispatches to PresShell
which does the actual scrolling.

To do this asynchronously, we need a representation of the XBL handlers that can
be applied to a KeyboardInput to get a KeyboardAction.

This commit adds KeyboardShortcut for this purpose. KeyboardShortcut is designed
to be compatible with nsXBLPrototypeHandler and to only handle the specific cases
we care about for keyboard scrolling. If a XBL handler runs javascript or does
anything else we cannot handle in an OMT situation, then we create a
dispatch-to-content KeyboardShortcut.

MozReview-Commit-ID: 1qzywS3QHVp

--HG--
extra : rebase_source : 8ea4f85c02d04ce5e0fa6e430c44ac920269dd9f
2017-06-05 18:24:35 -05:00
Ryan Hunt a97d402536 Bug 1351783 part 3 - Add a KeyboardScrollAction type. r=kats,masayuki
The different types of keyboard scrolls are represented as command strings that
are dispatched to nsGlobalWindowCommands. This commit adds a class to represent
these command strings, along with a function to find the keyboard scroll action
corresponding to a command string.

MozReview-Commit-ID: 20vvYdzlYYT

--HG--
extra : rebase_source : 8a965429f57534ac65da597cbb05a08284f7eaeb
2017-06-05 18:17:30 -05:00
Ryan Hunt cfc792bc4c Bug 1351783 part 1 - Add includes for unified build issues. r=kats
MozReview-Commit-ID: D57bbW4pmPZ

--HG--
extra : rebase_source : 9af2973a112c7ea641876c1f945797f2c7c945ce
2017-06-05 18:03:02 -05:00
Sebastian Hengst 4798a534fd Backed out changeset 9db369ba372c (bug 1375759) for unused mComputedDrawRegion. r=backout 2017-06-27 20:47:30 +02:00
David Anderson 45ebfe4fb7 Implement LayerMLGPU::SetLayerManager. (bug 1375759, r=mattwoodrow) 2017-06-27 11:31:37 -07:00
Carsten "Tomcat" Book 4e00eff077 merge mozilla-inbound to mozilla-central a=merge 2017-06-27 10:56:41 +02:00