mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:30:27 +00:00
f7d677cddd
- Bug 1168263 - Exclude perspective transforms from the transform used to convert from screen coordinates to an APZC's coordinate space. r=kats (dab02eb359) - Bug 1225950 - Remove unnecessary parameter from SetNeedsComposite. r=mchang (0fb6099bd5) - Bug 1225950 - Make mNeedsComposite a counter rather than a boolean. r=mchang (4d46dba314) - Bug 1225950 - Force a composite if we have requested one but haven't gotten a vsync in a while. r=mchang (06f0d4553e) - Bug 1221697 - Add a telemetry probe for time-to-composite. r=kats (c333e2ea87) - Bug 1213120 - Ensure we don't try to use an uninitialized map. r=BenWa (99069b78fe) - Bug 1228133 - Guard against a race condition that could result in an illegal pointer access. r=BenWa (65e1393908) - update, mostly shadow warnings (5ca9c8ec0c) - Bug 1119106 - Increase the radio button rendering bottom margin on 10.10 so that the button hits its frame more accurately. r=smichaud (2b55533095) - Bug 1221451: Don't pass nil when an argument is required. r=spohl (7adfcf2543) - Bug 1153579 - Fix -Wpointer-bool-conversion warning by removing null check of an array address. r=mstange (8c7ad82e8f) - Bug 1204620 - Don't prepend 'image.' to CUIDraw image names on 10.11. r=stefanh (9a4794ecd4) - Bug 1181289 - Specify size: small when drawing small scrollbars with CoreUI. r=smichaud (e75bff6036) - Bug 1138359 - Make the margins of native-themed Cocoa buttons aware of writing mode. r=smontagu (49afef0f00) - Bug 1220358 - Fix -Wunreachable-code warnings in widget/cocoa. r=spohl (720c720afc) - fixup widget/ios from EventMessage change (no bug, NPOTB) (ab33d61f95) - Bug 1217818 - Add support for the mHandledByAPZ flag on touch events as well. r=botond (d4658c671a) - Bug 1209772 - 'mozregression was installed. please re-run your command.' when running ./mach mozregression. r=ahal (5febef290b) - Bug 1204787 - Add |mach power|. r=glandium. (5a0d84f480) - Bug 1214924 - Add "WindowServer" and "kernel" processes to |mach power|'s output. r=BenWa. (89c3a515f7) - Bug 1197694 - fflush() rapl output so it always appears immediately. r=erahm. (052568f395) - Bug 1194560 (follow-up) - Only build rapl on Linux if the arch is x86 or x86-64. r=glandium. (0101937ffa) - Bug 1198137 - Add some summary stats to tool/power/rapl's output. r=erahm. (53052f366b) - Bug 1198137 (follow-up) - Add a missing #include to unbreak Mac OS builds on a CLOSED TREE. r=me (27862d34ff) - Bug 1203834 - Fix's rapl's handling of unsupported power domains. r=glandium. (facb022467) - Bug 1203811 - Clarify two error messages in tools/power/rapl. r=heycam. (07a6bb847e) - Bug 1201811 (part 1) - Don't use integer arithmetic when summing totals in rapl. r=erahm. (57a1de1376) - Bug 1201811 (part 2) - Don't print distribution stats if there was only 1 sample. r=erahm. (e5c085a4df) - Bug 1222887 - Suppress -Wunreachable-code warning in tools/power. r=njn (4fbbbe81e1) - Bug 1222352 - Resource Timing - nextHopProtocol does not work in e10s r=nwgh (57029cf33d) - Bug 1211636 - use ToInteger64 in PopulateFromSuffix. r=bholley (d67e5fe9d1) - Bug 961049 - Part 2: Remove Utilities.h; r=baku (3c09679a40) - Bug 961049 - Part 3: Move PersistenceType serializer from indexedDB to quota module; r=baku (021478905a) - Bug 1186809 (part 1) - Replace nsBaseHashtable::EnumerateRead() calls in dom/quota/ with iterators. r=janv. (8933726851) - Bug 1186809 (part 2) - Replace nsBaseHashtable::EnumerateRead() calls in dom/quota/ with iterators. r=janv. (cb7c6f27dc) - Bug 1186809 (part 3) - Replace nsBaseHashtable::EnumerateRead() calls in dom/quota/ with iterators. r=janv. (1ded98347c) - Bug 1187151 (part 1) - Replace nsBaseHashtable::Enumerate() calls in dom/base/ with iterators. r=khuey. (a409e8590e) - Bug 1187151 (part 2) - Replace nsBaseHashtable::Enumerate() calls in dom/base/ with iterators. r=janv. (bd4fe93dfc) - Bug 1187151 (part 3) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=khuey. (de0f2dda26) - Bug 1187151 (part 4) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=khuey. (e72d744118) - Bug 1187151 (part 5) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=khuey. (18eddd5225) - Bug 1187151 (part 6) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=khuey. (36fb6272e1) - Bug 1187151 (part 7) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=khuey. (594438d35f) - Bug 1187151 (part 8) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=khuey. (d8de2742d8) - Bug 1187151 (part 9) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=khuey. (d2b4a29111) - missing namespace (0b0453cc40) - Bug 1187701 - add_task function for mochitest chrome and plain; r=jmaher (1c31a40c7c) - Bug 1223831 - SpecialPowers API to create files in an e10s-compatible way. r=jmaher,baku (a04646cb50) - Bug 1178526 - Create docshell with packageId from TabContext. r=sicking. (c89edfc7ab) - Bug 1217694 - Signed package should come from the moz-package-origin specified in its manifest. r=valentin (705aeae07a) - Bug 1225422 - Update the PrivilegedPackageRoot certificate. r=keeler (2a90eed63c) - Bug 1204301 - HttpChannelParent needs to be able to GetInterface to an nsIPrompt. r=billm. (4937a2fbbe)
143 lines
5.1 KiB
Python
143 lines
5.1 KiB
Python
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
from __future__ import print_function
|
|
|
|
from distutils.version import StrictVersion
|
|
|
|
from mach.decorators import (
|
|
Command,
|
|
CommandArgument,
|
|
CommandProvider,
|
|
)
|
|
from mozbuild.base import (
|
|
MachCommandBase,
|
|
MachCommandConditions as conditions,
|
|
)
|
|
|
|
|
|
def is_osx_10_10_or_greater(cls):
|
|
import platform
|
|
release = platform.mac_ver()[0]
|
|
return release and StrictVersion(release) >= StrictVersion('10.10')
|
|
|
|
|
|
@CommandProvider
|
|
class MachCommands(MachCommandBase):
|
|
'''
|
|
Get system power consumption and related measurements.
|
|
'''
|
|
def __init__(self, context):
|
|
MachCommandBase.__init__(self, context)
|
|
|
|
@Command('power', category='misc',
|
|
conditions=[is_osx_10_10_or_greater],
|
|
description='Get system power consumption and related measurements for '
|
|
'all running browsers. Available only on Mac OS X 10.10 and above. '
|
|
'Requires root access.')
|
|
@CommandArgument('-i', '--interval', type=int, default=30000,
|
|
help='The sample period, measured in milliseconds. Defaults to 30000.')
|
|
def power(self, interval):
|
|
import os
|
|
import re
|
|
import subprocess
|
|
|
|
rapl = os.path.join(self.topobjdir, 'dist', 'bin', 'rapl')
|
|
|
|
interval = str(interval)
|
|
|
|
# Run a trivial command with |sudo| to gain temporary root privileges
|
|
# before |rapl| and |powermetrics| are called. This ensures that |rapl|
|
|
# doesn't start measuring while |powermetrics| is waiting for the root
|
|
# password to be entered.
|
|
try:
|
|
subprocess.check_call(['sudo', 'true'])
|
|
except:
|
|
print('\nsudo failed; aborting')
|
|
return 1
|
|
|
|
# This runs rapl in the background because nothing in this script
|
|
# depends on the output. This is good because we want |rapl| and
|
|
# |powermetrics| to run at the same time.
|
|
subprocess.Popen([rapl, '-n', '1', '-i', interval])
|
|
|
|
lines = subprocess.check_output(['sudo', 'powermetrics',
|
|
'--samplers', 'tasks',
|
|
'--show-process-coalition',
|
|
'--show-process-gpu',
|
|
'-n', '1',
|
|
'-i', interval])
|
|
|
|
# When run with --show-process-coalition, |powermetrics| groups outputs
|
|
# into process coalitions, each of which has a leader.
|
|
#
|
|
# For example, when Firefox runs from the dock, its coalition looks
|
|
# like this:
|
|
#
|
|
# org.mozilla.firefox
|
|
# firefox
|
|
# plugin-container
|
|
#
|
|
# When Safari runs from the dock:
|
|
#
|
|
# com.apple.Safari
|
|
# Safari
|
|
# com.apple.WebKit.Networking
|
|
# com.apple.WebKit.WebContent
|
|
# com.apple.WebKit.WebContent
|
|
#
|
|
# When Chrome runs from the dock:
|
|
#
|
|
# com.google.Chrome
|
|
# Google Chrome
|
|
# Google Chrome Helper
|
|
# Google Chrome Helper
|
|
#
|
|
# In these cases, we want to print the whole coalition.
|
|
#
|
|
# Also, when you run any of them from the command line, things are the
|
|
# same except that the leader is com.apple.Terminal and there may be
|
|
# non-browser processes in the coalition, e.g.:
|
|
#
|
|
# com.apple.Terminal
|
|
# firefox
|
|
# plugin-container
|
|
# <and possibly other, non-browser processes>
|
|
#
|
|
# Also, the WindowServer and kernel coalitions and processes are often
|
|
# relevant.
|
|
#
|
|
# We want to print all these but omit uninteresting coalitions. We
|
|
# could do this by properly parsing powermetrics output, but it's
|
|
# simpler and more robust to just grep for a handful of identifying
|
|
# strings.
|
|
|
|
print() # blank line between |rapl| output and |powermetrics| output
|
|
|
|
for line in lines.splitlines():
|
|
# Search for the following things.
|
|
#
|
|
# - '^Name' is for the columns headings line.
|
|
#
|
|
# - 'firefox' and 'plugin-container' are for Firefox
|
|
#
|
|
# - 'Safari\b' and 'WebKit' are for Safari. The '\b' excludes
|
|
# SafariCloudHistoryPush, which is a process that always
|
|
# runs, even when Safari isn't open.
|
|
#
|
|
# - 'Chrome' is for Chrome.
|
|
#
|
|
# - 'Terminal' is for the terminal. If no browser is running from
|
|
# within the terminal, it will show up unnecessarily. This is a
|
|
# minor disadvantage of this very simple parsing strategy.
|
|
#
|
|
# - 'WindowServer' is for the WindowServer.
|
|
#
|
|
# - 'kernel' is for the kernel.
|
|
#
|
|
if re.search(r'(^Name|firefox|plugin-container|Safari\b|WebKit|Chrome|Terminal|WindowServer|kernel)', line):
|
|
print(line)
|
|
|
|
return 0
|