Commit Graph

88 Commits

Author SHA1 Message Date
Nick Fitzgerald
1685818a63 Bug 1254092 - TraceIncomingCCWs should work at the JSCompartment level of granularity. r=jimb
There can be multiple compartments within the same zone, only one of which is a
debuggee. In this scenario, CCWs from other compartments into the debuggee
compartment should be traced and treated as roots. Therefore, dealing with CCWs
at the JS::Zone level is incorrect, and this patch changes the granularity level
to JSCompartments. If you look at the callers and uses of the function, it makes
much more sense now.

Additionally, it renames `JS_TraceIncomingCCWs` to `JS::TraceIncomingCCWs`.

--HG--
rename : devtools/shared/heapsnapshot/tests/gtest/DoesCrossZoneBoundaries.cpp => devtools/shared/heapsnapshot/tests/gtest/DoesCrossCompartmentBoundaries.cpp
rename : devtools/shared/heapsnapshot/tests/gtest/DoesntCrossZoneBoundaries.cpp => devtools/shared/heapsnapshot/tests/gtest/DoesntCrossCompartmentBoundaries.cpp
2016-03-14 16:11:00 +01:00
Nick Fitzgerald
241e342004 Bug 961323 - Add a method for finding shortest retaining paths of JS::ubi::Node heap graphs; r=jimb
This commit adds `JS::ubi::ShortestPaths` which can find the N shortest
retaining paths starting from some root for any number of target nodes.
2016-02-11 10:38:00 +01:00
Nick Fitzgerald
70a5002b41 Bug 1247413 - Give JS::ubi::BreadthFirst handlers a non-const reference; r=jimb 2016-02-11 07:59:00 +01:00
Carsten "Tomcat" Book
b054cb159a Backed out changeset 09836ef7b0f6 (bug 961323) for bustage on a CLOSED TREE
--HG--
extra : rebase_source : 80a8d58487f1e56624bd06572e09cc07e4404fe2
2016-02-12 08:41:24 +01:00
Nick Fitzgerald
649d03679a Bug 961323 - Add a method for finding shortest retaining paths of JS::ubi::Node heap graphs; r=jimb
This commit adds `JS::ubi::ShortestPaths` which can find the N shortest
retaining paths starting from some root for any number of target nodes.
2016-02-11 10:38:00 +01:00
Terrence Cole
245c375321 Bug 1244365 - Remove Traceable; r=sfink
--HG--
extra : rebase_source : 8e6498b6e379b026c70b4ba7d13d30b664eef4ed
2016-01-29 16:56:11 -08:00
Luke Wagner
72ea23c63e Bug 1239601 - improve the UniquePtr situation (r=jandem)
--HG--
extra : commitid : JegWAoGsuQ9
extra : rebase_source : 995c1b6ab8e4fd3b83c44741cd84a2d7b0d934d7
2016-01-15 18:26:20 -06:00
Luke Wagner
6ebd19920f Bug 1239601 - improve the UniquePtr situation (r=jorendorff)
--HG--
extra : commitid : FwqWNSZ3SKY
extra : rebase_source : 75ed67bfadcbdaeb5bf89a57ad6ca9ef75b7f1f0
2016-01-15 18:26:06 -06:00
Nick Fitzgerald
11e1dd10a1 Bug 1226176 - Compute retained sizes in dominator trees and expose them to JavaScript; r=bz,sfink 2015-11-20 09:08:15 -08:00
Nick Fitzgerald
704858e786 Bug 1220031 - Add JS::ubi::Node::scriptFilename; r=sfink 2015-11-04 05:49:33 -08:00
Nick Fitzgerald
842b5596e6 Bug 1213436 - Reject core dumps with node IDs that don't fit in an IEEE 754 double; r=sfink 2015-10-13 11:59:00 +02:00
Nick Fitzgerald
30e17cfd82 Bug 1196461 - De-duplicate strings in heap snapshot core dumps; r=shu,jimb
This changeset replaces all of the

    // char16_t[]
    optional bytes someProperty = 1;

