Commit Graph

442970 Commits

Author SHA1 Message Date
Nick Fitzgerald
1b51392ac1 Bug 1209779 - Ensure that all null elements are written when streaming profiler JSON; r=shu 2015-09-30 15:38:00 +02:00
Tom Klein
e94a3e4be4 Bug 1209525 - Protect GetGeometryBounds from a singular non-scaling-stroke transform. r=longsonr 2015-09-30 08:05:00 +02:00
Gerald Squelart
3c9a325b39 Bug 1207909 - p2: Fixed a warning (uninitialized 'err') and typo - r=jya 2015-09-30 07:37:00 +02:00
Gerald Squelart
1866c4d412 Bug 1207909 - p1: Fixed ALOGV statement - r=jya 2015-09-30 07:36:00 +02:00
Nils Ohlmeier [:drno]
cdfa84b6c4 Bug 1207451 - removed framing from multi_tcp API. r=bwc
--HG--
extra : transplant_source : %F9%C6%02H%9B%97%C0%2C%AC%07%F4%F6%99%25%09%0D%B6%11b%A1
2015-09-19 12:12:15 -07:00
Miko Mynttinen
132b6bcf2e Bug 1206720 - Remove invalid assertions during response image loading. r=jdm 2015-09-30 16:22:49 +03:00
Andrew Comminos
ca64242190 Bug 1206516 - Use temporary widget to construct style context for GtkInfoBar. r=karlt 2015-09-29 19:32:00 +02:00
Jakob Olesen
36080777ce Bug 1205621 - arm64: Handle OOMs in a safer manner. r=lth
When inserting instructions that encode a pc-relative offset, don't use
a method that depends on getting a pointer to the newly inserted method.

Use the new nextinstrOffset() method when computing the encoding of the
pc-relative offset, and only insert each instruction once.

Propagate OOM from calls to buffer.allocEntry, folowing the approach in
the ARM assembler.
2015-09-24 10:21:00 +02:00
Sean Lin
ca5474513a Bug 1204709 - Disable some presentation mochitests on certain platforms to avoid intermittent issues. r=kwierso 2015-10-01 11:42:27 +08:00
Miko Mynttinen
155f3d3bc5 Bug 1187011 - Don't allow response body with null body status. r=bkelly 2015-09-30 21:50:10 +03:00
sajitk
43d9468d87 Bug 1180940 - Changed return type of AudioDestinationNode::CreateAudioChannelAgent method to return errors, if any methods that it calls fail. Added code to handle the return value in AudioContext::Init(), and its callers. r=baku 2015-09-30 17:51:00 +02:00
Chris Peterson
0c816bee5c Bug 1208357 - Fix -Wshadow warnings in mfbt/decimal. r=Ms2ger sr=Waldo 2015-09-22 20:43:29 -07:00
Catalin Badea
12590da787 Bug 1188545 - Fixup for test_serviceworker_lifetime.html a=testonly 2015-10-01 01:42:18 -04:00
Gregory Szorc
d772ee1cfe Bug 1208320 - Decrease compression level of test zip archives; r=glandium
Compressing C++ unit tests is a long pole when writing test archives.
Experimenting with various levels of compression revealed that
compression level 9 was providing minimal space savings for
significantly longer archiving times and greater CPU usage.

Results of our experimentation of `make -sj8 package-tests` on OS X
with various levels of compression are below. Note: these numbers were
accidentally obtained without JS tests being archived. This skews the
results a little but doesn't impact the analysis below.

ARCHIVE        SIZE       WALL   CPU

(L=9)
cppunittest  76,806,629  30.6s
mochitest    61,276,928   9.4s
reftest      31,204,396  11.0s
ALL         228,146,761  31.2s  75.9s

(L=8)
cppunittest  76,851,593  24.1s
mochitest    61,279,322   8.9s
reftest      31,207,867  10.4s
ALL         228,228,096  24.9s  64.7s

(L=7)
cppunittest  77,102,292  14.3s
mochitest    61,305,147   8.2s
reftest      31,260,359   9.4s
ALL         228,717,803  15.0s  49.1s

