Commit Graph

34422 Commits

Author SHA1 Message Date
Nicolas Silva
01481c8d58 Bug 1570543 - Fix incorrect batch index after merging batches. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D41166

--HG--
extra : moz-landing-system : lando
2019-08-09 03:50:47 +00:00
Nika Layzell
24f3c996f7 Bug 1570369 - Part 5: Use IPDL refcounted for PCompositorBridge, r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D40256

--HG--
extra : moz-landing-system : lando
2019-08-08 16:46:33 +00:00
Nika Layzell
f9fb4fc118 Bug 1570369 - Part 2: Use IPDL refcounted for PAPZInputBridge, r=rhunt
Differential Revision: https://phabricator.services.mozilla.com/D40253

--HG--
extra : moz-landing-system : lando
2019-08-08 16:46:22 +00:00
thomasmo
b81f65bc8d Bug 1570230 - Crash in [@ mozilla::gfx::VRShMem::JoinShMem] r=kip
Bug 1570440 - [Web content] Firefox Crashes on CNN.COM (Windows7)

This change addresses an issue where VRShMem can be in an invalid state when
there is no VR process available. In this case, the VRExternalShmem struct is
allocated on the heap rather than accessed via shared memory. When VRService
stops, it clears this pointer, but cannot re-access it when it restarts. Thus,
this results in a nullptr crash when a tab Enters, Exits, and Re-enters VR.

The fix is to distinguish between in-proc heap allocation vs cross-proc shared
memory so that VRService can decide to make the call to LeaveShMem in its Stop
function. This will keep the heap allocation alive across service restarts and
prevent the null crash.

Differential Revision: https://phabricator.services.mozilla.com/D40681

--HG--
extra : moz-landing-system : lando
2019-08-08 17:57:34 +00:00
Nika Layzell
143941e2d4 Bug 1523638 - Part 9: Use provided 'WindowGlobalChild' actors to create the initial about:blank document, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D37656

--HG--
extra : moz-landing-system : lando
2019-08-08 16:07:12 +00:00
L. David Baron
85cac89c70 Bug 1561792 - Rename the pref gfx.font_ahem_antialias_none to gfx.font_rendering.ahem_antialias_none to avoid the additional pref observer added in the previous patch. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D41068

--HG--
extra : moz-landing-system : lando
2019-08-07 20:46:04 +00:00
L. David Baron
7f14d882ae Bug 1561792 - Handle dynamic changes of gfx.font_ahem_antialias_none (and make FlushFontAndWordCaches stronger for other callers) and fix a few test failures/intermittents using it. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D41067

--HG--
extra : moz-landing-system : lando
2019-08-07 20:44:35 +00:00
Narcis Beleuzu
3830ded867 Backed out changeset 87890c29a8ea (bug 1570230) for crashes on mozilla::gfx::VRShMem::CreateShMem(bool) . CLOSED TREE 2019-08-08 01:19:51 +03:00
Kearwood "Kip" Gilbert
936585e4fc Bug 1570151 - WebXR: Implement VRManagerEventObserver r=imanol
In order to support multiple API's (WebVR + WebXR) being enabled simultaneously, a new class, gfx::VRManagerEventObserver, implements a pure virtual interface to be shared by both the WebVR and WebXR observers of XR device related events.

Differential Revision: https://phabricator.services.mozilla.com/D39985

--HG--
extra : moz-landing-system : lando
2019-08-07 08:29:32 +00:00
Tom Schuster
0e913c22c4 Bug 1558915 - Use infallible nsIURI::SchemeIs in various places r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D40677

--HG--
extra : moz-landing-system : lando
2019-08-07 19:49:40 +00:00
thomasmo
76f4d1e6ef Bug 1570230 - Crash in [@ mozilla::gfx::VRShMem::JoinShMem] r=kip
Bug 1570440 - [Web content] Firefox Crashes on CNN.COM (Windows7)

