e7bfb11e947d34734090deb83d0391fc50cd5f06: Bug 1250033 - DocShell shouldn't have any child when setting userContextId. r=sicking
Yoshi Huang <allstars.chh@mozilla.com> - Fri, 06 May 2016 22:44:43 +0800 - rev 296558
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
Bug 1250033 - DocShell shouldn't have any child when setting userContextId. r=sicking
45acc6a022912f3be4c79f13efa584365d848888: Bug 1265744 - Make the "RasterImage::Init failed"/"VectorImage::Init failed" messages include the failing URI. r=seth
Jonathan Watt <jwatt@jwatt.org> - Tue, 03 May 2016 17:16:31 +0100 - rev 296557
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
Bug 1265744 - Make the "RasterImage::Init failed"/"VectorImage::Init failed" messages include the failing URI. r=seth
80b7ac3b97b80ec928f7e522ae3879a8b1c32dab: Bug 1269712 - <track kind=invalid> should behave like metadata, not subtitles; r=bz
Aryeh Gregor <ayg@aryeh.name> - Sun, 08 May 2016 14:46:20 +0300 - rev 296556
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
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.
01b755909dc18b700bd88eb616862e4872a6daf9: Bug 1267272 - NULL pointer mozilla::dom::SVGSVGElement::GetIntrinsicHeight. r=seth
Robert Longson <longsonr@gmail.com> - Sun, 08 May 2016 11:17:46 +0100 - rev 296555
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
Bug 1267272 - NULL pointer mozilla::dom::SVGSVGElement::GetIntrinsicHeight. r=seth
70bfcf9f09d5970324d6c7f4ed4330a56a826e53: Bug 1263862 - Fix OOM case in ScopeIter::settle: Follow-up: bail out if oomTest is not defined. r=bustage fix for test
Sebastian Hengst <archaeopteryx@coole-files.de> - Sun, 08 May 2016 10:33:17 +0200 - rev 296554
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
Bug 1263862 - Fix OOM case in ScopeIter::settle: Follow-up: bail out if oomTest is not defined. r=bustage fix for test
c98cab8c4344ec30adaa5071a42a2dda86079045: Bug 1255336: Copy DEVMODE details back to print settings in GetDataFromPrinter. r=jimm
Bob Owen <bobowencode@gmail.com> - Thu, 05 May 2016 13:06:53 +0100 - rev 296553
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
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
8793af101ab9d5892818f27d97af72d5dd9cacd6: Bug 1269042 - Handle NonSyntacticVariablesObject in Debugger.Environment.object. r=jimb
Shu-yu Guo <shu@rfrn.org> - Fri, 29 Apr 2016 16:06:00 +0200 - rev 296552
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
Bug 1269042 - Handle NonSyntacticVariablesObject in Debugger.Environment.object. r=jimb
0580b9b6ad1667d1a33ce4a07f6416dbdc669dc9: Bug 1263862 - Fix OOM case in ScopeIter::settle. r=jandem
Shu-yu Guo <shu@rfrn.org> - Tue, 19 Apr 2016 19:44:00 +0200 - rev 296551
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
Bug 1263862 - Fix OOM case in ScopeIter::settle. r=jandem
d2dc69a7eda300c22bfb8b80a0c43825f7131913: Bug 1260917 - Add a 'userContextId' in the sandbox options, and sandbox will reference this when creating from string url. r=bholley
Tim Huang <tihuang@mozilla.com> - Wed, 04 May 2016 20:54:00 +0200 - rev 296550
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
Bug 1260917 - Add a 'userContextId' in the sandbox options, and sandbox will reference this when creating from string url. r=bholley
246fdb220ef355bffd166aee2d53e8fbff5dfa56: Bug 1258904 - Part 5: Remove redundant tests for animation performance warnings. r=birtles
Hiroyuki Ikezoe <hiikezoe@mozilla-japan.org> - Sat, 07 May 2016 17:37:58 +0900 - rev 296549
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
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
f4f185cfc034ab987e09650a37aaa19891c7c29d: Bug 1258904 - Part 4: Set performance warning for small content. r=birtles
Hiroyuki Ikezoe <hiikezoe@mozilla-japan.org> - Sat, 07 May 2016 17:37:58 +0900 - rev 296548
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
Bug 1258904 - Part 4: Set performance warning for small content. r=birtles MozReview-Commit-ID: 7GyGkPog1Bo
156b9e7e21c772d011d2c502961ebe4a52b8e026: Bug 1258904 - Part 3: Factor out ToLocalizedStringForKey. r=birtles
Hiroyuki Ikezoe <hiikezoe@mozilla-japan.org> - Sat, 07 May 2016 17:37:57 +0900 - rev 296547
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
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
05cb31c61bf21174e515f31446630225dfe7a60a: 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
Hiroyuki Ikezoe <hiikezoe@mozilla-japan.org> - Sat, 07 May 2016 17:37:57 +0900 - rev 296546
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
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
2c119fc3431b2885711903a2a6662b3e3eb64b3b: Bug 1258904 - Part 1: Don't create layers for compositor animations if the layer size is less than 16x16. r=mattwoodrow
Hiroyuki Ikezoe <hiikezoe@mozilla-japan.org> - Sat, 07 May 2016 17:37:57 +0900 - rev 296545
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
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
8fa8077e9c5f8610cf55f084930b8650b3710b1f: Bug 1270997. Send invalidations for the first image frame properly. r=seth
Timothy Nikkel <tnikkel@gmail.com> - Sat, 07 May 2016 15:54:39 -0500 - rev 296544
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
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.
6b064f9f6e10b25bf2edc916b1b9a8b78cff0465: Bug 1271035 - Disable Places during reftests, preventing 50 GB of I/O; r=dholbert
Gregory Szorc <gps@mozilla.com> - Sat, 07 May 2016 02:53:14 -0700 - rev 296543
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
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
61120e909d9aab88a411ce1fe6252e7631637339: Bug 1240072 - Test code for loading JS module from chrome r=sicking
Jon Coppeard <jcoppeard@mozilla.com> - Sat, 07 May 2016 12:46:39 +0100 - rev 296542
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
Bug 1240072 - Test code for loading JS module from chrome r=sicking
a17704b72dd7051a82ef5cd4b522f4529b72bf94: Bug 1240072 - Implement <script type="module"> for chrome pages only r=sicking
Jon Coppeard <jcoppeard@mozilla.com> - Sat, 07 May 2016 12:46:38 +0100 - rev 296541
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
Bug 1240072 - Implement <script type="module"> for chrome pages only r=sicking
fb8c2718089ea97c4bbb8b2a57e1e471c0d7a945: Bug 1240072 - Add nsJSUtils methods for creating and instantiating modules r=sicking
Jon Coppeard <jcoppeard@mozilla.com> - Sat, 07 May 2016 12:46:38 +0100 - rev 296540
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
Bug 1240072 - Add nsJSUtils methods for creating and instantiating modules r=sicking
6280f6750cef3c80d184dfae026731a129266ab0: Bug 1240072 - Add public JS APIs related to modules r=shu
Jon Coppeard <jcoppeard@mozilla.com> - Sat, 07 May 2016 12:46:29 +0100 - rev 296539
Push 30241 by cbook@mozilla.com at Mon, 09 May 2016 09:18:37 +0000
Bug 1240072 - Add public JS APIs related to modules r=shu
(0) -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 tip