(L=6)
cppunittest  77,321,408  11.5s
mochitest    61,336,539   8.2s
reftest      31,303,604   9.2s
ALL         229,123,307  12.2s  44.7s

(L=5)
cppunittest  78,226,404   8.2s
mochitest    61,483,804   7.6s
reftest      31,509,349   8.8s
ALL         230,725,600   9.6s  39.7s

(L=4)
cppunittest  79,733,669   6.3s
mochitest    61,825,519   7.6s
reftest      31,924,171   8.4s
ALL         233,669,991   9.0s  36.4s

(L=3)
cppunittest  82,380,731   5.8s
mochitest    62,554,431   7.1s
reftest      32,696,415   8.1s
ALL         239,180,168   8.9s  34.6s

Levels lower than 3 resulted in larger archives with no decreae in
wall time and marginal decrease in CPU time.

As we can see, lowering the compression level reduces archiving time by
>3x while only increasing total archive size by ~2.5 MB or ~1% for
compression level 5.

Total time hits a plateau around levels 4 and 5. After that, file size
increases faster for little decrease in wall time. I suspect that we're
hitting Python limits from having to process thousands of files: there's
only so fast Python can do I/O and make function calls.

I think choosing 4 or 5 for the new compression level are acceptable.
I went with 5 because the wall time savings from 5 to 4 are marginal and
the archive size does start to increase a bit faster at 4. That being
said, 4 does consume 10% less CPU. I could easily just 4 as well. 5 is
more conservative. We can always change to 4 after seeing results in the
wild.

The end result of this change is `make package-tests` is much faster:

Before:  228,146,761 bytes;  31.2s wall;  75.9s CPU
After:   230,725,600 bytes;  11.4s wall;  45.0s CPU
Delta:    +2,578,839 bytes; -19.8s wall; -30.9s CPU

When you take the whole series into consideration:

Before:  44.2s wall; 84.6s CPU
After:   11.4s wall; 45.0s CPU

Lowering CPU is impressive considering we switched from the C `zip`
implementation to Python!

Keep in mind we were at ~78s wall before e87b74b3db43 introduced
concurrent archive generation!

And we still haven't eliminated the staging of JS tests, which are
several thousand files and a few dozen MB!

--HG--
extra : commitid : D1fD4NUTw2F
extra : rebase_source : c6de72656cfedc98c0cf1c09eefe1dfb84f3639b
2015-09-30 11:33:04 -07:00
Gregory Szorc
0a670f5daa Bug 1208320 - Support configuring zlib compression level; r=glandium
An upcoming commit will introduce a caller that doesn't want the maximum
compression level. This commit introduces arguments to control the
compression level inside written archives.

--HG--
extra : commitid : KkDso3hB2QG
extra : rebase_source : 8fd05aeae5c3555e1169eac6656d584007cd0739
2015-09-30 11:31:00 -07:00
Gregory Szorc
479e915b47 Bug 1208320 - Print message when done with archiving; r=glandium
Metrics are nice. Adding this output clearly demonstrates that C++ unit
tests are the long pole by far: they take ~95% of wall execution time
to archive (~30s total). The next longest archive only takes ~11s to
produce. This will be important if we ever want to reduce archive time
further on optimal hardware.

FWIW, disabling compression will produce a C++ unit test archive in
1.0s. Archives with more files take longer, despite the significantly
smaller sizes.

--HG--
extra : commitid : 6E56aUoZUL2
extra : rebase_source : 48cad51d7fbae883861f35e1b5cb96799b452bfb
2015-09-30 11:29:22 -07:00
Gregory Szorc
1037624226 Bug 1208320 - Do not stage some C++ unit test support files before archiving; r=glandium
Won't impact performance much. But fewer make foo makes porting the C++
unit tests (which are the largest remaining tests) to the Python
archiver easier to grok.

This conversion did change behavior slightly. Previously, startup
cache files weren't being packaged if startup cache was disabled. Now,
we always package them since their presence in the test archive should
be harmless. The original change to guard their inclusion in
ee82e0ae5488 was probably unnecessary.

