Commit Graph

665942 Commits

Author SHA1 Message Date
Jeff Muizelaar
ade5ad48a8 Bug 1574327. Add a pref that we can use to disable d3d11 blacklist. r=aosmond
We'll use this to enable WARP on CI.

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

--HG--
extra : moz-landing-system : lando
2019-08-15 22:39:18 +00:00
David Walsh
709d01d4c1 Bug 1574263 - Switch to Tiny mode for DOM Mutationn Breakpoint reps r=Harald
Differential Revision: https://phabricator.services.mozilla.com/D42177

--HG--
extra : moz-landing-system : lando
2019-08-16 00:56:14 +00:00
Markus Stange
d5d70b0f4a Bug 1491442 - Fix field order. r=fix CLOSED TREE
--HG--
extra : histedit_source : f55bd44f83746c0d1876b70ec978bc9dc8629616
2019-08-15 21:52:55 -04:00
Markus Stange
32f588365d Bug 1491442 - Remove call to ReadBuffer. r=jgilbert
There's no other caller that sets ReadBuffer to anything else, and GL_BACK is
the default for default framebuffers. Furthermore, this call triggers
GL_INVALID_OPERATION errors when called on a non-default framebuffer.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 01:16:23 +00:00
Markus Stange
339de4b925 Bug 1491442 - Don't handle null render targets in this method. r=mattwoodrow
There's only one caller and it always passes a non-null render target.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 01:15:59 +00:00
Markus Stange
5af2fd32c9 Bug 1491442 - Call SuspendAsyncCATransactions on window focus changes. r=mattwoodrow
Without this, in windows with title bars, such as the bookmark library window,
the title bar and the content would update at different times.

The title bar paint is done as part of a main thread CoreAnimation transaction.
However, by default, we don't get notified of all main thread CA transactions;
our only notification mechanism is the updateLayer handler on the PixelHostingView,
and that handler is only invoked (the layer is only displayed) if the layer has
been marked as needing display. And by default, window focus changes do not mark
random views' backing layers as needing display. Usually, what this means is that
the window will be painted twice: Once in the main thread transaction, and then
another time on the compositor thread once Gecko has noticed a state change and
triggered its own composite in response. (Often, Gecko's compositor-side paint
will actually happen *before* the main thread paint, because the main thread is
often busy with repainting the system menu bar during window focus changes.)
Such non-atomic window repaints look glitchy.
Calling SuspendAsyncCATransactions will result in a call to updateLayer in the
upcoming CoreAnimation transaction and lets us update the entire window in one
atomic paint, and it will avoid updating the window early if the compositor
thread gets ahead of the main thread.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 01:15:34 +00:00
Markus Stange
01138923a6 Bug 1491442 - Disable window overlay drawing in the CoreAnimation path. r=mattwoodrow
Window overlay drawing was added as a workaround for the following:
When our NSOpenGLContext covered the entire window, it would cover the titlebar
contents and hide the window buttons and the title string. It would also not
get anti-aliased rounded corner clipping.

In windows that use CoreAnimation layers for the window frame, this is no longer
a problem, because the CoreAnimation layer tree takes care of these effects:
It applies rounded corner clipping to the window content layers, it puts the
window buttons on top, and it also puts the title string on top if it is shown.

So when we're using CoreAnimation, the existing code needs to be deactivated,
otherwise we'd draw those things twice.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 01:15:10 +00:00
Markus Stange
20f0865033 Bug 1491442 - Make sure to never trigger async CA transactions when the main thread might be resizing a window. r=mattwoodrow
This avoids most window resizing glitches.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 01:14:47 +00:00
Markus Stange
8b77e79501 Bug 1491442 - Support BasicCompositor OMTC rendering in the CoreAnimation path. r=mattwoodrow
Now CoreAnimation supports all rendering paths.
The BasicCompositor OMTC path is used when hardware acceleration is disabled,
for example in safe mode or when the user manually disabled it.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 01:14:22 +00:00
Markus Stange
4172e5ea96 Bug 1491442 - Render accelerated windows into mContentLayer, using OMTC. r=mattwoodrow
This makes windows that render using CompositorOGL or WebRender show content.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 01:13:52 +00:00
Markus Stange
2921208661 Bug 1491442 - Make nsChildView create a NativeLayerRootCA and fill it with content when painting using BasicLayers (which used to go through drawRect). r=mattwoodrow
This makes context menus work. Regular windows are still blank at this point.