This change addresses an issue where VRShMem can be in an invalid state when
there is no VR process available. In this case, the VRExternalShmem struct is
allocated on the heap rather than accessed via shared memory. When VRService
stops, it clears this pointer, but cannot re-access it when it restarts. Thus,
this results in a nullptr crash when a tab Enters, Exits, and Re-enters VR.

The fix is to distinguish between in-proc heap allocation vs cross-proc shared
memory so that VRService can decide to make the call to LeaveShMem in its Stop
function. This will keep the heap allocation alive across service restarts and
prevent the null crash.

Differential Revision: https://phabricator.services.mozilla.com/D40681

--HG--
extra : moz-landing-system : lando
2019-08-07 19:23:33 +00:00
Charlie Marlow
f8d1049107 Bug 1411922: Part 1: Add rendering support for text-decoration-skip-ink r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D39377

--HG--
extra : moz-landing-system : lando
2019-08-07 17:41:13 +00:00
Dzmitry Malyshau
36fe1b9594 Bug 1567577 - Make WR to have multiple array textures for the shared cache r=gw
have texture cache to manage potentially multiple array textures of each type.

Differential Revision: https://phabricator.services.mozilla.com/D39912

--HG--
extra : moz-landing-system : lando
2019-08-06 22:48:27 +00:00
Bob Owen
2b04f744b3 Bug 1570358: Check validity of enums before playing back Moz2D RecordedEvents. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D40419

--HG--
extra : moz-landing-system : lando
2019-08-05 13:08:30 +00:00
Cosmin Sabou
c3430326e6 Backed out changeset ca88862d6b63 (bug 1558915) for causing build bustages on StartupCacheUtils. CLOSED TREE 2019-08-07 13:20:32 +03:00
Tom Schuster
8bc1f5ada8 Bug 1558915 - Use infallible nsIURI::SchemeIs in various places r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D40677

--HG--
extra : moz-landing-system : lando
2019-08-07 09:36:56 +00:00
Razvan Maries
eedbf1137f Backed out changeset b197ca57677a (bug 1558915) for build bustages. CLOSED TREE 2019-08-07 01:04:43 +03:00
Tom Schuster
03c7998ef2 Bug 1558915 - Use infallible nsIURI::SchemeIs in various places r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D40677

--HG--
extra : moz-landing-system : lando
2019-08-06 20:19:41 +00:00
Jeff Muizelaar
bc8f976c10 Bug 1571837. Don't call FlushItem for hit test items. r=mstange
We already skip painting hit test items. We can do even better
by not including them in the recording at all.

Differential Revision: https://phabricator.services.mozilla.com/D40859

--HG--
extra : moz-landing-system : lando
2019-08-06 19:05:20 +00:00
Markus Stange
c33b29cfbb Bug 1571253 - Call mProfilerScreenshotGrabber.NotifyEmptyFrame() in the main place where no-op composites are noticed. r=mattwoodrow
There's another call inside Render() but that's usually too late.

Depends on D40558

Differential Revision: https://phabricator.services.mozilla.com/D40559

--HG--
extra : moz-landing-system : lando
2019-08-04 20:37:28 +00:00
Markus Stange
901919b119 Bug 1571253 - Persist the layers damage region in mInvalidRegion if the frame has been aborted. r=mattwoodrow
An alternative approach, which I would have preferred, would be to keep the old
mClonedLayerTreeProperties around, so that future frames can compare to the
last non-aborted mClonedLayerTreeProperties. However, that doesn't work in the
current world because mClonedLayerTreeProperties->ComputeDifferences has side-
effects.

Differential Revision: https://phabricator.services.mozilla.com/D40558

--HG--
extra : moz-landing-system : lando
2019-08-04 20:37:06 +00:00
Markus Stange
259d8d43ed Bug 1571253 - Refactor invalid region handling in LayerManagerComposite::UpdateAndRender without functional changes. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D40557

--HG--
extra : moz-landing-system : lando
2019-08-06 18:26:55 +00:00
Markus Stange
c3e76bb3af Bug 1570869 - Add some comments to WindowInfo and reorder members a little. r=nical
Depends on D40375

