Commit Graph

98 Commits

Author SHA1 Message Date
Nicholas Nethercote
742fc7eb48 Bug 1297961 (part 1) - Introduce nsURI::GetSpecOrDefault(). r=hurley.
This function is an infallible alternative to nsIURI::GetSpec(). It's useful
when it's appropriate to handle a GetSpec() failure with a failure string, e.g.
for log/warning/error messages. It allows code like this:

  nsAutoCString spec;
  uri->GetSpec(spec);
  printf("uri: %s", spec.get());

to be changed to this:

  printf("uri: %s", uri->GetSpecOrDefault().get());

This introduces a slight behavioural change. Previously, if GetSpec() failed,
an empty string would be used here. Now, "[nsIURI::GetSpec failed]" will be
produced instead. In most cases this failure string will make for a clearer
log/warning/error message than the empty string.
* * *
Bug 1297961 (part 1b) - More GetSpecOrDefault() additions. r=hurley.

I will fold this into part 1 before landing.

--HG--
extra : rebase_source : ddc19a5624354ac098be019ca13cc24b99b80ddc
2016-08-26 16:02:31 +10:00
Nicholas Nethercote
c2306345d5 Bug 1297658 - Avoid unnecessary checking in memory reporters. r=erahm.
This patch removes checking of all the callback calls in memory reporter
CollectReport() functions, because it's not useful.

The patch also does some associated clean-up.

- Replaces some uses of nsIMemoryReporterCallback with the preferred
  nsIHandleReportCallback typedef.

- Replaces aCallback/aCb/aClosure with aHandleRepor/aData for CollectReports()
  parameter names, for consistency.

- Adds MOZ_MUST_USE/[must_use] in a few places in nsIMemoryReporter.idl.

- Uses the MOZ_COLLECT_REPORT macro in all suitable places.

Overall the patch reduces code size by ~300 lines and reduces the size of
libxul by about 37 KiB on my Linux64 builds.

