Commit Graph

608362 Commits

Author SHA1 Message Date
Ryan Hunt
8091824d19 Bug 1478815 part 10 - Don't submit PaintTask's if the DrawTargetCapture is empty. r=bas
This commit exposes a method on DrawTargetCapture to see if it has
captured any drawing commands. This allows us to not dispatch
paint tasks if they will do nothing.

Ideally these tasks would execute instantly on the PaintThread, and
we would never delay sending the layer transaction or block on the
next paint, but with thread starvation and context switches it's
best to just not send them.

MozReview-Commit-ID: 7ywkEDBw6EX

--HG--
extra : rebase_source : c60c1c25d551e4a7c14c529137f8e0babc888466
extra : source : 7ae4c893867a5f7df81e0757d4b4a6a21cbc6986
2018-07-31 17:47:51 -05:00
Ryan Hunt
16e8c5d426 Bug 1478815 part 9 - Add ability to create a DrawTargetCapture that can flush to its destination draw target. r=bas
This commit adds the ability to create a different kind of DrawTargetCapture which
has a limit on the size of which its CaptureCommandList can grow before it is
synchronously flushed to its destination DrawTarget.

Special care is taken to not do a sync flush until we would need to resize
the backing store of the CaptureCommandList. This allows us to not waste
memory we've already allocated.

The async painting content clients are updated to use it, and get a default
value from a new preference.

MozReview-Commit-ID: CJL7ffvaRzR

--HG--
extra : rebase_source : f646862dcef7a480b21dfb7ddb1fa165338ba506
extra : source : b865a866fe5a3257615cb54b7e5e790cc9331988
2018-07-26 16:33:07 -05:00
Ryan Hunt
2dd7814423 Bug 1478815 part 8 - Remove buffer operations for ContentClient. r=nical
This commit moves ContentClient from creating a CapturedBufferState for
buffer operations, to performing all of those operations on the
DrawTarget(Capture). Creating a DrawTargetCapture is now performed
by the RotatedBuffer when we BeginPaint, all operations are performed
on this capture, and then it's returned to the ClientPaintedLayer
as a PaintTask.

This commit is an involved refactoring of ContentClient and RotatedBuffer
to get this all to work. Here are the major parts:

1. RotatedBuffer is refactored to always perform operations on a single
   DrawTarget, which may be a single DT, dual DT, or capture.
2. RotatedBuffer adds BeginCapture and EndCapture methods to switch
   which DT is used in operations
3. ContentClient uses the RB capture methods when we are async painting
4. CC::BeginPaint is refactored to only perform capturing on a single
   RotatedBuffer. This is because we can't have the output of one
   PaintTask be the input of a different PaintTask due to the design
   of the Snapshot API.
      a. This can occur, today, by doing a FinalizeFrame only to later
         fail to Unrotate the buffer, causing a new RB to be created
         and painted into
      b. The previous PaintThread code worked because it used the
         buffer operations which didn't use Snapshot's
      c. This is fixed by not doing FinalizeFrame on a buffer if we
         realize we cannot unrotate it, and switching to initializing
         a buffer using the front buffer which should be up to date.
      d. I don't like touching this code, but it passes reftests,
         might be a performance improvement, and I've tested it on
         known regressions from the last time I messed up this code.
5. CC::PrepareForPaint is inlined into BeginPaint because dual draw
   targets can be cleared correctly from a previous commit
6. The code paths in ClientPaintedLayer are unified because we no
   longer need to special case this beyond setting the correct
   ContentClient flag.
7. CapturedPaintState and CapturedBufferState are removed in favor
   of PaintTask. Additionally EndLayer is no longer needed as all
   quadrants of a rotated buffer are in the same capture, so we
   don't need special case flushing code.

MozReview-Commit-ID: 9UI40dwran

--HG--
extra : rebase_source : 809d9816970648468de972c30b0c230c2f21e27b
extra : source : 405ad351821813333c0e989b93e2aeb49ba8552c
2018-07-26 11:23:26 -05:00
Ryan Hunt
a71d0035ad Bug 1478815 part 7 - Add a buffer unrotate operation to DrawTarget. r=bas
This commit adds a buffer unrotate operation to DrawTarget. It's
initially implemented with LockBits in DrawTarget. DrawTargetDual
overrides the implementation to pass on the operation to it's
DrawTargets.

No override is given for DrawTargetCapture as we intentionally
avoid this code path when async painting as it can fail.

This is needed so that RotatedBuffer can expose a single DrawTarget,
which can be a DrawTarget (for normal alpha), DrawTargetDual (for
component alpha), or DrawTargetCapture (when async painting).