--HG--
extra : commitid : AzU65j0E1q0
extra : rebase_source : 9b8a15dc1a5f3c3d3e453cefb3a99b05f5a77711
2015-09-30 17:41:46 -07:00
Gregory Szorc
a88dbb7290 Bug 1208320 - Do not stage mozbase files before archiving; r=glandium
This prevents copying of 447 files adding to ~4 MB.

--HG--
extra : commitid : 7zTbiQeMQSQ
extra : rebase_source : b3ac223835ba7289ace45aa7d02c5a050d54cc0d
2015-09-30 11:15:51 -07:00
Gregory Szorc
fd090d4a75 Bug 1208320 - Do not stage JS test modules before archiving; r=glandium
Saves 400 KB over 40 files on my machine.

--HG--
extra : commitid : E2U6mnB4tOw
extra : rebase_source : ffc2663a03d7e3287a36c347ac5a747237e86025
2015-09-30 11:04:58 -07:00
Gregory Szorc
611659f236 Bug 1208320 - Do not stage TPS files before archiving; r=glandium
This saves copying of ~100 files comprising ~1 MB. Not significant. But
it gets us a little closer to no staging.

--HG--
extra : commitid : 6Hjnhv4Yi5R
extra : rebase_source : 291c89682a23cde957b3c68f2efe3b6dc3d3d543
2015-09-30 11:03:32 -07:00
Gregory Szorc
022105cc96 Bug 1208320 - Do not stage reftest test files before archiving; r=glandium
This is slightly more involved than earlier changes because reftests
have a one-off mechanism for finding files. Essentially, the master
reftest manifest is loaded, directories are discovered, and every file
in those directories is packaged.

We add support to our test archive generation tool to read sources from
reftest manifests and tell it where the reftest manifests are.
print-manifest-dirs.py was only being used for staging reftest files.
Since we don't do that any more, the functionality doesn't need to exist
in a standalone file, so it has been moved inline into test_archive.py.

This change avoids copying ~26,000 tests consuming 131 MB during test
packaging. This is a majority of the file count that was remaining in
the stage directory at this point. On my machine (which hasn't typically
seen major wall time wins from not staging files due to its fast SSD),
this change made test packaging ~20% faster, reducing wall time from
~50s to ~40s!

A Try push seemed to indicate drastic results with the series up to this
point. Including the already landed changes to generate test archives
concurrently, test packaging times on OS X builders dropped from ~18:40
to 6:29! Times on Linux x64 remained about the same (~2:46). This is
possibly due to these machines already having SSDs and due to normal
variance in performance of builders and EC2 instances.

--HG--
extra : commitid : 34E8V8lSGg7
extra : rebase_source : 720afcd35f6a2b6cb1217df23ae981408a88cb94
2015-09-30 17:39:33 -07:00
Gregory Szorc
d460d0b2dc Bug 1208320 - Do not stage some reftest support files before archiving; r=glandium
After this, only reftest files themselves are staged. Those will be
addressed in a subsequent commit.

--HG--
extra : commitid : 9jWl9Twcizr
extra : rebase_source : 3e4a319d60b7ee7eddecc597eb250184140b1e71
2015-09-30 10:46:52 -07:00
Gregory Szorc
4c71c72f21 Bug 1208320 - Do not stage JIT test files before archiving; r=glandium
This avoids copying 5000+ files consuming ~37 MB on my build
configuration.

--HG--
extra : commitid : 6DmsjUYgjXq
extra : rebase_source : 123dd42a7d0b9cc244a3ab7773010dfc5769a4ac
2015-09-30 10:03:25 -07:00
Gregory Szorc
94d0bd111f Bug 1208320 - Produce cppunittest and reftest packages via Python; r=glandium
With this change, all test ZIP archives are now generated via Python and
mozpack.

This change does not change I/O or file copy behavior at all. There is
still a lot of room for eliminating extra file copies.

--HG--
extra : commitid : 9mWdtDK6wAb
extra : rebase_source : 0f19c627d64d22bf9d65161d4f7df7c9778dea3c
2015-09-30 09:58:31 -07:00
Gregory Szorc
fe96a68dba Bug 1208320 - Produce common tests archive via Python; r=glandium
This doesn't change I/O or copy behavior at all. But it does remove a
one-off make rule.