Differential Revision: https://phabricator.services.mozilla.com/D40376

--HG--
extra : moz-landing-system : lando
2019-08-05 12:08:18 +00:00
Markus Stange
dd7b882fd0 Bug 1570869 - Inline FrameRenderingComplete into HandleFrameOneDoc. r=nical
Depends on D40374

Differential Revision: https://phabricator.services.mozilla.com/D40375

--HG--
extra : moz-landing-system : lando
2019-08-05 12:09:46 +00:00
Markus Stange
d4aaf327fd Bug 1570869 - Fold mRender, mDocFramesSeen and mDocFrameCounts into PendingFrameInfo. r=nical
This makes it clear that these belong to a single frame and makes some assumptions explicit.
For example, in the old code, mDocFrameCounts.size() was the same as mPendingFrames.size()
when a pending frame was added, but then the sizes differed during rendering because a frame's
mDocFrameCount would be popped at the beginning of rendering while mPendingFrames would be
popped at the end of rendering.
This modification also makes some clearing of values unnecessary. A new frame always starts out
with cleared values for mDocFramesSeen and mFrameNeedsRender.

This patch also combines the two locks in HandleFrameOneDoc.

Depends on D40373

Differential Revision: https://phabricator.services.mozilla.com/D40374

--HG--
extra : moz-landing-system : lando
2019-08-05 12:07:29 +00:00
Markus Stange
6ebb22a9d3 Bug 1570869 - Replace mRenderingCount with a boolean, to make it clear that we are only ever rendering at most one frame. r=nical
The only place that increments mRenderingCount, HandleFrameOneDoc, also synchronously calls FrameRenderingComplete
at the end of the function, which decrements mRenderingCount again. So it can never grow beyond 1.

Depends on D40372

Differential Revision: https://phabricator.services.mozilla.com/D40373

--HG--
extra : moz-landing-system : lando
2019-08-05 12:02:38 +00:00
Markus Stange
d00dade81c Bug 1570869 - Remove mPendingCount in favor of an accessor. r=nical
Depends on D40371

Differential Revision: https://phabricator.services.mozilla.com/D40372

--HG--
extra : moz-landing-system : lando
2019-08-05 11:59:35 +00:00
Markus Stange
17df58880c Bug 1570869 - Inline IncRenderingFrameCount into HandleFrame. r=sotaro
IncRenderingFrame only had one caller. Inlining it into HandleFrame makes it clearer
how the values in mWindowInfos are mutated and in what order calls happen.
This also renames HandleFrame to HandleFrameOneDoc, because we're expecting one call
per document before we actually trigger the render.

Depends on D40370

Differential Revision: https://phabricator.services.mozilla.com/D40371

--HG--
extra : moz-landing-system : lando
2019-08-06 07:01:15 +00:00
Markus Stange
e36f7409a9 Bug 1570869 - Combine pending frame info in RenderThread's WindowInfo. r=nical
Differential Revision: https://phabricator.services.mozilla.com/D40370

--HG--
extra : moz-landing-system : lando
2019-08-05 11:54:31 +00:00
sotaro
88ebf5f1e4 Bug 1569724 - Do not use front TextureClient as next back buffer when PersistentBufferProviderShared::ClearCachedResources() is called r=nical
When PersistentBufferProviderShared::ClearCachedResources() is called, PersistentBufferProviderShared keeps front TextureClient. But TextureHost's read lock might be released by host side. Then TextureClient's read lock could not be used for checking if the TexutreClient is used by host side.

Differential Revision: https://phabricator.services.mozilla.com/D40440

--HG--
extra : moz-landing-system : lando
2019-08-06 00:43:09 +00:00
sotaro
bdf4e9bb80 Bug 1570592 - Remove AsyncImagePipelineManager::GetNextExternalImageId() r=nical
Differential Revision: https://phabricator.services.mozilla.com/D40168

