Commit Graph

474071 Commits

Author SHA1 Message Date
Hiroyuki Ikezoe
8fd021fbd4 Bug 1235002 - Skip requesting a restyle when mProperties is empty. r=birtles
The test case here does not check whether requesting restyles for empty
properties are skipped or not.  It just checks that whether restyles happen or
not because there is no way to check each request for restyles yet.

MozReview-Commit-ID: I5XMYfCTYU8

--HG--
extra : rebase_source : 893aaaf2c47e05f37bce9913df4f14e3021f215a
2016-05-09 12:33:52 +09:00
Chris Pearce
817b6c705e Bug 1270689 - Null-check WidevineDecryptor::mCallback before use. r=gerald
We've observed some crashes derefing the callback pointer, which may be
occuring due to shutdown happening before init has setup the callback pointer.

MozReview-Commit-ID: JsOqfjejMVI

--HG--
extra : rebase_source : e175dd8556ad50316bc16232782e593eea3e2ec8
2016-05-09 14:21:26 +12:00
Gerald Squelart
a147091776 Bug 1268434 - Mutex-protect and check GMP abstract thread before uses - c?cpearce r=cpearce
GeckoMediaPluginService::mAbstractThread was not reset as expected from
ShutdownGMPThread, meaning it would retain a reference to the GMP thread, and
it would allow dispatch attempts to the GMP thread after shutdown.

Also mAbstractThread was not protected by a mutex (as mGMPThread was), which is
definitely needed now that it can be reset at shutdown time.

As its prefix implies, GetAbstractThread could return a nullptr, so it should
be checked before every use.
Note that this GetAbstractThread call (and its check) has been moved closer to
the start of functions using it, to avoid unnecessary and potentially invariant-
breaking partial work to take place when we can know in advance that it won't
fully succeed because the GMP thread is not available.

MozReview-Commit-ID: B1drOeM65hr

--HG--
extra : rebase_source : 1d389c663e26a25035bf2aa22b2cca478ef954fe
2016-05-06 21:36:22 +10:00
Martin Stransky
14a55c9a93 bug 1234158 add support for GTK 3.20 scrollbars r=karlt
--HG--
extra : transplant_source : %84N%24%B8%1D%80%EE%133%96%B3Y%0B%5D%29%26%18%24%B3%60
extra : histedit_source : 6e54e39b3c2649e4efebb864db2d5ce5d8b7b330
2016-05-09 11:08:26 +12:00
Karl Tomlinson
b799dfaa46 bug 1234158 rename GtkThemeWidgetType enum to WidgetNodeType as it will differentiate GTK CSS nodes r=Stránský
--HG--
extra : transplant_source : %11-%01%D8%F3%D6%00%E9%0C%D8%84z%A2%98%7C%F3%B5I%CF%5E
extra : histedit_source : deb6e194d8ea4466976347e24a741ee354dcc331
2016-04-14 17:47:20 +12:00
Sotaro Ikeda
10bd1948ed Bug 1263053 - Enable tiling on BasicCompositor r=nical 2016-05-08 18:29:35 -07:00
Christoph Kerschbaumer
88454785ba Bug 1269271 - Remove SEC_NORMAL from image/decoders (r=seth) 2016-05-08 20:05:51 +02:00
Christoph Kerschbaumer
0b2788ba18 Bug 1269264 - Remove SEC_NORMAL from test_ril_code_quality.py (r=sicking) 2016-05-08 20:06:37 +02:00
Yoshi Huang
ba88c1ae58 Bug 1250033 - DocShell shouldn't have any child when setting userContextId. r=sicking 2016-05-08 22:38:09 +08:00
Jonathan Watt
6f1c454a86 Bug 1265744 - Make the "RasterImage::Init failed"/"VectorImage::Init failed" messages include the failing URI. r=seth 2016-05-03 17:16:31 +01:00
Aryeh Gregor
b607cb2e71 Bug 1269712 - <track kind=invalid> should behave like metadata, not subtitles; r=bz
This follows a spec change <https://github.com/whatwg/html/issues/293>,
which AFAIK no other browser has implemented, so it has some regression
potential.