This introduces a visual regression on 10.9: context menus and panels now no
longer have a shadow. Only 10.10 and above support shadows on transparent windows
that use CoreAnimation; 10.9 is not able to obtain the shadow shape on those
types of windows.
I think this is an acceptable regression to take. We want to use CoreAnimation
for all window types because it simplifies the code (no need to handle two
paths) and because it avoids expensive mode switches if we realize too late
that a window we just opened is supposed to use CoreAnimation.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 01:13:35 +00:00
Markus Stange
3cfb0f5ea9 Bug 1491442 - Add interfaces mozilla::layers::NativeLayerRoot and NativeLayer, and add CoreAnimation implementations NativeLayerRootCA and NativeLayerCA. r=jrmuizel
NativeLayerRoot and NativeLayer allow building up a flat layer "tree" of sibling
layers. They're created and manipulated with a synchronous-looking API, but any
changes will only be applied to the underlying native layers when ApplyChanges()
is called. This ensures that the modifications can be limited to run within a
CoreAnimation transaction, and on a thread of the caller's choosing.
In the near future I'm planning to have LayerManagerComposite create these
layers. That's the reason for the pseudo-abstracted cross-platform C++ API:
LayerManagerComposite can create and place the layers, and any painting into the
layer surfaces will happen in the compositor implementations with platform-specific
code.
For now, the CoreAnimation implementation is the only implementation. I think
the current API will let us use the same infrastructure for DirectComposite
layers on Windows, but we'll likely need to make some API modifications once we
attempt that.
The classes are threadsafe; their methods can be called on any thread and the
caller is responsible for sufficient synchronization. In reality, there are only
two threads that would have a reason to use these layers: The compositor thread
and the main thread. The main thread creates and destroys the NativeLayerRootCA,
and sometimes it calls ApplyChanges, e.g. during window resizes. It also calls
SetBackingScale. All other methods are usually only called on the compositor
thread.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 01:30:02 +00:00
Markus Stange
85cbfc2652 Bug 1491442 - When gfx.core-animation.enabled is true, use CoreAnimation for all windows and create an empty layer. r=mattwoodrow
This makes mPixelHostingView layer-backed, and that layer will be empty.
This patch also causes all windows (including context menus, tooltips, arrow
panels etc.) to use CoreAnimation layers for the window frame. This is achieved
by calling setWantsLayer:YES on every window's content view.

After this changeset, all windows will still be empty.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 01:13:19 +00:00
Markus Stange
ca605e7b30 Bug 1491442 - Disable all non-CoreAnimation rendering paths when gfx.core-animation.enabled is set. r=mattwoodrow
This patch leaves you with empty windows everywhere. We will build the new
rendering paths from the ground up in the upcoming patches.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 01:12:18 +00:00
Markus Stange
31bde5f08e Bug 1491442 - If CoreAnimation is enabled, don't clip the TitlebarGradientView to rounded corners, and don't draw the title string on top of it. r=mattwoodrow
Unlike what the old comment in its drawRect method says, this isn't actually
dependent on the NSFullSizeContentViewWindowMask. Any window that uses
CoreAnimation layers for its window frame will apply these effects automatically.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 01:11:51 +00:00
Markus Stange
5b5486dc0c Bug 1491442 - Remove -[ChildView isUsingOpenGL] and use mUsingOMTCompositor instead. r=mattwoodrow
We always use OMTC when using OpenGL. We also currently always use OpenGL when using OMTC, but that's about to change.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 01:11:27 +00:00
Markus Stange
2e790720bb Bug 1491442 - Add some documentation to mPixelHostingView. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D38750

--HG--
extra : moz-landing-system : lando
2019-08-16 01:11:03 +00:00
Markus Stange
1800bceb3c Bug 1491442 - Fix comments that talk about BasicLayers but intend to say BasicCompositor. r=mattwoodrow
BasicLayers is main thread drawing. BasicCompositor is compositor-thread drawing.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 01:10:40 +00:00
Markus Stange
2935e2eca6 Bug 1491442 - Fix up and document mNeedsGLUpdate locking semantics, and remove a stray semicolon. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D38748

--HG--
extra : moz-landing-system : lando
2019-08-16 01:10:11 +00:00
Markus Stange
dac6adef26 Bug 1491442 - Fold DoWidgetCleanup and DetachWidget into Compositor::Destroy. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D40867

--HG--
extra : moz-landing-system : lando
2019-08-16 01:09:48 +00:00
Markus Stange
62430de27f Bug 1491442 - Add CompositorWidget::DoCompositorCleanup() to give the widget a chance to clean up any state from PreRender/PostRender on the correct thread. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D40514