--HG--
extra : commitid : X0efdFHA0k
extra : rebase_source : c7cb8616461eccd1ff7f8eb3b409bd4944c9e1ec
2015-09-30 17:38:53 -07:00
Gregory Szorc
1c2fb95934 Bug 1208320 - Produce talos test archive without staging files; r=glandium
This is pretty straightforward. This saves ~26 MB of file copies.

--HG--
extra : commitid : ItghoP73zS8
extra : rebase_source : 9656719a6459c1e6fa28165591722fe00d6d9b1d
2015-09-30 09:48:04 -07:00
Gregory Szorc
1d1f8b07c4 Bug 1208320 - Produce web-platform test archive without staging; r=glandium
The web-platform test archive now builds without any staging at all.
This saves ~103 MB of file copies on my machine.

The testing/web-platform/Makefile.in serves no purpose after this
change, so it and all references to it have been removed.

--HG--
extra : commitid : HDHGG3QGVBH
extra : rebase_source : dd7302aad96b46932aa00e4e66918c8077475b10
2015-09-30 09:47:22 -07:00
Gregory Szorc
e715f404c4 Bug 1208320 - Produce mochitest test archive without staging test files; r=glandium
This is very similar to what we did for xpcshell. Like xpcshell, there
are still some staged files. However, about 73MB of copies are
eliminated with this change. On my machine, overall execution time of
test packaging appears to decrease, although CPU usage is up slightly.

--HG--
extra : commitid : 5dy340X80J9
extra : rebase_source : d37be29367b17e6c1d9c885ab4705932b7a42b39
2015-09-30 09:46:35 -07:00
Gregory Szorc
a9b7ca4989 Bug 1208320 - Produce xpcshell archive without staging test files; r=glandium
This commit produces the xpcshell test archive without staging 5000+
xpcshell test files first.

We teach the archiver to ignore .mkdir.done files.

The xpcshell Makefile.in still stages some files. This is less than
ideal. However, it is a small handful of files and shouldn't add too
much overhead.

This appears to not impact overall CPU usage significantly on my
machine, despute using Python instead of `zip`. It does reduce I/O
by ~25MB by avoiding the staging copy.

--HG--
extra : commitid : IwvLaYvAbFt
extra : rebase_source : a690ae4b1adbabd491851a2479fa66d81241601b
2015-09-30 09:36:16 -07:00
Gregory Szorc
212a2d7513 Bug 1208320 - Produce mozharness test archive via mozpack; r=glandium
Test archive generation currently copies a bunch of files into a staging
area then runs `zip` to produce ZIP files. There are 2 concerns with
this approach:

1) We incur a lot of extra I/O to copy files so everything is
   rooted in a single tree so the `zip` invocation and paths are
   simple.
2) ZIP files inherit properties from the local filesystem (including
   mtime), making ZIP files non-deterministic.

This commit introduces a new mozbuild action for producing test
archives. It does so using the mozpack file finder and JAR writer,
which are used throughout the build to deterministically
produce ZIP/JAR files from files in multiple source directories.

We implement support for producing the mozharness archive. This archive
does not involve files that are staged, so no I/O is saved. In fact,
the switch from `zip` to Python likely makes this slightly slower.
However, we do have deterministic archives now.

Additional archives will be ported over in subsequent commits.

--HG--
extra : commitid : H1BOidPDZST
extra : rebase_source : 120e2bfea921e5fb3a8d97b2dd0227edce452cfd
2015-09-30 11:34:33 -07:00
Gregory Szorc
48a66e97a7 Bug 1208320 - Allow FileFinder to find dot files; r=glandium
Previously, we always skipped over files beginning with a ".". This
commit adds an option to include them.

This is needed to support test package generation via Python / mozpack.

--HG--
extra : commitid : 4pmEpukVX0s
extra : rebase_source : 31599230ce344b9be815b3a457cc8a7c6d8e5301
2015-09-30 09:16:33 -07:00
Catalin Badea
75bac2c366 Bug 1188545 - Fixup: disable test_fetch_cors.html on android debug. a=testonly 2015-10-01 00:16:36 -04:00
Nicholas Nethercote
a249f7cf80 Bug 1209206 (part 3) - Use sinf() and cosf() instead of sin() and cos() in a couple of places. r=Bas.
--HG--
extra : rebase_source : 0e282b829a48738fdcfde5b79c5ec3b36eb0bd06
2015-09-28 17:12:07 -07:00
Nicholas Nethercote
d9e0f6607b Bug 1209206 (part 2) - Rename and re-comment HasNonOpaqueColor(). r=jdaggett.
So that the comment and the name match what the code is doing.