The web-platform tests changed are out-of-date and match the old spec,
so I'm changing them here to match the new spec.
2016-05-08 14:46:20 +03:00
Robert Longson
957d0f6704 Bug 1267272 - NULL pointer mozilla::dom::SVGSVGElement::GetIntrinsicHeight. r=seth 2016-05-08 11:17:46 +01:00
Sebastian Hengst
30086ae6de Bug 1263862 - Fix OOM case in ScopeIter::settle: Follow-up: bail out if oomTest is not defined. r=bustage fix for test 2016-05-08 10:33:17 +02:00
Bob Owen
b95d020f26 Bug 1255336: Copy DEVMODE details back to print settings in GetDataFromPrinter. r=jimm
nsDeviceContextSpecWin::GetDataFromPrinter is only called with print settings, when the settings aren't properly populated in nsDeviceContextSpecWin::Init.
This only happens when printing silently and the print settings have last been populated with prefs.
We need to copy the final DEVMODE details back in case any were invalid from the prefs and have been overridden by the printer.

MozReview-Commit-ID: EuRTDZTSSJn

--HG--
extra : rebase_source : 338910cec62843a79333ca32e1be2e07fd7a9a11
2016-05-05 13:06:53 +01:00
Shu-yu Guo
bcf5ac7ff7 Bug 1269042 - Handle NonSyntacticVariablesObject in Debugger.Environment.object. r=jimb 2016-04-29 16:06:00 +02:00
Shu-yu Guo
c77388a279 Bug 1263862 - Fix OOM case in ScopeIter::settle. r=jandem 2016-04-19 19:44:00 +02:00
Tim Huang
5facb5e7d0 Bug 1260917 - Add a 'userContextId' in the sandbox options, and sandbox will reference this when creating from string url. r=bholley 2016-05-04 20:54:00 +02:00
Hiroyuki Ikezoe
74cc42f261 Bug 1258904 - Part 5: Remove redundant tests for animation performance warnings. r=birtles
There were two places run gAnimationsTests in
test_animation_performance_warning.html.

MozReview-Commit-ID: zrD5eMiDsy

--HG--
extra : rebase_source : 250f826daed4440725c0a28fdb1fcd84fd299402
2016-05-07 17:37:58 +09:00
Hiroyuki Ikezoe
4030f03992 Bug 1258904 - Part 4: Set performance warning for small content. r=birtles
MozReview-Commit-ID: 7GyGkPog1Bo

--HG--
extra : rebase_source : c296a35c433af547fe4dd800ec8c8abd3bdba339
2016-05-07 17:37:58 +09:00
Hiroyuki Ikezoe
eee73ed64c Bug 1258904 - Part 3: Factor out ToLocalizedStringForKey. r=birtles
This function will be used for the warning of small content as well.
MozReview-Commit-ID: EiUF9CgWGDA

--HG--
extra : rebase_source : 3b6daa713d889f5c51507d4c1f6fd6c51f1e7fb9
2016-05-07 17:37:57 +09:00
Hiroyuki Ikezoe
95f4a2736f Bug 1258904 - Part 2: nsDisplay(Opacity|Transform)::GetLayerState should return LAYER_ACTIVE_FORCE if they have async animations to avoid flattening the layers. r=mattwoodrow
MozReview-Commit-ID: 16QtFJBX97W

--HG--
extra : rebase_source : 3d53df451a5695dcb5967dc3e9723efef36af556
2016-05-07 17:37:57 +09:00
Hiroyuki Ikezoe
bce5aea131 Bug 1258904 - Part 1: Don't create layers for compositor animations if the layer size is less than 16x16. r=mattwoodrow
MozReview-Commit-ID: Kb26GeYYr9D