--HG--
extra : moz-landing-system : lando
2019-08-05 11:51:57 +00:00
sotaro
b45b5a1f21 Bug 1571331 - Call ScheduleForcedGenerateFrame() in WebRenderBridgeParent::RecvScheduleComposite() r=nical
Differential Revision: https://phabricator.services.mozilla.com/D40580

--HG--
extra : moz-landing-system : lando
2019-08-05 12:21:31 +00:00
sotaro
6abb9c3532 Bug 1570593 - Do not use ResourceCache::is_image_active() with multiple documents r=gw
Differential Revision: https://phabricator.services.mozilla.com/D40169

--HG--
extra : moz-landing-system : lando
2019-08-04 21:40:13 +00:00
thomasmo
94cc4efcb3 Bug 1570125 - Create VR window via vrhost r=kip,mossop
This change creates the new export CreateVRWindow from vrhost.dll. This API
results in spawning a new Firefox window with the Firefox Reality 2D UI and
returns data needed for the host to interact with it. VRShMem is used to pass
data across process boundaries during this bootstrap process.

Additional tests are added to vrhost to be later converted to unittests.

Differential Revision: https://phabricator.services.mozilla.com/D40236

--HG--
rename : gfx/vr/vrhost/vrhost.cpp => gfx/vr/vrhost/vrhosttest.cpp
extra : moz-landing-system : lando
2019-08-02 20:55:48 +00:00
Imanol Fernandez
0bf3c0b8ac Bug 1570671 - Stop VRManager timer tasks when the application goes to background. r=kip
Stop VRManager timer tasks when the application goes to background.

Differential Revision: https://phabricator.services.mozilla.com/D40224

--HG--
extra : moz-landing-system : lando
2019-08-02 22:13:56 +00:00
Jeff Gilbert
9d744e0fdb Bug 1562462 - ANGLE Cherry-pick: Fix occasional corruption of vertex textures in HD4600 GPUs for WebRender. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D40354

--HG--
extra : moz-landing-system : lando
2019-08-02 01:56:17 +00:00
Jeff Gilbert
b29b969839 Bug 1562462 - Revert py-2to3 changes on py3 files from bug 1559975. NPOTB
Differential Revision: https://phabricator.services.mozilla.com/D40353

--HG--
extra : moz-landing-system : lando
2019-08-02 00:48:06 +00:00
Kearwood "Kip" Gilbert
5bd4ceaa42 Bug 1570075 - WebXR: Extend VRDisplayState and VRDisplayCapabilityFlags r=imanol
In order to support the WebXR implementation, VRDisplayState is being extended to enumerate the type of sessions a device supports (Inline, Immersive-VR, or Immersive-AR) and to report if the blend mode for AR would be additive or alpha blended).

Differential Revision: https://phabricator.services.mozilla.com/D39916

--HG--
extra : moz-landing-system : lando
2019-07-31 11:46:48 +00:00
Lee Salzman
4f06706e18 Bug 1569950 - only partially clear WR glyph caches if it is not necessary to fully clear. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D40361

--HG--
extra : moz-landing-system : lando
2019-08-02 15:11:47 +00:00
Dzmitry Malyshau
94761858ca Bug 1564118 - WR don't assume opaque on the lack of a clip task
those unwrap_or are mostly seen during the batching, where we should asssume that
the primitives are not clipped out and just unwrap() accordingly.

Differential Revision: https://phabricator.services.mozilla.com/D39940

--HG--
extra : moz-landing-system : lando
2019-08-02 14:48:46 +00:00
Dzmitry Malyshau
d109b775bd Bug 1570816 - Disallow nerest-sampled alpha textures in the shared cache in WR r=gw
Differential Revision: https://phabricator.services.mozilla.com/D40366

--HG--
extra : moz-landing-system : lando
2019-08-02 04:03:55 +00:00
Ciure Andrei
78c513784e Backed out changeset 9ab4ca317e30 (bug 1570671) for causing VRManager.cpp bustages CLOSED TREE 2019-08-02 03:16:18 +03:00
Imanol Fernandez
e2e9ce9c61 Bug 1570671 - Stop VRManager timer tasks when the application goes to background. r=kip
Stop VRManager timer tasks when the application goes to background.

