Commit Graph

65 Commits

Author SHA1 Message Date
Masatoshi Kimura
2bd7ff970c Bug 1353936 - Use PREF_RegisterPriorityCallback from Add*VarCache. r=froydnj
MozReview-Commit-ID: LOxPTBqol9X
2017-04-12 00:17:52 +09:00
Eric Rahm
095679bd51 Bug 1354613 - Part 3: Stop mutating the pref branch name when retrieving it. r=froydnj
This adds a PrefName wrapper that allows use to avoid copying the pref name
string in the fast root pref branch case, but also allows to create a new
string in the slower non-root pref branch case. By creating a new string we
avoid the odd behavior of mutating the pref branch name with each retrieval.

MozReview-Commit-ID: HGCLbpGmKrr
2017-04-11 14:00:19 -07:00
Nathan Froyd
123e845cc2 Bug 1355097 - adjust asserts in Preferences::InitStaticMembers to account for Stylo; r=Manishearth 2017-04-11 09:39:32 -04:00
Boris Zbarsky
09dcca5362 Bug 1343677 part 1. Add a way to get the current preferences init phase in debug builds. r=billm
MozReview-Commit-ID: JtHhLuFDu2d
2017-03-16 17:43:17 -04:00
Brad Lassey
f4fe4c7e90 bug 1341414 - Functions like GetBoolVarCache shouldn't assert when used early in startup r=billm 2017-02-21 22:17:52 -05:00
Brad Lassey
c91080f3e8 bug 1303096 - Stop sending sync messages soon after content process start-up r=billm 2017-02-05 00:52:38 -05:00
Sebastian Hengst
fc3db3338c Backed out changeset e9d8a75a0dcc (bug 1303096) for failing various tests on Android 4.3 debug (e.g. test_saveHeapSnapshot_e10s_01.html). r=backout 2017-02-05 10:26:28 +01:00
Brad Lassey
c50cf62b3a bug 1303096 - Stop sending sync messages soon after content process start-up r=billm 2017-02-05 00:52:38 -05:00
Nicholas Nethercote
1009bf0056 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.
2016-08-24 15:23:45 +10:00
Nicholas Nethercote
1f65390cc9 Bug 1293603 (part 2) - Make Run() declarations consistent. r=erahm.
This patch makes most Run() declarations in subclasses of nsIRunnable have the
same form: |NS_IMETHOD Run() override|.

As a result of these changes, I had to add |override| to a couple of other
functions to satisfy clang's -Winconsistent-missing-override warning.
2016-08-08 12:18:10 +10:00
Milan Sreckovic
74d8142b5e Bug 1287945: Return the number of modified/filled preferences and use it for subsequent operations. r=aklotz 2016-07-19 15:10:00 +02:00
Milan Sreckovic
ab9728605f Bug 1287215: Replace preferences gDirty global with a callback. r=aklotz,Gijs
MozReview-Commit-ID: 7m5d5ddMTva
2016-07-21 15:46:15 -04:00
David Anderson
3d762f8e5b Don't initialize gfxPrefs with libpref in the GPU process. (bug 1280822 part 1, r=milan) 2016-06-26 23:33:14 -07:00
Wes Kocher
e8a95e7b8e Backed out 4 changesets (bug 1280822) for leaking nsTArray_base
Backed out changeset b9a0567cd7c1 (bug 1280822)
Backed out changeset 93d483583ffa (bug 1280822)
Backed out changeset 91715d8e468f (bug 1280822)
Backed out changeset 3db77f57cef4 (bug 1280822)
2016-06-24 14:43:41 -07:00
David Anderson
a79bd8dfaf Don't initialize gfxPrefs with libpref in the GPU process. (bug 1280822 part 1, r=milan) 2016-06-24 16:14:45 -07:00
Andrew McCreight
10b3af16c8 Bug 1272707, part 2 - Limit the size of preference values sent to child processes. r=bsmedberg
Don't send any preferences that have a string value that is longer
than MAX_ADVISABLE_PREF_LENGTH. This is intended to mitigate OOM
issues, as I've seen a parent process crash trying to create a 100mb
message to send to the child. Such users likely cannot use e10s at
all.

This has a test for all combinations of setting the default and user
values of a preference to large or small string values, or not setting
them at all.