--HG--
extra : moz-landing-system : lando
2019-08-16 01:09:26 +00:00
Markus Stange
327b689a51 Bug 1491442 - Make reftest readback read from the current render target. r=mattwoodrow
This removes the assumption that there is a default framebuffer to read from,
in order to prepare for a world in which all rendering goes into non-default
framebuffers.
The current render target's framebuffer is already bound when this function is
called.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 01:09:03 +00:00
Makoto Kato
3bf7ba667c Bug 1574077 - Add credui.dll to delayload DLL. r=dmajor
Bug 1498518 adds credui.dll to use OS's authenticate dialog for WebAuth support, but this isn't required at start up etc. So we should move this to delay load DLL list.

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

--HG--
extra : moz-landing-system : lando
2019-08-15 18:47:45 +00:00
Maliha Islam
29a67174de Bug 1568053 - Redesign contrast info in color picker (front-end), r=yzen,gl
Differential Revision: https://phabricator.services.mozilla.com/D40925

--HG--
extra : moz-landing-system : lando
2019-08-16 00:55:27 +00:00
Maliha Islam
0a8eb5c95e Bug 1568053 - Create node actor method for getting complex bg color data for text nodes and refactor existing contrast calculation methods, r=yzen,gl
Differential Revision: https://phabricator.services.mozilla.com/D40086

--HG--
extra : moz-landing-system : lando
2019-08-16 00:55:26 +00:00
Logan Smyth
6dc3f59caa Bug 1541631 - Part 8: Store breakable-line and breakpoint-position data in the source-actor store. r=jlast
Differential Revision: https://phabricator.services.mozilla.com/D42033

--HG--
extra : moz-landing-system : lando
2019-08-15 21:44:48 +00:00
Logan Smyth
f8d117facf Bug 1541631 - Part 7: Convert memoizeableAction to be AsyncValue-based for easy interop. r=jlast
Differential Revision: https://phabricator.services.mozilla.com/D42032

--HG--
extra : moz-landing-system : lando
2019-08-15 21:45:47 +00:00
Logan Smyth
bab62aad61 Bug 1541631 - Part 6: Remove unused action return values. r=jlast
Differential Revision: https://phabricator.services.mozilla.com/D42031

--HG--
extra : moz-landing-system : lando
2019-08-15 21:45:48 +00:00
Logan Smyth
463cc14e60 Bug 1541631 - Part 5: Remove exitEarly option from memoizableAction since it isn't needed. r=jlast
Differential Revision: https://phabricator.services.mozilla.com/D42030

--HG--
extra : moz-landing-system : lando
2019-08-15 21:45:50 +00:00
Logan Smyth
98281d7b19 Bug 1541631 - Part 4: Use resource utility for SourceWithContent caching. r=jlast
Differential Revision: https://phabricator.services.mozilla.com/D42029

--HG--
extra : moz-landing-system : lando
2019-08-15 21:45:52 +00:00
Logan Smyth
058e9d445b Bug 1541631 - Part 3: Merge 'content' onto the source itself and rely on query caching. r=jlast
Differential Revision: https://phabricator.services.mozilla.com/D42028

--HG--
extra : moz-landing-system : lando
2019-08-16 00:25:56 +00:00
Logan Smyth
0d284b2f54 Bug 1541631 - Part 2: Convert Source to be a generic minimal Source interface. r=jlast
Differential Revision: https://phabricator.services.mozilla.com/D42027

--HG--
extra : moz-landing-system : lando
2019-08-15 21:44:45 +00:00
Logan Smyth
ec00db2167 Bug 1541631 - Part 1: Rename mock threadFront file to better name since it isn't a Front. r=jlast
Differential Revision: https://phabricator.services.mozilla.com/D42025

--HG--
rename : devtools/client/debugger/src/actions/tests/helpers/threadFront.js => devtools/client/debugger/src/actions/tests/helpers/mockCommandClient.js
extra : moz-landing-system : lando
2019-08-15 21:44:47 +00:00
Nathan Froyd
f21661fdf8 Bug 1571759 - add nsTArray::EmplaceBack; r=erahm
Much preferred to `AppendElement(T(...))`.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 00:18:57 +00:00
Tim Nguyen
7234393e73 Bug 1572475 - Make the about:logins sidebar have a fixed width. r=MattN
Differential Revision: https://phabricator.services.mozilla.com/D42228

--HG--
extra : moz-landing-system : lando
2019-08-15 22:57:37 +00:00
Imanol Fernandez
efb7b0fed5 Bug 1574218 - Fix broken VRManagerChild::NotifyPresentationGenerationChanged event. r=kip
Fix broken VRManagerChild::NotifyPresentationGenerationChanged event.

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

--HG--
extra : moz-landing-system : lando
2019-08-15 23:18:41 +00:00
Nicholas Nethercote
b634df9005 Bug 1573720 - Convert dom.storage.default.quota to a static pref. r=mccr8
This one was VarCached to two different variables in two different modules.

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