Differential Revision: https://phabricator.services.mozilla.com/D40224

--HG--
extra : moz-landing-system : lando
2019-08-01 17:12:16 +00:00
Dzmitry Malyshau
13c8d55d12 Bug 1570401 - WR early out on transformed ClipOut clips r=gw
Refactors get_clip_result_complex to cover ClipOut cases for rectangles as well
as Clip for non-repeated images.

Differential Revision: https://phabricator.services.mozilla.com/D40094

--HG--
extra : moz-landing-system : lando
2019-08-01 02:07:21 +00:00
Timothy Nikkel
7184148ba0 Bug 1569215. In StackingContextHelper constructor pass parent scale to ChooseScale. r=jrmuizel
This might seem like we are including the parent scale twice because it is also included in mInheritedTransform but FrameLayerBuilder::ChooseScale only incorporates the passed in scale when combining it with a scale computed purely based on the local transform induced by this stacking context item.

This also fixes bug 1564698 and doesn't regress bug 1495163 (the only testcase I can still find for the regressing bug, bug 1415987).

Differential Revision: https://phabricator.services.mozilla.com/D39867

--HG--
extra : moz-landing-system : lando
2019-08-01 02:03:19 +00:00
Barret Rennie
c32eee8ff0 Bug 1566915 - Do not ref count the CompositionRecorder r=mstange
Now that there is only ever a single handle to the `CompositionRecorder`, it no
longer needs to be ref-counted. And since the `WebRenderCompositionRecorder` is
owned exclusively by the `RenderThread`, it no longer needs a mutex. All the
code that resulted from having handles to the `WebRenderCompositionRecorder` on
two different threads is now no longer necessary.

Differential Revision: https://phabricator.services.mozilla.com/D39791

--HG--
extra : moz-landing-system : lando
2019-07-31 18:28:47 +00:00
Barret Rennie
629a2f0b5d Bug 1566915 - Do not keep a handle to the composition recorder in the CompositorBridgeParent r=mstange
Since we are not writing frames to disk from the `CompositorBridgeParent` in
the WebRender case, we do not actually need a handle to the
`(WebRender)CompositionRecorder` there. Instead, the `HostLayerManager` and
`RenderThread` can maintain exclusive handles to these objects. This will allow
us to use unique pointers for these objects and delete code in a follow up
patch.

Differential Revision: https://phabricator.services.mozilla.com/D39790

--HG--
extra : moz-landing-system : lando
2019-07-31 18:28:38 +00:00
Barret Rennie
4374f75f51 Bug 1566915 - Write collected frames from the composition recorder on the render thread r=kvark
On macOS, if we try to write the collected frames from the
`CompositorBridgeParent` we will not have an active GL context, resulting in a
crash. Writing the frames from the `RenderThread` solves this problem.

Differential Revision: https://phabricator.services.mozilla.com/D39789

--HG--
extra : moz-landing-system : lando
2019-07-31 18:28:34 +00:00
Barret Rennie
0ea4a2cbed Bug 1569258 - Ensure we have a CompositionRecorder before attempting to write frames r=kvark,mstange
Instead of blindly attempting to write frames to disk, we now ensure that the
`CompositionRecorder` exists. In the case where we have not allocated one,
calling `windowUtils.setCompositionRecording(false)` will instead print an
error message to the browser console.

In addition, attempting to call `windowUtils.setCompositionRecording(true)`
while a `CompositionRecorder` exists will also result in an error message.

Differential Revision: https://phabricator.services.mozilla.com/D39584

--HG--
extra : moz-landing-system : lando
2019-07-31 20:21:03 +00:00
Matt Woodrow
8a6d6da9ef Bug 1569974 - Don't try to deference an empty Maybe when starting CrossProcessPaint with a rect. r=rhunt
Differential Revision: https://phabricator.services.mozilla.com/D39964

--HG--
extra : moz-landing-system : lando
2019-07-31 19:01:05 +00:00