I manually verified that filtering out preferences reduces the size of
the IPC::Message that is sent to the child by printing out the size of
the reply message in PContentParent::OnMessageReceived().
2016-05-17 07:55:49 -07:00
Matt Woodrow
b1d0854b91 Bug 1267868 - Make AddXXXVarCache only match exact prefs, not prefixes. r=froydnj 2016-05-04 12:26:04 +12:00
Kyle Huey
a9cf047227 Bug 1265927: Move nsRunnable to mozilla::Runnable, CancelableRunnable to mozilla::CancelableRunnable. r=froydnj 2016-04-25 17:23:21 -07:00
Milan Sreckovic
cd2ff937bd Bug 278878: Send preference parsing errors to browser console. r=bsmedberg
MozReview-Commit-ID: 61mi71dZbO8
2016-04-22 15:35:01 -04:00
Julian Seward
f8a03c5645 Bug 1248915 - TSan: data race on global 'mozilla::net::CacheObserver::sDiskCacheCapacity'. r=honzab.moz, n.nethercote. 2016-03-20 10:08:57 +01:00
Milan Sreckovic
11e493fbf0 Bug 1249157 - prefapi enums into class enums, explicit conversion, cleanup. r=bsmedberg 2016-02-22 09:15:00 +01:00
Wes Kocher
ae635353f0 Backed out changeset dd911452e3f7 (bug 1249157) for build bustage CLOSED TREE 2016-02-22 09:05:21 -08:00
Milan Sreckovic
99fb6d585a Bug 1249157: prefapi enums into class enums, explicit conversion, cleanup. r=bsmedberg
MozReview-Commit-ID: nvvOD8ajV4
2016-02-18 13:27:06 -05:00
Nicholas Nethercote
d92d4e2f85 Bug 1245393 - Measure s{,Default}RootBranch in the Preferences memory reporter. r=froydnj. 2016-02-03 17:30:54 +11:00
Nicholas Nethercote
a3075921de Bug 1244982 - Fix minor double-reporting of memory in prefs code. r=erahm. 2016-02-02 14:31:49 +11:00
Nathan Froyd
a03245caa6 Bug 1233234 - part 3 - clean up UniquePtr usage in WritePrefFile; r=njn
We shouldn't use .get() on UniquePtr<T[]> unless we have to, and it
makes the code clearer to not use pointer incrementing in any event.
2015-12-06 09:11:55 -05:00
Nathan Froyd
07075c6d53 Bug 1233234 - part 2 - use UniquePtr<T[]> instead of nsAutoArrayPtr<T> in pref_savePrefs; r=njn
Returning outparams with UniquePtr is not convenient or idiomatic, so in
addition to removing nsAutoArrayPtr usage, let's return a UniquePtr from
the function directly.
2015-12-06 09:06:02 -05:00
Nathan Froyd
b70ec85a67 Bug 1233234 - part 1 - use UniquePtr<T[]> instead of nsAutoArrayPtr<T> in openPrefFile; r=njn 2015-12-06 08:13:36 -05:00
Birunthan Mohanathas
2c5aca20d5 Bug 1227569 - Remove unsupported OpenVMS code. r=mccr8 2015-12-18 15:02:50 +02:00
Nicholas Nethercote
3c5c5ea7b2 Bug 1187152 (part 3) - Replace nsBaseHashtable::Enumerate() calls in modules/ with iterators. r=froydnj. 2015-11-22 18:52:40 -08:00
Nathan Froyd
a97571864c Bug 1219310 - part 2 - keep track of how much pref file we have read; r=njn
Looking at a preference file read with strace typically looks like:

open("...", O_RDONLY) = X
...
read(X, "...", SIZE) = SIZE
read(X, "...", SIZE) = 0
...

There's no reason to call Read() and make another syscall to determine
there's no data left for reading.  We can keep track of how much we've
read at minimal cost and thus determine for ourselves when we are done.
2015-10-28 12:19:03 -04:00
Nathan Froyd
bcbf008c3b Bug 1219310 - part 1 - ask the prefs file for its size directly; r=njn
Calling nsIInputStream::Available on nsIFileInputStreams is relatively
expensive, as it requires three system calls: one to determine the
current file position, one to seek to the end file position, and one to
rewind to the previous file position.

