Commit graph

62 commits

Author SHA1 Message Date
Sylvestre Ledru
17f939518a bug 1617532 - js/ replace typedef by using r=jandem
Done with:
./mach static-analysis check --checks="-*, modernize-use-using" --fix js/

Differential Revision: https://phabricator.services.mozilla.com/D63821

--HG--
extra : moz-landing-system : lando
2020-02-24 11:08:17 +00:00
Nicholas Nethercote
18fae65f38 Bug 1563139 - Remove StaticPrefs.h. r=glandium
This requires replacing inclusions of it with inclusions of more specific prefs
files.

The exception is that StaticPrefsAll.h, which is equivalent to StaticPrefs.h,
and is used in `Codegen.py` because doing something smarter is tricky and
suitable for a follow-up. As a result, any change to StaticPrefList.yaml will
still trigger recompilation of all the generated DOM bindings files, but that's
still a big improvement over trigger recompilation of every file that uses
static prefs.

Most of the changes in this commit are very boring. The only changes that are
not boring are modules/libpref/*, Codegen.py, and ServoBindings.toml.

Differential Revision: https://phabricator.services.mozilla.com/D39138

--HG--
extra : moz-landing-system : lando
2019-07-26 01:10:23 +00:00
Barret Rennie
6fc21f48e9 Bug 1289211 - Rename InfallibleTArray to nsTArray in js/ r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D36962

--HG--
extra : moz-landing-system : lando
2019-07-10 03:31:42 +00:00
Nicholas Nethercote
5ee5242716 Bug 1563996 - Make dom.ipc.cpows.log.{enabled,stack} static prefs. r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D37199

--HG--
extra : moz-landing-system : lando
2019-07-09 07:58:24 +00:00
Tooru Fujisawa
7983faeb5d Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
Benjamin Bouvier
a7f1d173a0 Bug 1511383: Update vim modelines after clang-format; r=sylvestre
- modify line wrap up to 80 chars; (tw=80)
- modify size of tab to 2 chars everywhere; (sts=2, sw=2)

--HG--
extra : rebase_source : 7eedce0311b340c9a5a1265dc42d3121cc0f32a0
extra : amend_source : 9cb4ffdd5005f5c4c14172390dd00b04b2066cd7
2018-11-30 16:39:55 +01:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Jan de Mooij
6b342c5c13 Bug 1490632 - Always use braces for if/for/while statements in js/ipc. r=evilpie
Differential Revision: https://phabricator.services.mozilla.com/D5661

--HG--
extra : moz-landing-system : lando
2018-09-12 20:04:14 +00:00
Nicholas Nethercote
b9e071e2e8 Bug 1481998 - Make mozilla::Hash{Map,Set}'s entry storage allocation lazy. r=luke,sfink
Entry storage allocation now occurs on the first lookupForAdd()/put()/putNew().
This removes the need for init() and initialized(), and matches how
PLDHashTable/nsTHashtable work. It also removes the need for init() functions
in a lot of types that are built on top of mozilla::Hash{Map,Set}.

Pros:

- No need for init() calls and subsequent checks.

- No memory allocated for empty tables, which are not that uncommon.

Cons:

- An extra branch in lookup() and lookupForAdd(), but not in put()/putNew(),
  because the existing checkOverloaded() can handle it.

Specifics:

- Construction now can take a length parameter.

- init() is removed. Explicit length-setting, when necessary, now occurs in the
  constructors.

- initialized() is removed.

- capacity() now returns zero when the entry storage is absent.

- lookupForAdd() is no longer `const`, because it can instantiate the storage,
  which requires modifications.

- lookupForAdd() can now return an invalid AddPtr in two cases:

  - old: hashing failure (due to OOM in the hasher)

  - new: OOM while instantiating entry storage

  The existing failure handling paths for the old case work for the new case.

- clear(), finish(), and clearAndShrink() are replaced by clear(), compact(),
  and reserve(). The old compactIfUnderloaded() is also removed.

- Capacity computation code is now in its own functions, bestCapacity() and
  hashShift(). setTableSizeLog2() is removed.

- uint32_t is used throughout for capacities, instead of size_t, for
  consistency with other similar values.

- changeTableSize() now takes a capacity instead of a deltaLog2, and it can now
  handle !mTable.

Measurements:

- Total source code size is reduced by over 900 lines. Also, lots of existing
  lines got shorter (i.e. two checks were reduced to one).

- Executable size barely changed, down by 2 KiB on Linux64. The extra branches
  are compensated for by the lack of init() calls.

- Speed changed negligibly. The instruction count for Bench_Cpp_MozHash
  increased from 2.84 billion to 2.89 billion but any execution time change was
  well below noise.
2018-08-10 18:00:29 +10:00
Alex Gaynor
3dc2139816 Bug 1465860 - Don't crash in JS IPC on invalid object id. r=evilpie
Instead, return an error up to the caller, who can return an IPC error, which
will kill the child. This is significantly friendlier to fuzzing.

MozReview-Commit-ID: C67xSqUeN1i
2018-05-31 16:29:03 -04:00
Chris Peterson
37efe4d0e6 Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj
MozReview-Commit-ID: DCPTnyBooIe

--HG--
extra : rebase_source : cfec2d96faeb11656d86d760a34e0a04cacddb13
extra : intermediate-source : 6176724d63788b0fe8caa3f91607c2d93dbaa7ec
extra : source : eebbb0600447f9b64aae3bcd47b4be66c02a51ea
2017-11-05 19:37:28 -08:00
Ehsan Akhgari
b940c3d6e8 Bug 1382339 - Improve SpiderMonkey hashing functions by using MFBT's HashGeneric more; r=jandem 2017-07-20 12:59:09 -04:00
Jon Coppeard
57137dea9d Bug 1352430 - Add barrier to CPOWs table to remove dying objects r=billm
--HG--
extra : rebase_source : a923df26fc706615b248191cf544a372ff357bd4
2017-04-26 11:18:53 +01:00
Jon Coppeard
72039bc43f Bug 1318384 - Don't trigger pre barrier in WrapperAnswer::RecvDropObject r=billm 2016-11-18 13:18:09 +00:00
David Major
143b6829de Bug 1311825: Pass by reference in fromObjectVariant and related methods. r=billm
MozReview-Commit-ID: GIhK1zRMsYb

--HG--
extra : rebase_source : 7da47ec2ea86e73c9d00cd4e6c1e5c830a54d7e1
2016-10-20 15:37:26 -05:00
Bill McCloskey
cbd15a0459 Bug 1311212 - Add dead CPOW debugging facility (r=mrbkap) 2016-10-19 16:26:23 -07:00
Terrence Cole
0edc10380c Bug 1297558 - Use a read barrier on Heap to ExposeToActiveJS r=sfink r=mccr8 2016-02-07 09:08:55 -08:00
Jan de Mooij
b066365085 Bug 1292892 part 7 - Remove unnecessary JSContext arguments from IPC classes. r=bz 2016-08-11 14:39:23 +02:00
Jan de Mooij
0ad12515f4 Bug 1292892 part 1 - Stop using JSRuntime outside SpiderMonkey. r=bz,terrence,fitzgen,kanru 2016-08-11 14:39:22 +02:00
Terrence Cole
8e2294b2b6 Bug 1267699 - Move some public types to the right namespace; r=sfink
--HG--
extra : rebase_source : f79f7d86aab708b86a65e6f2426baeb8488f47e5
2016-04-26 09:18:48 -07:00
Jon Coppeard
33af1ea84b Bug 1268085 - Remove unused post barrier callbacks r=terrence 2016-04-29 10:44:22 +01:00
Tom Schuster
180499c4ff Bug 1242214 - Rename JSPropertyDescriptor JS::PropertyDescriptor in js. r=sstangl 2016-01-28 11:28:04 +01:00
Terrence Cole
020b367913 Bug 1226732 - Use stable hashing and builtin sweeping for ipc::ObjectIdMap; r=billm
--HG--
extra : rebase_source : 9dc40a8f2573fd190d9c86a5a88b57dcb41e0771
2015-11-25 11:59:09 -08:00
Jon Coppeard
53f8300f7e Bug 1165054 - Fix inbound bustage due to missing explicit on single arg constructor r=me 2015-07-15 11:27:27 +01:00
Jon Coppeard
aacda4f6e2 Bug 1165054 - Add API to clear postbarrier callbacks and use it when CPOW tables are destroyed r=terrence 2015-07-15 10:22:04 +01:00
Andrea Marchesini
a4369a04c4 Bug 1156632 - Remove unused forward class declarations - patch 7 - JS, r=sfink 2015-04-22 08:29:26 +02:00
Jan de Mooij
b8b1677f0f Bug 1144366 - Switch SpiderMonkey and XPConnect style from |T *t| to |T* t|. r=jorendorff 2015-03-28 23:22:11 +01:00
Phil Ringnalda
c8a25251c1 Backed out changeset 0c030f97a04f (bug 1144366) for being on top of patches being backed out
CLOSED TREE
2015-03-28 10:39:56 -07:00
Jan de Mooij
8d6d44ecb8 Bug 1144366 - Switch SpiderMonkey and XPConnect style from |T *t| to |T* t|. r=jorendorff 2015-03-28 12:08:37 +01:00
Bill McCloskey
2f3d90830b Bug 1123461 - Make a real interface for js/ipc (r=dvander) 2015-01-26 13:32:18 -08:00
Bill McCloskey
5c867be0e8 Bug 1119753 - Fix CPOW GC crash (r=jonco) 2015-01-16 09:56:30 -08:00
Bill McCloskey
3b3399bdc4 Bug 1077587 - Handle non-existent properties in CPOW descriptor code (r=mrbkap) 2014-10-20 09:47:27 -07:00
Tom Schuster
07191c41f8 Bug 1071177 - Add support for well-known and registered symbols as CPOW jsids. r=billm,jorendorff 2014-10-07 11:29:03 +02:00
Tom Schuster
eec11c26a0 Bug 1071177 - Introduce JSIDVariant type for CPOWs. r=billm 2014-10-07 11:29:02 +02:00
Andrew McCreight
9d6136ff7b Bug 1073597, part 3 - Lazify creation of the CPOW manager in CpowIdHolder. r=billm 2014-10-06 15:45:42 -07:00
Bobby Holley
8e8a7d28c3 Bug 1065811 - Track Xray waivers with CPOWs. r=billm 2014-09-25 13:13:29 +02:00
Bobby Holley
8b65a1f10b Bug 1065811 - Clean up ObjectId handling with static type checking. r=billm
While adding the CPOW flag for xray waivers, I discovered a bunch of
inconsistency and sloppiness with respect to our handling of object ids,
and a general lack of clarity about when the id included flags or not. Given
the fact that I'm removing static callability for CPOWs, we _could_ just get
rid of the flags, and store the xray waiver state on the answer-side only. But
I eventually decided that these kinds of flags (which are accessible to both
the Answer _and_ the Owner) had enough potential utility that they were worth
cleaning up.

It's worth noting that that utility comes with the large caveat that the flags
can't be trusted for security-sensitive decisions (at least in the parent->child
case), since they could be forged by a compromised child.
2014-09-25 13:13:29 +02:00
Jon Coppeard
132fb38dd4 Bug 650161 - Unify the finalization and moving GC callbacks into a weak pointer update callback r=terrence r=bholley 2014-09-24 12:54:11 +01:00
Bobby Holley
2a5e5e2d96 Bug 1052096 - Move CPOW targets into the privileged/unprivileged junk scope of the child/parent. r=billm 2014-09-12 17:41:18 -07:00
Jon Coppeard
fbd9cb9af7 Bug 650161 - Add moving GC callback and use it to fix up ipc CPOW tables r=terrence 2014-09-02 11:07:22 +02:00
Ehsan Akhgari
ddca1158ca Bug 1060988 - Fix more bad implicit constructors in JS IPC code; r=billm 2014-08-31 21:10:16 -04:00
Bill McCloskey
14b0872617 Bug 1052093 - Child->parent CPOWs should go through COWs in the parent for security (r=bholley) 2014-08-20 12:49:10 -07:00
Tom Schuster
8f9489bd37 Bug 957742 - Logging for CPOWs (r=mrbkap) 2014-05-28 18:05:22 -07:00
Bill McCloskey
b41a921d12 Bug 996785 - Fix CPOW wrapping and compartment ownership (r=mrbkap) 2014-05-16 16:40:37 -07:00
Bill McCloskey
b4170c4e66 Bug 996785 - Bidirectional CPOWs (r=mrbkap) 2014-05-16 16:40:37 -07:00
Bill McCloskey
c9f2d3779d Bug 996785 - Distinguish local and remote CPOW objects in IPDL (r=mrbkap) 2014-05-16 16:40:36 -07:00
Bill McCloskey
60d6a2696c Bug 996785 - Use separate maps for local and remote CPOW objects (r=mrbkap) 2014-05-16 16:40:36 -07:00
Bill McCloskey
42b76f44bb Bug 996785 - Rename CPOW makeId/unwrap (r=mrbkap) 2014-05-16 16:40:35 -07:00
Bill McCloskey
29e7a9ce1d Bug 996785 - Rename CPOW toValue (r=mrbkap) 2014-05-16 16:40:35 -07:00
Bill McCloskey
2c11e044b8 Bug 996785 - Rename CPOW findObject (r=mrbkap) 2014-05-16 16:40:35 -07:00