--HG--
extra : moz-landing-system : lando
2019-08-15 05:31:38 +00:00
Nicholas Nethercote
048727ff15 Bug 1573720 - Convert canvas.image.cache.limit to a static pref. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D41919

--HG--
extra : moz-landing-system : lando
2019-08-15 05:31:24 +00:00
Nicholas Nethercote
e3f4932e1c Bug 1573720 - Convert dom.mapped_arraybuffer.enabled to a static pref. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D41918

--HG--
extra : moz-landing-system : lando
2019-08-15 05:31:10 +00:00
Nicholas Nethercote
735faa5294 Bug 1573720 - Convert intl.charset.fallback.tld to a static pref. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D41917

--HG--
extra : moz-landing-system : lando
2019-08-15 05:30:56 +00:00
Nicholas Nethercote
14e8c9129a Bug 1573720 - Convert layers.force-active to a static pref. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D41916

--HG--
extra : moz-landing-system : lando
2019-08-15 05:30:37 +00:00
Markus Stange
54166343c6 Bug 1573668 - Add MacIOSurface::GetAsDrawTargetLocked. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D41844

--HG--
extra : moz-landing-system : lando
2019-08-15 04:54:57 +00:00
Markus Stange
352f3971ce Bug 1573668 - Teach MacIOSurface about the kCVPixelFormatType_32BGRA pixel format. r=mattwoodrow
Depends on D41843

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

--HG--
extra : moz-landing-system : lando
2019-08-15 03:33:58 +00:00
Markus Stange
0d99ec9a50 Bug 1573668 - Use CFTypeRefPtr for managing the IOSurfaceRef in MacIOSurface. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D41843

--HG--
extra : moz-landing-system : lando
2019-08-14 14:53:45 +00:00
Markus Stange
c31b8d8a28 Bug 1573668 - Use the real IOSurfaceRef type in MacIOSurface. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D41841

--HG--
extra : moz-landing-system : lando
2019-08-14 14:50:25 +00:00
Oana Pop Rus
cc55a912e9 Backed out changeset 6d823f106e69 (bug 1533057) for Android mochitest failure in AndroidAlerts.cpp on a CLOSED TREE 2019-08-16 02:28:42 +03:00
Micah Tigley
6de8405695 Bug 1573837 - Add utm_* params to the "View full report on Firefox Monitor" link. r=johannh
Differential Revision: https://phabricator.services.mozilla.com/D42144

--HG--
extra : moz-landing-system : lando
2019-08-15 22:57:09 +00:00
Markus Stange
cd5788b20f Bug 1545262 - Update BasicCompositor's mFullWindowRenderTarget before we capture the screenshot for the current frame. r=mattwoodrow
In the past, mFullWindowRenderTarget was updated in EndFrame, so the captured
screenshots (which were captured before EndFrame) were always one frame behind.
This affected both profiler screenshots and window recording screenshots.

This also fixes a bug with the destination offset in the call to
mFullWindowRenderTarget->mDrawTarget->CopySurface(): In the case where mTarget
was non-null, those calls would use mTargetBounds.TopLeft() as the destination
offset, which is very much unrelated to anything in mFullWindowRenderTarget.
Now the destination offset for mFullWindowRenderTarget is always zero -
mFullWindowRenderTarget->mDrawTarget's device space is the same as window space.

This patch also moves the creation of mFullWindowRenderTarget down to where we
have mRenderTarget->mDrawTarget, so that we can create a DrawTarget of a type
that can efficiently copy from mRenderTarget->mDrawTarget. I think this is
important on Windows where mRenderTarget->mDrawTarget will be the Cairo/pixman
re-wrapped DrawTarget and mDrawTarget is some kind of Windows/GDI DrawTarget.

Depends on D41612

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

--HG--
extra : moz-landing-system : lando
2019-08-14 06:34:24 +00:00
Markus Stange
ff3fb7eef1 Bug 1545262 - Stop clearing mFullWindowRenderTarget. r=mattwoodrow
These areas only need to be cleared in rt->mDrawTarget. Once the invalid area gets
copied over to mFullWindowRenderTarget, any cleared pixels will be copied over and
clear those pixels in mFullWindowRenderTarget.
This clear wasn't only necessary, it also sometimes cleared to much, because the
clip to the invalid region that the caller sets does not apply to this DrawTarget.

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

--HG--
extra : moz-landing-system : lando
2019-08-14 01:18:07 +00:00
Emilio Cobos Álvarez
d8298290d7 Bug 1574101 - Use the right parent frame for block ruby if it's out of flow. r=mats
I should've caught this when reviewing, in fairness.

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

--HG--
extra : moz-landing-system : lando
2019-08-15 22:21:35 +00:00