MozReview-Commit-ID: csjjZ733hl

--HG--
rename : gfx/layers/BufferUnrotate.cpp => gfx/2d/BufferUnrotate.cpp
rename : gfx/layers/BufferUnrotate.h => gfx/2d/BufferUnrotate.h
extra : rebase_source : 5d96e2a5d36a01f2f9992adb37830e56436c7c35
extra : source : 64cb50b227e0ae604653f03ce2e892493126392e
2018-08-01 12:50:32 -05:00
Ryan Hunt
e3b25e9b10 Bug 1478815 part 6 - Add ability to create a SourceSurfaceDual directly. r=bas
This commit adds the ability to create a SourceSurfaceDual directly,
instead of only from a DrawTargetDual. This allows SourceRotatedBuffer
to expose itself as a single SourceSurface for a later commit.

MozReview-Commit-ID: K21K42cGDy1

--HG--
extra : rebase_source : d3fe48ac711f9cd28799bfd8d36b74750cb15554
extra : source : 392a724d5acd25854e871fa47335c4b938fe9ae1
2018-08-01 12:49:19 -05:00
Ryan Hunt
ce8baf18ae Bug 1478815 part 5 - Rename CapturedTiledPaintState to PaintTask. r=nical
This commit renames CapturedTiledPaintState to PaintTask as in a future
commit I will fold CapturedPaintState into it.

MozReview-Commit-ID: 8py7SrK4s29

--HG--
extra : rebase_source : 7abdf127351cdc82ee4c40112dce7150bdb67243
extra : source : 01110727f2e9e0846fc06997653e04860efb23dc
2018-07-24 15:39:35 -05:00
Ryan Hunt
7e8f465799 Bug 1478815 part 4 - Remove buffer operations for TiledContentClient. r=nical
This commit refactors TiledContentClient to not create PaintThread
buffer operations, but to instead perform all of these operations
on the DrawTarget(Capture). This simplifies the code dramatically
and allows us to add flushing behavior to DrawTargetCapture in a
future commit.

With this change, CapturedTiledPaintState is simply a container
for a DrawTarget, DrawTargetCapture, and keep-alive TextureClients.

Part of this commit is moving the logic of locking the texture
clients, constructing a dual draw target, and constructing a capture
into TiledContentClient so it can be shared.

MozReview-Commit-ID: 2rwz9aDI737

--HG--
extra : rebase_source : 4ac317f632c0a2c21480bc88e6246f4dc0daf0be
extra : source : 56d967e03ee225e032034ffd193b6f42b343226b
2018-07-24 14:29:44 -05:00
Ryan Hunt
b3f614693b Bug 1478815 part 3 - Add a DualTextureClientLock for texture clients used for component alpha. r=nical
This commit adds a RAII class for the common operation of attempting
to lock one or two TextureClients and then maybe constructing a
DrawTargetDual from them.

MozReview-Commit-ID: ECQkDSgpyuL

--HG--
extra : rebase_source : 6debecb9d4ca33895daa78de3a52a1ed575706e1
extra : source : 082638a5c6432e0ca6ce377986d84ed130b32ad3
2018-08-01 12:46:35 -05:00
Ryan Hunt
9c419c4c91 Bug 1478815 part 2 - Make DrawTargetDual aware of component alpha clearing. r=bas
This commit changes the behavior of DrawTargetDual::Clear to be aware that
it has on-white and on-black buffers, and perform clearing appropriately.

This is slightly against what the DrawTarget documentation says the method
should do, but it allows us to move another paint thread operation into
DrawTargetCapture and simplify our ContentClient implementations.

I haven't seen any obvious breakage with this, and reftests are green.

An alternative would be to add a separate Clear method with documented
difference here.

MozReview-Commit-ID: 65CzcxlRqv7

--HG--
extra : rebase_source : 299adbb02e79f66f7d6860c5fe86784bad8332f8
extra : source : 3dc47f17fa446bb7f2b5876753f8271a93c0e0c8
2018-08-01 12:45:35 -05:00
Ryan Hunt
53537230f9 Bug 1478815 part 1 - Add a PadEdges operation to DrawTarget. r=bas
This commit adds an operation to perform 'edge padding' on a draw
target. By default this is performed using LockBits, but it's
overriden in DrawTargetTiled and DrawTargetCapture to propagate
the call so it functions correctly.

This helps TiledContentClient move from applying this operation
on a per texture client basis, to being able to do it on the
DrawTargetTiled after painting. This in turn helps move all
paint thread operations into DrawTargetCapture.