one- and two-byte string properties in the CoreDump.proto protobuf definition
file with:

    oneof {
        // char16_t[]
        bytes  someProperty    = 1;
        uint64 somePropertyRef = 2;
    }

The first time the N^th unique string is serialized, then someProperty is used
and the full string is serialized in the protobuf message. All following times
that string is serialized, somePropertyRef is used and its value is N.

Among the other things, this also changes JS::ubi::Edge::name from a raw pointer
with commented rules about who does or doesn't own and should and shouldn't free
the raw pointer to a UniquePtr that enforces those rules rather than relying on
developers reading and obeying the rules in the comments.
2015-09-30 16:03:31 -07:00
Nick Fitzgerald
b3dadc255e Bug 1206290 - Part 1: Implement a JS::ubi::PostOrder depth first traversal; r=sfink 2015-09-24 14:01:22 -07:00
Nick Fitzgerald
54a8708a3a Bug 1182653 - Use JSRuntime* instead of JSContext* in ubi::Node infrastructure; r=sfink
This enables the use of ubi::Node in situations where a JSContext* is not
available, and paves the way for debugging utilities to dump shortest paths from
GC roots to a given ubi::Node that can be used while paused in a debugger.
2015-09-23 09:39:56 -07:00
Nick Fitzgerald
e1f7ac5d49 Bug 1199216 - Implement JS::ubi::Node::size for JSScript referents; r=sfink 2015-09-22 12:15:23 -07:00
Nick Fitzgerald
6085d9d0f0 Bug 1199215 - Implement JS::ubi::Node::size for JS::Symbol referents; r=sfink 2015-09-22 12:15:23 -07:00
Nick Fitzgerald
6f88dbdf6e Bug 1206288 - Remove JS::ubi::SimpleEdge and make JS::ubi::Edge a concrete class; r=shu 2015-09-22 11:34:30 -07:00
Terrence Cole
eb27be9309 Bug 1199843 - Part 2: Use js::TraceChildren everywhere we don't need external linkage; r=jonco
--HG--
extra : rebase_source : 59ab475354a7d82dae761f55224da3402be59769
2015-09-02 09:01:02 -07:00
Jim Blandy
3220028411 Bug 1200345: Add comment to js/public/UbiNode.h warning about operating on graphs constructed by hostile code. DONTBUILD r=fitzgen
--HG--
extra : amend_source : 1b311d37f460547b8746e32305ac26994357c7ed
extra : histedit_source : defb2915ef54db03ed5481f0afea3eaa0bbf361c
2015-08-31 11:34:57 -07:00
Jim Blandy
b734c1b1fb Backed out changeset 297155cba060 for landing with the wrong bug number.
--HG--
extra : histedit_source : f09370f5222ab9fc04b476e25a0a3b079b8257bf
2015-08-31 20:17:59 -07:00
Jim Blandy
613198b0b0 Bug 1200482: Add comment to js/public/UbiNode.h warning about operating on graphs constructed by hostile code. DONTBUILD r=fitzgen
--HG--
extra : rebase_source : 31678939953dca924a407b81f5f9bcc9757d4969
extra : amend_source : 7df635066094051304ae71c1ed36e829d2e35ceb
2015-08-31 11:34:57 -07:00
Nick Fitzgerald
6c1a43618e Bug 1196634 - Part 4: Remove JS::ubi::Node::getCanonicalTypeName; r=sfink 2015-08-27 16:16:58 -07:00
Nick Fitzgerald
af148bc6a7 Bug 1196634 - Part 2: Serialize and deserialize coarseType; r=sfink 2015-08-27 16:16:58 -07:00
Nick Fitzgerald
ae6af42629 Bug 1196634 - Part 0: Define a JS::ubi::CoarseType enum; r=sfink
This commit defines the JS::ubi::CoarseType enum and a corresponding method
coarseType() on JS::ubi::Node base and concrete classes. It implements the
overrides for all concrete specializations whose referent does not belong to the
default Other type.
2015-08-27 16:16:57 -07:00
Nick Fitzgerald
791bfd6d0c Bug 1198980 - Make JS::ubi::*::identifier be uint64_t instead of uintptr_t. r=sfink 2015-08-27 09:17:00 -04:00
Nick Fitzgerald
2f4cac96c2 Bug 1196631 - Make JS::ubi::Node::size return 1 by default. r=sfink
The old default was zero, but one is a better default in a couple ways: (1)
there are no zero-sized things in C++ so one is closer to the truth, and (2) it
gives us an idea of what magnitude of space is consumed by node specializations
which don't have a JS::ubi::Node::size override yet.
2015-08-27 06:03:00 -04:00
Nick Fitzgerald
a2b0c4594a Bug 1139476 - Part 0: Add a takeCensus method to HeapSnapshot instances; r=sfink,bholley 2015-08-26 11:38:05 -07:00
Nick Fitzgerald
de13686cc6 Bug 1194424 - Part 3: Implement a concrete JS::ubi::StackFrame specialization backed by a frame deserialized from a core dump; r=sfink 2015-08-24 09:29:44 -07:00
Nick Fitzgerald
ecfd49638c Bug 1194426 - Add sourceLength and functionDisplayNameLength to JS::ubi::StackFrame. r=sfink
--HG--
extra : rebase_source : bddcd83e0e1e4f86bb22676ca8ff4d3240eaf6d3
2015-08-13 13:17:00 -04:00
Nick Fitzgerald
d93cd5e9a8 Bug 1187062 - Part 2: Implement a concrete JS::ubi::StackFrame class backed by js::SavedFrame; r=sfink 2015-08-14 17:49:06 -07:00
Nick Fitzgerald
9404d4d0bb Bug 1187062 - Part 1: Add the JS::ubi::StackFrame interface; r=sfink 2015-08-14 17:49:06 -07:00
Ehsan Akhgari
a056599e07 Bug 1188208 - Fix more constructors in js; r=jorendorff 2015-07-30 14:03:17 -04:00
Birunthan Mohanathas
a8939590de 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
Terrence Cole
7afa7dfb04 Bug 1173889 - Strongly type the CallbackTracer dispatch function; r=jonco, r=mccr8
--HG--
extra : rebase_source : 413319f0701f8e92b8fc1c79a51f4a09c2c5cd39
2015-06-11 10:03:33 -07:00
Nick Fitzgerald
2c6810accb Bug 1024774 - Part 11: Implement a JS::ubi::Node specialization for DeserializedNode; r=jimb 2015-05-28 07:37:43 -07:00
Nick Fitzgerald
94d5c16a2e Bug 1024774 - Part 8: Add JS::ubi::Node::isLive; r=jimb 2015-05-28 07:37:43 -07:00
Nick Fitzgerald
273a313f37 Bug 1024774 - Part 3: Serialize heap snapshots. r=jimb 2015-05-28 07:37:42 -07:00
Nick Fitzgerald
1f67f55353 Bug 1149397 - JS::ubi::Node::edges should return a mozilla::UniquePtr; r=jimb 2015-05-28 07:37:42 -07:00
Terrence Cole
c01ef51c2d Bug 1167453 - Rename JSGCTraceKind and make it a C++11 enum class; r=jonco
--HG--
extra : rebase_source : 7dbeee0826fa20477ed227c9d336fdfe6de6ffd2
2015-05-22 10:40:24 -07:00
Terrence Cole
ae93611ac6 Bug 1167313 - Simplify UbiNode::construct dispatch using CallTyped; r=jimb
--HG--
extra : rebase_source : 880f5856665bea34ba27913d9b6b533bd9cdd1a4
2015-05-21 11:41:18 -07:00
Nick Fitzgerald
fe7b1a60be Bug 1134865 - Part 3: Add JS::ubi::Node::jsObjectConstructorName; r=djvj 2015-04-27 10:57:06 -07:00
Jim Blandy
c454df3a32 Bug 1063257: Implement JS::ubi::Node::size for JSString. r=sfink
--HG--
extra : rebase_source : 64d8d124637ffab49089fa4151285b523e0c6f9e
2015-03-22 23:06:51 -07:00
Carsten "Tomcat" Book
bab9dbe9c4 Backed out 19 changesets (bug 1149397, bug 1065657, bug 1024774) for fixing Linux PGO xpcshell bustage on a CLOSED TREE
Backed out changeset 53058615e7a3 (bug 1024774)
Backed out changeset 68fe0894bb09 (bug 1065657)
Backed out changeset 1b9620d674df (bug 1024774)
Backed out changeset a31c514b59da (bug 1024774)
Backed out changeset 0fcf8757f6c2 (bug 1024774)
Backed out changeset 9a3c71b925d4 (bug 1024774)
Backed out changeset 783acc92af04 (bug 1024774)
Backed out changeset ad71c9a3446b (bug 1024774)
Backed out changeset 4f37e72e70f6 (bug 1024774)
Backed out changeset ec869578cc0a (bug 1024774)
Backed out changeset 3c1d306c8a3d (bug 1024774)
Backed out changeset b3a90f30892d (bug 1024774)
Backed out changeset cf7bbb3774c0 (bug 1024774)
Backed out changeset 2522eb4d3cf2 (bug 1024774)
Backed out changeset 89a502d88f9c (bug 1024774)
Backed out changeset 61046ad3161f (bug 1024774)
Backed out changeset 36706aaa2f06 (bug 1024774)
Backed out changeset ba8e68e05149 (bug 1149397)
Backed out changeset 532169437c2f (bug 1065657)