--HG--
extra : rebase_source : cb2f741968567b22a46949640625efcc95ddcee3
2015-09-28 13:20:06 -07:00
Nicholas Nethercote
7b70ebccdf Bug 1209206 (part 1) - Remove mgfx namespace synonym.
CanvasRenderingContext2D.cpp has a |namespace mgfx = mozilla::gfx;| synonym.
Since the entire file is within the |mozilla| namespace we can use |gfx::Foo|
anyway, which is shorter than |mgfx::Foo|.

--HG--
extra : rebase_source : abd76713f1741b1b4f078e21d89a0708b7bd65fb
2015-09-28 12:37:18 -07:00
Catalin Badea
f4efb99f5e Bug 1188545 - Disable test_fetch_cors.html & test_fetch_cors_reroute.html on android debug. a=testonly 2015-09-30 23:57:33 -04:00
JW Wang
f56fdd4173 Bug 1209886 - Clean up InstantiateDecoder() in DecoderTraits.cpp. r=kinetik. 2015-09-30 06:55:20 +08:00
Bas Schouten
55fc81be8b Bug 1208465 - Part 2: Disable using Direct2D when 1.1 is unavailable. r=jrmuizel 2015-09-25 13:30:57 +00:00
Bas Schouten
1369a96bd4 Bug 1208465 - Part 1: Fix some reftest annotations. r=jrmuizel 2015-10-01 04:45:26 +02:00
Seth Fowler
9933832135 Bug 1118926 (Part 2) - Remove remnants of -moz-resolution in JavaScript code. r=dolske 2015-09-30 17:00:56 -07:00
Seth Fowler
ee578a0619 Bug 1118926 (Part 1) - Remove remnants of -moz-resolution in C++ code. r=tn 2015-09-30 17:00:52 -07:00
Wes Kocher
eff494e681 Backed out changeset 919a831786f1 (bug 1208638) for windows build failures 2015-09-30 16:43:26 -07:00
Chris Manchester
059807dbd8 Bug 1209701 - Don't require platforms as input to |./mach try| if set in the environment. r=jgraham
--HG--
extra : commitid : amxtVwsmei
2015-09-30 16:38:20 -07:00
Chris Manchester
7bc85f9727 Bug 1184405 - Use file metadata from files changed in the current branch in mach try when no other arguments are present. r=jgraham
--HG--
extra : commitid : IS04VgBwDxE
2015-09-30 16:38:20 -07:00
Bobby Holley
e91aae8249 Bug 1208622 - Separate API entry points. r=bz 2015-09-30 16:31:46 -07:00
Wes Kocher
896562fc4e Backed out changeset 212f49a401b2 (bug 1186982) for SM failures 2015-09-30 16:31:10 -07:00
Bobby Holley
ca4a8095de Bug 1209843 - Stop checking for UNKNOWN_APP_ID in all places except those where AppId() is explicitly queried. r=sicking 2015-09-30 16:29:36 -07:00
Shu-yu Guo
8869fe8278 Bug 1207863 - Fix ScopeIter iterating a strict eval frame that errored out before its CallObject was allocated. (r=jorendorff) 2015-09-30 16:30:49 -07:00
David Anderson
b0e2473678 Don't use Direct2D if CompositorD3D11::Initialize fails. (bug 1208638, r=jrmuizel)
--HG--
extra : rebase_source : 2c0b1febd9bcc3a52f48a98243ab853f5b58848d
2015-09-30 16:16:16 -07:00
Terrence Cole
3985b32cf2 Bug 1209754 - Assert that all post-barriers happen on the main thread; r=jonco
--HG--
extra : rebase_source : c8841153d038a648f67b0b4af7db89ad08515b54
2015-09-29 14:33:37 -07:00