MozReview-Commit-ID: 2ncOTxGXQfk

--HG--
rename : gfx/layers/BufferEdgePad.cpp => gfx/2d/BufferEdgePad.cpp
rename : gfx/layers/BufferEdgePad.h => gfx/2d/BufferEdgePad.h
extra : rebase_source : a3315644fe31f2a432935dcbfdb9969c58b691e1
extra : source : 699c954992f87db7fc792f5562090de42a8162cb
2018-08-01 12:44:33 -05:00
Jonathan Kingston
9271849643 Bug 1362034 - Fixup for tests for addTab() to provide the correct triggering principal.
--HG--
extra : source : 372eb24ceb9e7c597b0e91e0d27a8c8ba732fe3b
2018-08-09 22:05:51 +01:00
arthur.iakab
959d3394ad Backed out changeset 435661644b2d (bug 1481401) For Eslint failure on PanelMultiView.jsm CLOSED TREE 2018-08-10 00:02:02 +03:00
arthur.iakab
dfb7a82313 Backed out changeset d3978309484a (bug 1480920) For Android build bustages CLOSED TREE 2018-08-09 23:59:05 +03:00
Mike Hommey
6d4eb0a92e Bug 1464170 - Support PGO in clang builds on Linux. r=dmajor
This uses the same code path as for clang-cl builds.
2018-08-10 05:54:11 +09:00
Mike Hommey
601f45564e Bug 1481989 - Copy 32-bits libraries from gcc to clang. r=froydnj
We already copy the 64-bits libraries, but don't copy the 32-bits
libraries, which prevents building for linux32 by default.

Incidentally, this also makes the clang build system build the 32-bits
compiler-rt libraries, allowing e.g. 32-bits PGO.
2018-08-10 05:54:07 +09:00
Mike Hommey
a228cc9fbd Bug 1481989 - Don't try to enable libstdc++ compat on Android. r=froydnj
We only enable libstdc++ compat on Android for the host parts, and
in practice, the target part has it not enabled at the moment because
libstdc++ can't be found. But making the clang toolchain capable of
building for x86 changes the deal for Android x86.
2018-08-10 05:53:59 +09:00
Geoff Lankow
40cc59e600 Bug 1481941 - Resync selected preference pane after calendar pane added r=Fallen 2018-08-09 12:48:07 +12:00
Sahil Bhosale
d9e5093116 Bug 1481401 - "PanelMultiView.jsm: replace _dwu getter with _getBoundsWithoutFlushing method" [r=dao+bmo] 2018-08-09 11:48:00 +03:00
Thi Huynh
1185869d23 Bug 1479354 - Null-check this.listener when reporting cached geolocation values r=jdm
--HG--
extra : rebase_source : 9fe49c7520b4ccc24f4ef833a84662fbafa68d70
2018-07-31 20:23:24 +07:00
Jason Laster
cfe235196f Bug 1481628 - Update Debugger Frontend v80. r=dwalsh 2018-08-09 16:13:23 -04:00
James Willcox
d91e5fd1af Bug 1480920 - Bump versions for Android test runner packages r=jchen
MozReview-Commit-ID: GlC0qJCVl4V
2018-08-09 15:05:30 -05:00
arthur.iakab
93c1ebb123 Backed out changeset 1ac3e522f55f (bug 1465491)For failing on browser_dbg_rr_replay-02.js 2018-08-09 22:13:50 +03:00
Himanshu Teli
aaafbca72c Bug 1462537. Add WebIDL parser tests for the concept of JSON type. r=bzbarsky 2018-08-09 18:41:55 +05:30
Ehsan Akhgari
7d314b5011 Bug 1482129 - Exempt stylesheets, fonts and images when canceling loading of slow HTTP requests of tracking resources; r=valentin 2018-08-09 14:03:10 -04:00
Randall Barker
e76d5d449a Bug 1477837 - Fix typo in comment documentation for function GeckoRuntimeSettings.getDisplayDensityOverride r=jchen
MozReview-Commit-ID: FqdSLvNJVao
2018-08-09 10:47:20 -07:00
Olli Pettay
bbb7acc3c6 Bug 1476301, try to ensure sequential focusing can leave shadow trees, r=mrbkap
--HG--
extra : rebase_source : 59816c1db5fa5a3ff71e0cbeeca6bb99f4a4fed6
2018-08-09 20:02:43 +03:00
Jon Coppeard
cfb6e5c306 Bug 1482135 - Always root Scope::Data pointers when creating scopes r=jandem 2018-08-09 18:19:47 +01:00
Dão Gottwald
01959e09c2 Bug 1482078 - Port browser_bookmark_popup.js fix from beta to central. r=standard8
browser_bookmark_popup.js failed when the panel is big enough to overlay the center of the browser window.
2018-08-09 12:49:36 +02:00
Kershaw Chang
9430627a9f Bug 1478950 - Add a max limit to FTP list line, r=valentin
Summary: As suggested by pdknsk, add 32k limit to list line.