--HG--
extra : rebase_source : e94323614bd10463a0c5134a7276238a7ca1cf23
2016-08-24 15:23:45 +10:00
Andrea Marchesini
8723eb439d Bug 1278816 - Move Performance API into dom/performance, r=smaug
--HG--
rename : dom/base/PerformanceEntry.cpp => dom/performance/PerformanceEntry.cpp
rename : dom/base/PerformanceEntry.h => dom/performance/PerformanceEntry.h
rename : dom/base/PerformanceMark.cpp => dom/performance/PerformanceMark.cpp
rename : dom/base/PerformanceMark.h => dom/performance/PerformanceMark.h
rename : dom/base/PerformanceMeasure.cpp => dom/performance/PerformanceMeasure.cpp
rename : dom/base/PerformanceMeasure.h => dom/performance/PerformanceMeasure.h
rename : dom/base/PerformanceObserver.cpp => dom/performance/PerformanceObserver.cpp
rename : dom/base/PerformanceObserver.h => dom/performance/PerformanceObserver.h
rename : dom/base/PerformanceObserverEntryList.cpp => dom/performance/PerformanceObserverEntryList.cpp
rename : dom/base/PerformanceObserverEntryList.h => dom/performance/PerformanceObserverEntryList.h
rename : dom/base/PerformanceResourceTiming.cpp => dom/performance/PerformanceResourceTiming.cpp
rename : dom/base/PerformanceResourceTiming.h => dom/performance/PerformanceResourceTiming.h
rename : dom/base/nsPerformance.cpp => dom/performance/nsPerformance.cpp
rename : dom/base/nsPerformance.h => dom/performance/nsPerformance.h
rename : dom/base/test/performance_observer.html => dom/performance/tests/performance_observer.html
rename : dom/base/test/test_performance_observer.html => dom/performance/tests/test_performance_observer.html
rename : dom/base/test/test_performance_observer.js => dom/performance/tests/test_performance_observer.js
rename : dom/base/test/test_performance_user_timing.html => dom/performance/tests/test_performance_user_timing.html
rename : dom/base/test/test_performance_user_timing.js => dom/performance/tests/test_performance_user_timing.js
2016-06-09 12:42:21 +02:00
Nicholas Nethercote
bbb69ce5f3 Bug 1187151 (part 18) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=mccr8.
--HG--
extra : rebase_source : e123f97b5ce8beaf4d86d9188cd9f9df2f073012
2016-01-28 15:14:45 -08:00
Kyle Huey
91efc5a86c Bug 1241764: Replace nsPIDOMWindow with nsPIDOMWindowInner/Outer. r=mrbkap,smaug 2016-01-30 09:05:36 -08:00
Kyle Huey
a1459ad2d7 Bug 1241763: Don't fire dom-window-destroyed on outer windows. r=bz 2016-01-22 10:27:54 -08:00
Nicholas Nethercote
d4891260a7 Bug 1187782 (part 3) - Replace nsBaseHashtable::EnumerateRead() calls in dom/base/ with iterators. r=khuey.
--HG--
extra : rebase_source : 2011a2b7432d217470da2651a9184fc76776b3f7
2015-10-26 22:22:10 -07:00
Kyle Huey
c7d3c4e21a Bug 1216401: Eviscerate nsIDOMWindow, move still needed methods to nsPIDOMWindow. r=bz 2015-10-26 14:37:32 -07:00
Nathan Froyd
01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Nicholas Nethercote
63ee27b690 Bug 1192128 - In DOM memory reporter, handle WindowID() being a uint64_t. r=mccr8.
--HG--
extra : rebase_source : 0166b09f8800c8ee2509643573e8f85f01d0b3c0
2015-08-06 22:09:30 -07:00
Birunthan Mohanathas
18c3f7460e Bug 1182980 - Part 5: Use nsTHashtable::Iterator in nsWindowMemoryReporter::CollectReports. r=khuey 2015-07-22 09:42:01 -07:00
Birunthan Mohanathas
af3cfe9011 Bug 1182980 - Part 4: Use nsTHashtable::Iterator in nsWindowMemoryReporter::UnlinkGhostWindows. r=khuey 2015-07-22 09:42:01 -07:00
Juan Gomez
258ad59e3f Bug 1171931 - Refactor duplicated code using XRE_IsParent/ContentProcess. r=froydnj 2015-07-03 18:29:00 -07:00
Ryan VanderMeulen
5f5c327690 Backed out changeset 8b4e4083639e (bug 1171931) for B2G debug emulator bustage. 2015-06-25 19:48:42 -04:00
Juan Gomez
702a59d135 Bug 1171931 - Refactor duplicated code using XRE_IsParent/ContentProcess. r=froydnj
--HG--
extra : rebase_source : 2ecbe6c1dd8a7ad8dc529b53349ad431cf1116c9
2015-06-24 14:11:00 -04:00
Cameron McCormack
7c0c226f2c Bug 1168299 - Break out style struct memory usage reporting from pres-shell. r=njn 2015-05-27 12:08:42 +10:00
Bobby Holley
3f0858f342 Bug 951991 - Assert against calling GetCurrentInnerWindow on an inner. r=smaug
The current convention is that this returns null when invoked on an inner, which
callers may or may not handle correctly. But when we start using GetEntryGlobal,
we'll end up with a lot of inners where we used to get outers, so we should get
strict about this now.
2014-08-19 12:02:05 -07:00
Nicholas Nethercote
aaf6fb2124 Bug 1010064 - Allow memory reports to be anonymized. r=bsmedberg.
--HG--
extra : rebase_source : 5eb756b17a97e751deb0f47e909fdb35533cb23b
2014-05-20 23:06:54 -07:00
Andrew McCreight
8d1c981254 Bug 994090 - Use do_CreateInstance in nsWindowMemoryReport. r=smaug 2014-05-15 09:35:00 -04:00
Birunthan Mohanathas
5f1fde8824 Bug 900908 - Part 3: Change uses of numbered macros in nsIClassInfoImpl.h/nsISupportsImpl.h to the variadic variants. r=froydnj 2014-04-27 03:06:00 -04:00
Neil Rashbrook
757dacf9be Bug 514280 Remove concrete classes from interface maps r=bsmedberg 2014-03-28 08:40:13 +00:00
Andrew McCreight
2243646948 Bug 977940, part 2 - Don't automatically trigger the ghost window detector during ICC. r=smaug 2014-03-08 05:38:53 -08:00
Andrew McCreight
260d421e2f Bug 977940, part 1 - Don't run the ghost window detector more than every 45 seconds. r=smaug 2014-03-08 05:38:52 -08:00
Andrew McCreight
798ec9614e Bug 966762 - Add chrome JS function to unlink ghost windows. r=smaug 2014-02-20 12:55:40 -08:00
Andrew McCreight
6c86943613 Backout bug 966762 for Valgrind leaks 2014-02-19 17:17:58 -08:00
Andrew McCreight
7cd422c324 Bug 966762 - Add chrome JS function to unlink ghost windows. r=smaug 2014-02-19 13:27:15 -08:00
Nathan Froyd
b07161b5dc Bug 957609 - eschew code duplication in macros for CollectWindowReports; r=njn 2014-01-10 10:15:53 -05:00
Nicholas Nethercote
0aa47c52fb Bug 957021 - Fix messed-up memory reporter paths. r=khuey.
--HG--
extra : rebase_source : 2bd46a9442c54ffba04279a405aeb270ce7bbb23
2014-01-07 17:02:23 -08:00
Ehsan Akhgari
1b83407ce9 Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc
This patch was automatically generated by the following script:

#!/bin/bash
# Command to convert PRUnichar to char16_t

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*modules/libmar*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name prtypes.h \
       ! -name Char16.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRUnichar char16_t
2014-01-04 10:02:17 -05:00
Nicholas Nethercote
91175eb896 Bug 955942 (part 2) - Remove MemoryUniReporter. r=mccr8.
--HG--
extra : rebase_source : 9d70016cb19637ffece6409a184bf41d574cc6b4
2013-12-07 22:09:10 -08:00
Nicholas Nethercote
9366b60202 Bug 955942 (part 1) - Remove unnecessary nsIMemoryReporter qualifiers from UNITS_* and KIND_* constants. r=mccr8.
--HG--
extra : rebase_source : f760568c08af03d9fec316bf95e7d4388078a03d
2013-12-11 11:59:39 -08:00
Nathan Froyd
4e5308cf32 Bug 946781 - part 4 - revert measuring the proto and iface cache on nsGlobalWindow (bug 922094); r=me 2013-12-06 13:11:53 -05:00
Nicholas Nethercote
6e5e55931d Bug 947798 (part 1) - Rename NS_MEMORY_REPORTER_MALLOC_SIZEOF_FUN as MOZ_DEFINE_MALLOC_SIZE_OF. r=mccr8.
--HG--
extra : rebase_source : ec09d4c31264c15befb020375bf001a1ad1df6b8
2013-12-07 21:38:32 -08:00
Nathan Froyd
cd5c4eb51e Bug 922094 - part 1 - report proto/iface cache size to about:memory; r=njn
This is just the nsWindowMemoryReporter bits; the actual measurements come later.
2013-11-21 09:13:31 -05:00
Nicholas Nethercote
39004db706 Bug 936964 (part 7, attempt 2) - Make lots of classes report their own memory consumption, instead of using a separate reporter class. r=mccr8,sr=bz.
* * *
Bug 936964 (part 7b) - Fix a use-after-free found by ASan.

--HG--
extra : rebase_source : d38ab6b63e9d576773baf8e55fa4f7182c33915e
2013-11-07 16:35:30 +11:00
Nicholas Nethercote
b827292c98 Bug 943660 (attempt 2) - Remove nsIMemoryReporter::name, because it's (a) unused and (b) a bad idea. r=mccr8.
--HG--
extra : rebase_source : 4381c3c424e34198b83c45fa0ac0d9a670bab2b8
2013-11-26 18:38:50 -08:00
Ehsan Akhgari
a903aefdc0 Backed out 9 changesets (bug 943660, bug 936964) because of ASAN use-after-free crashes on browser-chrome and mochitest-other
Backed out changeset 85486c4aa3d8 (bug 936964)
Backed out changeset 25312eb71998 (bug 936964)
Backed out changeset 6dbb8333960c (bug 936964)
Backed out changeset da6465ad476f (bug 936964)
Backed out changeset a87ffc992f38 (bug 936964)
Backed out changeset 4ae3a61182db (bug 936964)
Backed out changeset 34e9c3137804 (bug 936964)
Backed out changeset fd1459e71585 (bug 936964)
Backed out changeset 3e8a701d8bdc (bug 943660)