--HG--
extra : rebase_source : ea38aedf3eeb329d86fb1387e8b19ed32ae69ba7
2016-05-07 17:37:57 +09:00
Timothy Nikkel
6d672b7854 Bug 1270997. Send invalidations for the first image frame properly. r=seth
This was caused by http://hg.mozilla.org/mozilla-central/rev/167ceb965079 (bug 1194059). Before that changeset mIsAnimated meant "we currently have more than one frame". After that changeset mIsAnimated was replaced with HasAnimation(). HasAnimation() just looks at the metadata to see if the image is animated. That changeset had the effect of always detected if an image is animated during the metadata decode. Therefore during a full decode we always know the image is animated, even before we've decoded two or more frames.

The fix is to go back to using the actual current frame count to manage invalidations.
2016-05-07 15:54:39 -05:00
Gregory Szorc
e13542b72f Bug 1271035 - Disable Places during reftests, preventing 50 GB of I/O; r=dholbert
It was a cold Friday night in San Francisco. Earlier in the day, I
informed Chris AtLee that I was going to start focusing on improving
the efficiency of Firefox automation and asked him where the biggest
capacity issues were. He said "we're hurting most on Windows tests."

As I was casually drinking a barleywine (note to reader: barleywines
are serious beers - there's nothing casual about them), I found myself
tediously clicking through Treeherder looking at logs for Windows jobs,
looking for patterns and other oddities. As I was clicking through,
something stood out to me: the sheer number of reftest jobs. I
recalled a random project I started a few years ago. Its aim was to
analyze buildbot job metadata so we could better understand where time
was spent in automation. I had mostly written off the side project as
a failure and a near complete waste of my time. Not even a stray
random thought of this project had entered my mind in the past year.
But clicking through Treeherder after a few glasses of barleywine
somehow reminded me of one of the few useful findings of that project:
reftest jobs consumed a seemingly disproportiate amount of machine time,
something like 35 or 40% IIRC of the time spent on all jobs.

Now, this finding was several years ago and almost certainly no longer
relevant. But, again, I had a few glasses of barleywine in me and was
bothered by the amount of reftest jobs and their duration, so I thought
"hey, why don't I run reftests and see why they take so long." So I
built Firefox on Windows - the platform Chris AtLee said we're "hurting
most on."

I decided to start my very casual profiling session by recording a
`mach reftest` run using Sysinternals Process Monitor. To my surprise,
it yielded a very obvious and unexpected result: the Places SQLite
database was incurring a lot of I/O. On my i7-6700K Windows 10 desktop
with a high performance SSD, `mach reftest` yielded the following:

File Time  #Events  #Reads   #Writes  RBytes        WBytes          Path
198s       980,872  243,270  669,231  7,971,471,360 20,667,084,080  places.sqlite-wal
165s       645,853  222,407  367,775  7,287,701,820 14.071,529,472  places.sqlite
  2s       377,121        1        0         32,768              0  places.sqlite-shm

The Places SQLite database accounts for 2,003,846 of the total of
3,547,527 system calls (56.49%) recorded by procmon during `mach
reftest` execution. This represents a staggering 49,997,786,732 of the
50,307,660,589 (99.38%) bytes of I/O recorded! Yes, that's 50 GB.

I reckon the reason the Places database accumulates so much I/O load
during reftests is because the reftest suite essentially loads thousands
of pages as quickly as possible. This effectively performs a stress
test against the Places history recording service.

As effective as reftests are at stress-testing Places, it adds no value
to reftests because reftests are testing the layout features, not the
performance of history recording. So these 2M system calls and 50 GB
of I/O are overhead.

This commit disables Places when executing reftests and prevents
the overhead.

After this commit, `mach reftest` has significantly reduced interaction
with the Places SQLite database:

File Time  #Events  #Reads   #Writes  RBytes        WBytes         Path
0.09s          502     138       302     4,521,984      8,961,528  places.sqlite-wal
0.07s          254      20       140       524,604      8,126,464  places.sqlite
0.01s        3,289       1         0        32,768              0  places.sqlite-shm

Of the 948,033 system calls recorded with this change (26.7% of
original), 691,322 were related to I/O. The Places SQLite database
only consumed ~22MB of I/O, <0.01% of original. It's worth noting that
~half of the remaining I/O system calls are related to reftest.log,
which now accounts for the largest percentage of write I/O (only
~53 MB, however). It's worth noting that reftest.log appears to be
using unbuffered writes and is requiring an excessive amount of
system calls for writing. But that's for another bug and commit.

In terms of wall time, the drastic I/O reduction during `mach reftest`
appears to have minimal impact on my machine: maybe 30s shaved from a
~900s execution, or ~3%. But my machine with its modern SSD doesn't
struggle with I/O.

In automation, it is a different story.

I pushed this change to Try along with the base revision and triggered
4 runs of most reftest jobs. The runtime improvements in automation
are impressive. Here are the fastest reported times for various jobs:

Job                     Before      After     Delta
Linux Opt R1               31m        34m       +3m
Linux Opt R2               43m        35m       -8m
Linux Opt Ru1              40m        34m       -6m
Linux Opt Ru2              43m        37m       -6m
Linux Opt R E10s           89m        72m      -17m
Linux Debug R1             52m        40m      -12m
Linux Debug R2             49m        42m       -7m
Linux Debug R3             60m        51m       -9m
Linux Debug R4             42m        37m       -5m
Linux Debug R1 E10s        84m        72m      -12m
Linux Debug R2 E10s        97m        85m      -12m
Linux64 Opt R1             35m        24m      -11m
Linux64 Opt R2             37m        26m      -11m
Linux64 Opt Ru1            32m        29m       -3m
Linux64 Opt Ru2            37m        26m      -12m
Linux64 Opt TC R1          12m        10m       -2m
Linux64 Opt TC R2          10m         7m       -3m
Linux64 Opt TC R3          11m         9m       -2m
Linux64 Opt TC R4          11m         9m       -2m
Linux64 Opt TC R5          13m        11m       -2m
Linux64 Opt TC R6          11m         9m       -2m
Linux64 Opt TC R7           9m         8m       -1m
Linux64 Opt TC R8          11m        10m       -1m
Linux64 Opt TC Ru1         30m        25m       -5m
Linux64 Opt TC Ru2         36m        27m      -11m
OS X 10.10 Opt             31m        27m       -4m
OS X 10.10 Opt E10s        26m        25m       -1m
OS X 10.10 Debug           68m        55m      -13m
Win7 Opt R                 30m        28m       -2m
Win7 Opt Ru                28m        26m       -2m
Win7 Opt R E10S            29m        27m       -2m
Win7 Debug R               85m        76m       -9m
Win7 Debug R E10S          75m        65m      -10m
Win8 x64 Opt R             29m        26m       -3m
Win8 x64 Opt Ru            27m        25m       -2m
Win8 x64 Debug R           90m        71m      -19m
Android 4.3 API15 Opt R1   89m        71m      -18m
Android 4.3 API15 Opt R2   78m        64m      -14m
Android 4.3 API15 Opt R3   75m        64m      -11m
Android 4.3 API15 Opt R4   74m        68m       -6m
Android 4.3 API15 Opt R5   75m        69m       -6m
Android 4.3 API15 Opt R6   91m        86m       -5m
Android 4.3 API15 Opt R7   87m        66m      -21m
Android 4.3 API15 Opt R8   87m        82m       -5m
Android 4.3 API15 Opt R9   80m        66m      -14m
Android 4.3 API15 Opt R10  80m        67m      -13m
Android 4.3 API15 Opt R11  73m        66m       -7m
Android 4.3 API15 Opt R12 105m        91m      -14m
Android 4.3 API15 Opt R13  72m        59m      -13m
Android 4.3 API15 Opt R14  82m        61m      -21m
Android 4.3 API15 Opt R15  73m        62m      -11m
Android 4.3 API15 Opt R16  79m        78m       -1m

The savings total 6+ *hours* or ~15% when running all reftests. I'd
say this isn't bad for a one-line code change!

MozReview-Commit-ID: H1LkACgSpVn

--HG--
extra : rebase_source : 891a5ce8e1f6c3d70fc646f116c2f49f897ad735
2016-05-07 02:53:14 -07:00
Jon Coppeard
5c1f07c15a Bug 1240072 - Test code for loading JS module from chrome r=sicking 2016-05-07 12:46:39 +01:00
Jon Coppeard
8d7ea09706 Bug 1240072 - Implement <script type="module"> for chrome pages only r=sicking 2016-05-07 12:46:38 +01:00
Jon Coppeard
19bcb45545 Bug 1240072 - Add nsJSUtils methods for creating and instantiating modules r=sicking 2016-05-07 12:46:38 +01:00
Jon Coppeard
90e20a8c9f Bug 1240072 - Add public JS APIs related to modules r=shu 2016-05-07 12:46:29 +01:00
Jean-Yves Avenard
9f2e0f2c87 Bug 1269408: P10. Reject promise early if in error state. r=me
Partial revertial of commit 3fa48191a0f (P9).

MozReview-Commit-ID: 2jAW7RLZ2xg
2016-05-07 19:16:34 +10:00
James Graham
db0cf2d998 Bug 1270508 - Update web-platform-tests expected data to revision 26663baa852c0b42b91e7e72d3aa940e43371571, a=testonly
MozReview-Commit-ID: 3SZYeNaUf2R
2016-05-07 09:05:39 +01:00
James Graham
df2ee20f9e Bug 1270508 - Update web-platform-tests to revision 26663baa852c0b42b91e7e72d3aa940e43371571, a=testonly
MozReview-Commit-ID: JLzeheMYLlz
2016-05-07 09:05:37 +01:00
Carsten "Tomcat" Book
9fd3d75ff7 Backed out changeset e968a9db2350 (bug 1234147) for bustage 2016-05-07 08:24:23 +02:00
Andrea Marchesini
4570d46a36 Bug 1268303 - Better WorkerFeature management in Console API, r=smaug 2016-05-07 07:49:15 +02:00
Jeremiah Orem
0a99a7cc46 Bug 1174254 - Disable FTP protocol guessing. r=mcmanus 2016-04-28 18:00:00 -04:00
Jed Davis
1f75ae7708 Bug 1270328 - Fix use-after-forget in WebSocket. r=mcmanus 2016-05-04 19:22:00 -04:00
Shu-yu Guo
6d9b00c84d Bug 1234147 - Fix height computation for JitcodeSkiplistTower. r=djvj 2016-05-07 00:53:22 -04:00
Ryan VanderMeulen
1fa3a59f0a Bug 1270672 - Re-enable the webgl conformance suite on e10s. r=jgilbert 2016-05-07 00:52:00 -04:00
Nathan Froyd
ea473279ae Backout 6d6749bb5c26 (bug 1269408) for being pushed too soon, Executus 2016-05-06 22:08:46 -04:00
David Anderson
bfbc7d0ba3 Use gfxConfig for D3D9 preferences. (bug 1270650, r=jrmuizel) 2016-05-06 19:01:58 -07:00
Jean-Yves Avenard
969594ea8c Bug 1269408: P10. Reject promise early if in error state. r=me
MozReview-Commit-ID: 2jAW7RLZ2xg
2016-05-07 11:23:32 +10:00
Morgan Phillips
588ceb1f8d Bug 1270721 - Ensure that error format strings are not null before attempting to use them.;r=jimb
--HG--
extra : rebase_source : d57b0eb1ad935ee6dd5cd655951828e3d3ad30e3
2016-05-06 11:50:45 -07:00
bd339
79bdfc45c8 Bug 1170062 - Use a common base class to simplify APZ gtests. r=botond
The common base class is shared by APZCBasicTester and APZCTreeManagerTester,
and contains several of the functions previously in InputUtils.h.

MozReview-Commit-ID: 85ZRHc1dNQf

--HG--
extra : rebase_source : fe97b9774842944a9a7959350cc642e611b5a8b4
extra : amend_source : 2557604a92b478fbf44b7eaad6bfccfd4b4c8377
2016-05-06 21:30:28 +02:00
Nick Fitzgerald
42225056cf Bug 1211723 and 1260570 - Share JS source text between JSRuntimes; r=jimb
This commit adds `SharedImmutableStringsCache` which allows for de-duplication
and sharing of immutable strings between threads and JSRuntimes.

Each JSRuntime gets a SharedImmutableStringsCache member, but the accessor
always returns the parent runtime's cache. The caches in child JSRuntime's are
not wasting space, however, as initialization and allocation of the table
happens lazily within SharedImmutableStringsCache.

Furthermore, this commit removes `js::ScriptSource::Parent` and the
`CompressedSourceSet`. They are unnecessary because source text is always shared
via the parent runtime's `SharedImmutableStringsCache` now.
2016-05-06 16:53:45 -07:00
Chris Pearce
eddc1e9562 Bug 1270968 - Add mechanism to clear GMP storage when its version changes. r=gerald
In bug 1264497 we discovered that Netflix was broken because we'd made a change
to not send the Adobe GMP the device bound nodeId, which it stored in GMP
storage. When the GMP was comparing the nodeId it had stored against what it was
passed (nothing) the comparison was failing. Users could have worked around this
problem by clearing their GMP storage, whereupon the Adobe GMP will have stored
"nothing" as its nodeId.

When bug 1264497 was fixed, users who'd cleared their storage will see Netflix
fail again, as their stored nodeId of "nothing" will again not match what we
pass in. So to fix Netflix for these users, we need to clear GMP storage.

This is another instance of a more general problem that we have occasionally
encountered, namely that sometimes GMP storage becomes incompatible, and we
need to clear it. Having a general mechanism that we can use to clear storage
remotely will be helpful, so this patch adds one, and triggers it to fire.

This mechanism is pref controlled, so that we can issue a hotfix if necessary
to clear GMP storage.


MozReview-Commit-ID: GzSyBj0P2JG

--HG--
extra : rebase_source : b854860ee533b0742a664c862278ce54c9052596
2016-05-07 09:19:15 +12:00
Bobby Holley
21a222e332 Bug 1270515 - Bonus fix: Factor out unnecessary Reset calls during nsStyleCoord initialization. r=dbaron
The previous patches prevent us from generating temporaries at the affected callsites,
but this could still have benefits in other places.
2016-05-06 16:11:10 -07:00
Bobby Holley
23b53c3cad Bug 1270515 - Avoid synthesizing temporary nsStyleCoords in nsStyleSides::ToLength. r=dbaron 2016-05-06 16:11:10 -07:00
Bobby Holley
e7fab38387 Bug 1270515 - Avoid synthesizing temporary nsStyleCoords in nsStyleSides::ConvertsToLength. r=dbaron 2016-05-06 16:11:10 -07:00
Wes Kocher
419e80ad06 Merge m-c to inbound, a=merge 2016-05-06 15:58:32 -07:00
Wes Kocher
b17d7be7c1 Merge fx-team to central, a=merge 2016-05-06 15:57:08 -07:00
David Burns
6420fa4705 Bug 1258316 - Have marionette call maximize() on window instead of resize r=ato
This allows use to be able restore the window size if we wanted to.

MozReview-Commit-ID: Kx3JH1UroI2

--HG--
extra : rebase_source : 1b41e6b488eee2b4cbbea1104323b5807890b368
2016-05-06 21:15:13 +01:00