We can do better by asking the file for its size directly, prior to
opening the stream.  This only requires one system call, stat, and is
thus superior--at least in considering the number of system calls.
2015-10-28 12:16:33 -04:00
Nathan Froyd
4e6d8f6705 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
2015-10-18 01:24:48 -04:00
Xidorn Quan
b0a352bfd1 Bug 1213123 - Make Preferences::SetString accept char16ptr_t instead of char16_t*. r=froydnj 2015-10-10 12:19:23 +11:00
Nicholas Nethercote
2087a666fc Bug 1201135 - Rename pldhash.{h,cpp} to PLDHashTable.{h,cpp}. r=mccr8. 2015-09-15 20:49:53 -07:00
Nicholas Nethercote
dd37a3b4b2 Bug 1189156 (part 4) - Don't use enumeration style for nsBaseHashtable::SizeOf{In,Ex}cludingThis(). r=erahm,jfkthame.
After this change, we have ShallowSizeOf{In,Ex}cludingThis(), which don't do
anything to measure children. (They can be combined with iteration to measure
children.)
2015-07-30 21:19:57 -07:00
Nicholas Nethercote
d904560d80 Bug 1189156 (part 1) - Don't use enumeration style for PLDHashTable::SizeOf{In,Ex}cludingThis(). r=froydnj.
After this change, we have PLDHashTable::ShallowSizeOf{In,Ex}cludingThis(),
which don't do anything to measure children. (They can be combined with
iteration to measure children.)

This patch also removes the PL_DHashTableSizeOf{In,Ex}cludingThis() functions.
They're not necessary because the methods can be used instead.

Finally, the patch deliberately converts some SizeOfExcludingThis() calls to
SizeOfIncludingThis(). These are all done on heap pointers so this change is
valid.
2015-07-29 22:28:20 -07:00
Nicholas Nethercote
37d91ed8fe Bug 1188745 - Rename nsTArray::SizeOfExcludingThis() as ShallowSizeOfExcludingThis(). r=froydnj.
This makes it clearer that, unlike how SizeOf*() functions usually work, this
doesn't measure any children hanging off the array.

And do likewise for nsTObserverArray.
2015-07-28 23:24:24 -07:00
Birunthan Mohanathas
a29151dc87 Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Emanuel Hoogeveen
b30abdc582 Bug 905127 - Part 1 - Make some functions from nsNetUtil not inline. r=jduell 2015-07-07 04:17:00 +02:00
Juan Gomez
89035d527e Bug 1171931 - Refactor duplicated code using XRE_IsParent/ContentProcess. r=froydnj 2015-07-03 18:29:00 -07:00
Nicholas Nethercote
94740b1d75 Bug 1176159 (part 2) - Remove uses of PL_DHashTableEnumerate() from libpref. r=bsmedberg. 2015-06-18 17:58:24 -07:00
Nicholas Nethercote
7b7d940e0f Bug 1176159 (part 1) - Remove pref_SaveTypes. r=bsmedberg.
Because SAVE_ALL is the only value ever used.
2015-06-18 16:44:35 -07:00
Ryan VanderMeulen
7aba9d7002 Backed out changeset 8b4e4083639e (bug 1171931) for B2G debug emulator bustage. 2015-06-25 19:48:42 -04:00
Juan Gomez
7323e89a40 Bug 1171931 - Refactor duplicated code using XRE_IsParent/ContentProcess. r=froydnj 2015-06-24 14:11:00 -04:00
Nicholas Nethercote
9e2cc08e4a Bug 1171309 - Remove PREF_Init()'s return value. r=bsmedberg.
This is now possible because PLDHashTable initialization is infallible.
2015-06-04 16:14:48 -07:00
Nicholas Nethercote
dab477d3b3 Bug 1165768 (part 7) - Convert |gHashTable| to |PLDHashTable2*|. r=froydnj. 2015-05-18 00:52:08 -07:00
Nicholas Nethercote
594f872fe6 Back out all four patches from bug 1161377. r=me.
Due to Android startup regressions (bug 1163066) and plugin crashes (bug
1165155).
2015-05-14 21:48:43 -07:00
Nicholas Nethercote
35cc1f7af7 Bug 1161377 (part 2.5) - Move all static PLDHashTable instances onto the heap to avoid static constructors. r=froydnj. 2015-05-12 17:33:22 -07:00
Mike Hommey
4d93988786 Bug 1134923 - Remove NS_Alloc/NS_Realloc/NS_Free. r=nfroyd
They are kept around for the sake of the standalone glue, which is used
for e.g. webapprt, which doesn't have direct access to jemalloc, and thus
still needs a wrapper to go through the xpcom function list and get to
jemalloc from there.
2015-05-01 09:40:30 +09:00