Reviewers: valentin

Tags: #secure-revision

Bug #: 1478950

Differential Revision: https://phabricator.services.mozilla.com/D2995
2018-08-09 20:12:54 +03:00
Matthew Gaudet
bbe9f6cb48 Bug 1482133 - [Part 3] Stop using shared stubs machinery r=jandem
--HG--
extra : rebase_source : fe94f04c7a46378cf65aefc43f81a8531371fec4
2018-08-09 10:38:43 -04:00
Matthew Gaudet
1db44eaa6c Bug 1482133 - [Part 2] Relocate NewArrayFallback to Baseline r=jandem
--HG--
extra : rebase_source : 3c1d173a9ed150c51bfdcc8fee03aa225cbfccc2
2018-08-08 17:00:33 -04:00
Matthew Gaudet
30e0d94a23 Bug 1482133 - [Part 1] Disable NewArray Ion Shared Stub r=jandem
--HG--
extra : rebase_source : 60afdef52bf63bbf514372592dd401c5702e178a
2018-08-08 15:58:16 -04:00
Jan Beich
5677cde33a Bug 1473732 - Base default number of OMTP workers on the number of logical CPU cores. r=rhunt
system-info is a stub on Tier3 platforms while physical vs. logical
difference only matters for hyper-threading. As hyper-threading
is usually available on CPUs with more than 2 physical cores this
change has no impact there as the default is clamped to [1, 4].
However, on Intel i3-* CPUs with 2 physical and 4 logical cores this
bumps the default from 1 to 3.

MozReview-Commit-ID: 1Yh8rJL2JcN

--HG--
extra : rebase_source : 5c563ec8e388a3fd05a0650e8d4c330d48675332
2018-06-30 22:41:59 +00:00
Valentin Gosu
45e6d5718f Bug 1478732 - Backed out changeset 9de74f5039a4 r=backout 2018-08-09 18:56:02 +02:00
Dan Minor
fdd6584333 Bug 1433158 - Disable avx512 in libvpx; r=jya
Summary:
This disables building avx512 due to difficulty in getting a working set of
compiler flags across our supported platforms. Rather than carrying this patch
forward, we should revisit supporting avx512 when we do the next update.

Reviewers: jya

Tags: #secure-revision

Bug #: 1433158

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

--HG--
extra : rebase_source : 0b828be5559a985a8ec5f12d6712b970545d0d83
2018-08-07 11:29:17 -04:00
Dan Minor
8f8bdf9e76 Bug 1433158 - Update libvpx to 1.7.0; r=jya
Reviewers: jya

Tags: #secure-revision

Bug #: 1433158

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

--HG--
extra : rebase_source : b0637fc24a3159b7b5d9ac017240be80dc07ce37
2018-08-07 14:21:57 -04:00
Dan Minor
2fa2ea17f5 Bug 1433158 - Remove vp9_svc.patch; r=jya
Summary:
This patch is already applied to the webrtc.org code and doing a libvpx update
does not remove it, so having this present leads to merge conflicts during the
update as it attempts to patch already patched code.

Reviewers: jya

Tags: #secure-revision

Bug #: 1433158

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

--HG--
extra : rebase_source : e641e8645467565f329c72f0869fe18aa2def846
2018-08-07 09:12:41 -04:00
Jonathan Kingston
9b7fb2f20c Bug 1362034 - Have addTab() provide the correct triggering principal. r=ckerschb r=Gijs
Reviewers: ckerschb!, Gijs!

Tags: #secure-revision

Bug #: 1362034

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

--HG--
extra : source : 44b25dea67d2ed079e17057ab619d827e9983400
extra : amend_source : 5742820277e0269b6f5d42b1abd98fd9b228ac4a
extra : histedit_source : 790bd2490333e4d8fea7774d036eafbc2fc329b9
2018-07-06 15:14:54 +01:00
Jonathan Kingston
2f0987a202 Bug 1362034 - Tests for addTab() to provide the correct triggering principal. r=ckerschb r?=gijs
Summary: Depends on D2046

Reviewers: ckerschb!, Gijs!