Landed on a CLOSED TREE

--HG--
rename : content/canvas/src/WebGLMemoryTracker.h => content/canvas/src/WebGLMemoryReporterWrapper.h
2013-11-27 20:05:00 -05:00
Nicholas Nethercote
bc475c75df Bug 936964 (part 7) - Make lots of classes report their own memory consumption, instead of using a separate reporter class. r=mccr8,sr=bz.
--HG--
rename : content/canvas/src/WebGLMemoryReporterWrapper.h => content/canvas/src/WebGLMemoryTracker.h
extra : rebase_source : 611e8d35907959b163aeced1c4ffe1d265048fe6
2013-11-07 16:35:30 +11:00
Nicholas Nethercote
19f2e8fdea Bug 943660 - Remove nsIMemoryReporter::name, because it's (a) unused and (b) a bad idea. r=mccr8.
--HG--
extra : rebase_source : f2ccff7972d7161e2290fd3db70463524c55f230
2013-11-26 18:38:50 -08:00
Birunthan Mohanathas
98f3b9652a Bug 784739 - Switch from NULL to nullptr in dom/ (1/2); r=ehsan 2013-10-28 10:04:12 -04:00
Nils Maier
ccc8856587 Bug 929297 - Part 2: Avoid calling amIAddonManager in reporters off the main process. r=njn 2013-10-28 04:53:00 +00:00
Kyle Huey
dd9f94690a Bug 904720: Count event listeners. r=njn,smaug 2013-10-28 17:47:18 +08:00
Nicholas Nethercote
dac7e13e71 Bug 918207 - Support per-tab memory profiling. r=billm,mccr8,till,smaug,nfroyd.
--HG--
extra : rebase_source : 7603eaedbd761c6b231b1b911f719388864755e6
2013-10-22 14:53:26 -07:00
Nicholas Nethercote
75f194c48c Bug 921923 (part 3) - Make multi-output sizeOfFoo() functions more consistent in content/, dom/ and layout/. r=till.
--HG--
extra : rebase_source : ac8aebe86b4b7ee5acc0f541be5645abf73b6a98
2013-09-30 16:20:23 -07:00
Nicholas Nethercote
dc5c29f71c Bug 913260 (part 4) - Use distinguished amounts for all the memory measurements done by telemetry. r=mccr8.
CLOSED TREE
2013-09-19 15:52:30 -07:00
Nicholas Nethercote
0069cbfda7 Bug 913260 (part 2) - Tweak ghost window reporters. r=mccr8. 2013-09-18 19:01:29 -07:00
Phil Ringnalda
12216d4f00 Backed out 3 changesets (bug 913260)
CLOSED TREE

Backed out changeset 9195be8a50cb (bug 913260)
Backed out changeset 09c71a3e7b85 (bug 913260)
Backed out changeset 8a8691a26012 (bug 913260)
2013-09-24 20:31:00 -07:00
Nicholas Nethercote
a51a1d18a4 Bug 913260 (part 4) - Use distinguished amounts for all the memory measurements done by telemetry. r=mccr8.
--HG--
extra : rebase_source : 0e9db51b137770ba7db15a99a4ec1e87071d2f47
2013-09-19 15:52:30 -07:00
Nicholas Nethercote
7bdc4e988e Bug 913260 (part 2) - Tweak ghost window reporters. r=mccr8.
--HG--
extra : rebase_source : db98ac69096f942608ead78709265609593e85d6
2013-09-18 19:01:29 -07:00
Nicholas Nethercote
fbf85946b7 Bug 911641 (part 1) - Remove about:compartments, and show the compartment and ghost window lists into about:memory. r=johns.
--HG--
extra : rebase_source : c1ef005e272048e2eb84b20bafff15bcb5aae511
2013-09-03 20:05:17 -07:00