--HG--
rename : toolkit/components/protobuf/src/google/protobuf/extension_set.cc => toolkit/components/protobuf/google/protobuf/extension_set.cc
rename : toolkit/components/protobuf/src/google/protobuf/extension_set.h => toolkit/components/protobuf/google/protobuf/extension_set.h
rename : toolkit/components/protobuf/src/google/protobuf/stubs/atomicops_internals_pnacl.h => toolkit/components/protobuf/google/protobuf/generated_message_util.cc
rename : toolkit/components/protobuf/src/google/protobuf/stubs/stringprintf.h => toolkit/components/protobuf/google/protobuf/generated_message_util.h
rename : toolkit/components/protobuf/src/google/protobuf/io/coded_stream.cc => toolkit/components/protobuf/google/protobuf/io/coded_stream.cc
rename : toolkit/components/protobuf/src/google/protobuf/io/coded_stream.h => toolkit/components/protobuf/google/protobuf/io/coded_stream.h
rename : toolkit/components/protobuf/src/google/protobuf/io/coded_stream_inl.h => toolkit/components/protobuf/google/protobuf/io/coded_stream_inl.h
rename : toolkit/components/protobuf/src/google/protobuf/io/package_info.h => toolkit/components/protobuf/google/protobuf/io/package_info.h
rename : toolkit/components/protobuf/src/google/protobuf/service.cc => toolkit/components/protobuf/google/protobuf/io/zero_copy_stream.cc
rename : toolkit/components/protobuf/src/google/protobuf/io/zero_copy_stream.h => toolkit/components/protobuf/google/protobuf/io/zero_copy_stream.h
rename : toolkit/components/protobuf/src/google/protobuf/io/zero_copy_stream_impl.h => toolkit/components/protobuf/google/protobuf/io/zero_copy_stream_impl.h
rename : toolkit/components/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc => toolkit/components/protobuf/google/protobuf/io/zero_copy_stream_impl_lite.cc
rename : toolkit/components/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h => toolkit/components/protobuf/google/protobuf/io/zero_copy_stream_impl_lite.h
rename : toolkit/components/protobuf/src/google/protobuf/message_lite.cc => toolkit/components/protobuf/google/protobuf/message_lite.cc
rename : toolkit/components/protobuf/src/google/protobuf/message_lite.h => toolkit/components/protobuf/google/protobuf/message_lite.h
rename : toolkit/components/protobuf/src/google/protobuf/package_info.h => toolkit/components/protobuf/google/protobuf/package_info.h
rename : toolkit/components/protobuf/src/google/protobuf/repeated_field.cc => toolkit/components/protobuf/google/protobuf/repeated_field.cc
rename : toolkit/components/protobuf/src/google/protobuf/repeated_field.h => toolkit/components/protobuf/google/protobuf/repeated_field.h
rename : toolkit/components/protobuf/src/google/protobuf/stubs/common.cc => toolkit/components/protobuf/google/protobuf/stubs/common.cc
rename : toolkit/components/protobuf/src/google/protobuf/stubs/common.h => toolkit/components/protobuf/google/protobuf/stubs/common.h
rename : toolkit/components/protobuf/src/google/protobuf/stubs/hash.h => toolkit/components/protobuf/google/protobuf/stubs/hash.h
rename : toolkit/components/protobuf/src/google/protobuf/stubs/once.cc => toolkit/components/protobuf/google/protobuf/stubs/once.cc
rename : toolkit/components/protobuf/src/google/protobuf/stubs/once.h => toolkit/components/protobuf/google/protobuf/stubs/once.h
rename : toolkit/components/protobuf/src/google/protobuf/stubs/stl_util.h => toolkit/components/protobuf/google/protobuf/stubs/stl_util-inl.h
rename : toolkit/components/protobuf/src/google/protobuf/wire_format_lite.cc => toolkit/components/protobuf/google/protobuf/wire_format_lite.cc
rename : toolkit/components/protobuf/src/google/protobuf/wire_format_lite.h => toolkit/components/protobuf/google/protobuf/wire_format_lite.h
rename : toolkit/components/protobuf/src/google/protobuf/wire_format_lite_inl.h => toolkit/components/protobuf/google/protobuf/wire_format_lite_inl.h
2015-04-23 08:37:24 +02:00
Nick Fitzgerald
b9bae0d887 Bug 1024774 - Part 11: Implement a JS::ubi::Node specialization for DeserializedNode; r=jimb 2015-04-22 11:09:54 -07:00
Nick Fitzgerald
0e6dcee572 Bug 1024774 - Part 8: Add JS::ubi::Node::isLive; r=jimb 2015-04-22 11:09:54 -07:00
Nick Fitzgerald
32af3e9ef8 Bug 1024774 - Part 3: Serialize heap snapshots. r=jimb 2015-04-22 11:09:54 -07:00
Nick Fitzgerald
7c042bbbe2 Bug 1149397 - JS::ubi::Node::edges should return a mozilla::UniquePtr; r=jimb 2015-04-22 11:09:53 -07:00
Ryan VanderMeulen
7d1cb87298 Backed out changeset 47abda42667c (bug 1063257) jit-test failures. 2015-04-16 16:27:34 -04:00
Jim Blandy
1d40faa3cd Bug 1063257: Implement JS::ubi::Node::size for JSString. r=sfink
--HG--
extra : rebase_source : c126a5e626d666941b0fc657fbd7fcf1450e0e35
extra : histedit_source : f5cf97b77bf057c6ca47a072fde7b67e1f28e671
2015-03-22 23:06:51 -07:00
Jim Blandy
fc9d59392a Bug 1062473: Implement JS::ubi::Node::size for JSObjects. r=sfink,terrence
--HG--
extra : rebase_source : cc27cefa89ab9689cbfe7f62635a00c3363f4265
extra : histedit_source : fd7c1ca09c654b27536774d7b722319819dd74e0
2015-04-01 18:04:53 -07:00