Tags: #secure-revision

Bug #: 1362034

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

--HG--
extra : source : 33884d05cc94463950b31fab1fd2f37ada9becef
extra : intermediate-source : 72471adb75d5ec3dc2b0c8f972a6f1f26bfd3ae2
extra : histedit_source : f384cbab58401575afc3443c9a431b73cff806d4
2018-07-06 21:16:29 +01:00
Ryan VanderMeulen
9465d7599f Bug 1480354 - Add the new crashtest manifest to the master one. r=me
--HG--
extra : rebase_source : 8e6c3a750082c92fd245a67869ebf4bb920f364c
2018-08-09 10:45:14 -04:00
Tom Prince
e9d075acfd Bug 1477706: [test-verify] Move logic for finding locally changed files to a helper; r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D2731

--HG--
extra : rebase_source : 632a399edce81486b3605c25a75544295f726af7
extra : histedit_source : f4567a4888a96793d0ed33f6b48811eded643d85
2018-08-03 10:07:04 -06:00
Tom Prince
1189686e3d Bug 1477706: [test-verify] When asked to generate a taskgraph quickly, guess the number of chunks; r=ahal
When iterating on taskgraph changes, the exact number of chunks that
test-verify runs usually isn't important, so skip it when going fast.

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

--HG--
extra : rebase_source : 4d46eee982e9868050f1201aba74b020045d9ec1
extra : histedit_source : 744948fa80ae8e3b18212e840843906577fd38ec
2018-08-03 10:34:56 -06:00
Tom Prince
1206a0cc12 Bug 1477706: [test-verify] Only look at locally changed files on try and in try-select; r=ahal
The taskgraph code for test-verify currently looks at locally changed files to
determine how many chunks should be run. This code exists so that
`mach try fuzzy` show the same chunks that would be run on a try push.

This changes it, so that local commts are only considered on try and when
called from try-select. This makes generating the taskgraph locally faster,
when not using `mach try`. It also makes test-verfiy not consider too many
files, if the try push happens to contain commits that have landed but havent
been pushed to try yet (i.e. the first push to try after a merge, or beta try
pushes).

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

--HG--
extra : rebase_source : 68b1ea583730ff3086949aa6c7b6a1046b406d23
extra : histedit_source : 68bbc7ca2062c7f425353e6caf6b8959786dc42d
2018-08-03 10:26:17 -06:00
Tom Prince
acd19bf66a Bug 1477706: [try-select] Let taskgraph know that it is being called from try-select; r=ahal
Currently, `mach try fuzzy` generates a taskgraph that is configured exactly
like the most recent push to mozilla-central. This isn't always desirabe, so
pass some configuration down, to allow the taskgraph to behave differently.

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

--HG--
extra : rebase_source : 99d6958b33211697227e65df17edc1eb337f63a4
extra : histedit_source : 69b5ff6805bc8409340eb71323a1f6fc637259d7
2018-08-03 10:25:42 -06:00
Brian Hackett
4a28a4af92 Bug 1465491 Part 1 - Web Replay tests. 2018-08-09 15:39:35 +00:00
Aaron Klotz
06d15feb59 Bug 1481956: Allow SIMPLE_PROGRAMS to embed manifest from source directory; r=froydnj
--HG--
extra : amend_source : ecd475bd4abfe5318f715c140c7ced0d8b56229a
2018-08-08 16:16:35 -06:00
Justin Wood
9d6baea4f5 Bug 1463749 - Langpack Checksums r=mtabara
Differential Revision: https://phabricator.services.mozilla.com/D2446

--HG--
extra : rebase_source : cea1217e92466617f43df998d14c9dfefa6ab436
2018-07-26 15:16:45 -04:00
Justin Wood
04889ad4f9 Bug 1463749 - Support checksum .beet files having duplicate content, as long as sha's match. r=mtabara
Differential Revision: https://phabricator.services.mozilla.com/D2756

--HG--
extra : rebase_source : dfc6f34054afea3bc19355f2fba0fba2eaf2c9eb
2018-08-04 21:10:51 -04:00
Ryan VanderMeulen
783ccf6975 Bug 1476334 - Update HarfBuzz to version 1.8.7. r=jfkthame
--HG--
extra : rebase_source : 48d8469644e5fbb52757f3dcf3e9c3bd4c212142
2018-08-09 09:07:27 -04:00
Eugen Sawin
a9fe7d83f0 Bug 1480813 - [1.0] Use non-animated setProgress method to avoid API level 24 dependency. r=snorp 2018-08-09 16:28:14 +02:00