Commit Graph

17725 Commits

Author SHA1 Message Date
Karl Tomlinson
ad9f69cbf9 bug 1328964 add CycleCollectedJSContext::GetAsWorkletJSContext() and use it in IsOnWorkletThread() r=smaug
MozReview-Commit-ID: BUujWXYho1G

--HG--
extra : rebase_source : 78bb6736f74bb59913bc9499fcfdf7b0baa7870d
2018-04-06 09:45:56 +12:00
Tristan Bourvon
a3a77c0312 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02:00
Nathan Froyd
7bb7ffd8c9 Bug 1453134 - part 1 - add a string input stream constructor that accepts move references; r=baku
This method is more efficient when we know we're not going to need the
string afterwards, and should cut down on intermediate allocations.
2018-04-11 10:06:17 -04:00
Jim Blandy
863f939532 Bug 1452410 - Simplify ThrottledEventQueue's shutdown behavior. r=froydnj 2018-04-06 14:44:42 -07:00
arthur.iakab
bbca7c7700 Merge mozilla-central to inbound 2018-04-11 01:17:20 +03:00
Coroiu Cristina
c22c3be855 Merge inbound to mozilla-central a=merge 2018-04-11 00:56:08 +03:00
Nika Layzell
944ff7f16d Bug 1444151 - Part 2: Make Rust's RefPtr::forget safe, r=froydnj 2018-04-10 17:49:49 -04:00
Nika Layzell
0c3ba13e4c Bug 1437167 - Part 1: Stop using PRIntervalTime as the argument to CondVar::Wait and Monitor::Wait, r=mstange, r=froydnj 2018-04-10 17:49:47 -04:00
Nika Layzell
58eeb66cb3 Bug 1438026 - Part 4: Remove the old nsPresState code completely, r=baku 2018-04-10 17:49:44 -04:00
Nika Layzell
06d6bb6d34 Bug 1429816 - Part 1: Bump syn and quote in xpcom. r=froydnj,mystor
--HG--
extra : rebase_source : 46d9431193b07658534bd5489477aadce7398e1a
2018-04-10 01:48:33 +02:00
Andrea Marchesini
ff755dfc70 Bug 1451731 - Synchronize access to various stream classes' async wait callback reference - part 3 - SlicedInputStream, r=mayhemer 2018-04-10 17:33:08 +02:00
Andreea Pavel
26f640b36b Backed out 4 changesets (bug 1366808) for Windows GPU leakchecks on a CLOSED TREE
Backed out changeset 23f60e5acaa2 (bug 1366808)
Backed out changeset bf2262b6aca8 (bug 1366808)
Backed out changeset 1fc82af3a155 (bug 1366808)
Backed out changeset 0649f0d9884b (bug 1366808)
2018-04-10 05:11:36 +03:00
Andrew McCreight
e0c2cdb52a Back out bug 1448454 for compile time and installer size regressions. r=mccr8 2018-04-09 10:24:00 +03:00
Venkatesh Pitta
2c25ef1a1c Bug 1427025 - Remove nsCRT::memmem. r=froydnj 2018-04-10 04:47:52 +10:00
Stephen A Pohl
b40a23754c Bug 1366808: Properly detect buildID mismatches between parent and child processes and display about:restartrequired to prompt the user to restart Firefox before proceeding. r=jimm,felipe,bz 2018-04-09 20:16:31 -04:00
Boris Zbarsky
c81f762d32 Bug 1452329. Remove nsIDOMXMLDocument. r=mystor
MozReview-Commit-ID: LwbVo7Fx1SQ
2018-04-09 16:30:33 -04:00
Boris Zbarsky
eb5f28a236 Bug 1452321. Remove nsIWebBrowserPersistable. r=mystor
MozReview-Commit-ID: CCw86gAtKn3
2018-04-09 16:30:33 -04:00
Boris Zbarsky
1483606219 Bug 1452235 part 4. Remove nsIDOMSerializer. r=qdot
MozReview-Commit-ID: 5foaztSLyEC
2018-04-09 16:30:33 -04:00
Boris Zbarsky
cbe438ff09 Bug 1452185 part 4. Remove nsIDOMXULElement. r=qdot
MozReview-Commit-ID: HfFtcj64z2Q
2018-04-09 16:30:32 -04:00
Eric Rahm
691c3159a1 Bug 1452288 - Use calloc for allocating PLDHashTable entries. r=froydnj
--HG--
extra : rebase_source : 73f3aba71dc8ad8bc23786153f2a22cdbf86f8dd
2018-04-06 16:51:58 -07:00
Nathan Froyd
038d4e78b8 Bug 1448544 - remove AutoVsyncTelemetry; r=farre
We had this for Quantum DOM, but that effort is stalled/dead, so we
should just remove the code and associated Telemetry histograms.
2018-04-07 11:54:03 -04:00
Brindusan Cristian
9adcf6af5a Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-04-07 13:00:30 +03:00
Boris Zbarsky
8c18063150 Bug 1452010 part 3. Remove nsIDOMDOMException. r=qdot
MozReview-Commit-ID: AFKzyxCyriJ
2018-04-06 23:29:13 -04:00
Bobby Holley
2b985ab718 Bug 1451421 - Add a ToLowerCaseASCII utility method for nsAtom. r=hisvonen 2018-04-06 15:30:15 -07:00
Paolo Amadini
44e022ac15 Bug 1451782 - Remove unused properties of XULElement. r=bz
This removes properties of XULElement that can easily seen to be unused, even if the attributes they control are still in use. There are other properties that may still be used once or twice, and they are not removed here.

MozReview-Commit-ID: IL6mCvtGQAG

--HG--
extra : rebase_source : 4b22b330d311ef22e3466f517c04d5a19512ab71
2018-04-05 17:10:28 +01:00
Andreea Pavel
7a4b9a3f56 Merge mozilla-inbound to mozilla-central. a=merge
--HG--
extra : rebase_source : 66bd87105d99036ada5008499ff0eaea579b531a
2018-04-06 13:20:21 +03:00
Boris Zbarsky
55cdcb3d94 Bug 1451929. Get rid of DOMCursor. r=qdot 2018-04-05 20:31:03 -04:00
Henri Sivonen
30451f997f Bug 1436330 - Add microbenchmarks for XPCOM string encoding conversions. r=froydnj
MozReview-Commit-ID: EloNhdnVaYm

--HG--
extra : rebase_source : 84796abc06ec1347db2abba23b1b487b9c5b22f8
2018-02-07 14:32:52 +02:00
Narcis Beleuzu
58b4822076 Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-04-05 01:09:42 +03:00
Boris Zbarsky
5ae1563978 Bug 1450422. Get rid of nsIDOMDataChannel. r=mystor
MozReview-Commit-ID: Dei5EEd0FZO
2018-04-04 15:32:19 -04:00
Andrew McCreight
aed6f3e8aa Bug 1448454 - Make some fields in xpt_struct.h private. r=njn
Many of these fields have accessors, and can only be read indirectly
by going through the XPTHeader data structure anyways, so they should
be marked private. This makes the generated XPT data file noisier due
to the need for constexpr constructors.

I had to fix the ctors for the classes in xptinfo.h to be less weird
because there was a compiler error.

Members in two of the classes need to be marked protected because they
have subclasses in xptinfo.h. Ideally those classes would be merged
in.

MozReview-Commit-ID: 70IdFAhp5je

--HG--
extra : rebase_source : 48cb1ec84c872b8fd6bb8c07f8ad2b47d0173f28
2018-03-26 14:06:01 -07:00
Tarek Ziadé
f9138cc6f4 Bug 1447768 - part 2 - Dispatch counters in the parent process - r=baku
Chromeutils.RequestPerformanceMetrics() is now composed of two parts:
- calls content processes via IPDL to get their counters
- directly dispatch counters from the parent process

MozReview-Commit-ID: HlgcEOzkyAq

--HG--
extra : rebase_source : 60e81a27cd3a1bf1378e6b977529964507633b63
2018-04-04 13:36:25 +02:00
Andreea Pavel
398805cbb6 Backed out changeset 5eaa657f6e06 (bug 1448454) for build bustages at /builds/worker/workspace/build/src/xpcom/typelib/xpt/xpt_struct.h:16 on a CLOSED TREE 2018-04-04 03:01:50 +03:00
Andrew McCreight
7c9d910f6d Bug 1448454 - Make some fields in xpt_struct.h private. r=njn
Many of these fields have accessors, and can only be read indirectly
by going through the XPTHeader data structure anyways, so they should
be marked private. This makes the generated XPT data file noisier due
to the need for constexpr constructors.

I had to fix the ctors for the classes in xptinfo.h to be less weird
because there was a compiler error.

Members in two of the classes need to be marked protected because they
have subclasses in xptinfo.h. Ideally those classes would be merged
in.

MozReview-Commit-ID: 70IdFAhp5je

--HG--
extra : rebase_source : a2670a65ace291defc47845c4058477f0ae5360a
2018-03-26 14:06:01 -07:00
Gijs Kruitbosch
3319ebe86f Bug 1451743 - remove getAddonBlocklistURL from nsIBlocklistService, r=florian
MozReview-Commit-ID: HSrOHIZ1MA

--HG--
extra : rebase_source : 271b94bc2e90979c78d665882437a87d0b9e96d6
2018-04-05 15:05:28 +01:00
Gijs Kruitbosch
d1bb2f7d29 Bug 1451487 - remove nsIBlocklistService::isAddonBlocklisted as it's unused, r=mossop
MozReview-Commit-ID: Ht9DgjliSoo

--HG--
extra : rebase_source : 27d0152d861cd2269e456267fd5091de394fb132
2018-04-04 22:01:08 +01:00
Honza Bambas
31c173ca8a Bug 1443892 - Add -MOZ_LOG and -MOZ_LOG_FILE command line arguments. r=erahm, r=nfroyd 2018-04-03 11:32:00 -04:00
Andrew McCreight
c78426147f Bug 1449747 - Remove unused things from nsIInterfaceInfo and xptiWorkingSet. r=froydnj
The things in xptiWorkingSet are neither used nor defined.

MozReview-Commit-ID: 1ZPVe38OVcH

--HG--
extra : rebase_source : 6f74c70758cb66bfdc6ec0a2a27d8cead1b37ed6
2018-03-28 14:03:29 -07:00
Henri Sivonen
19462f3cb6 Bug 1450907 - Spend less time benchmarking HasRTLChars. r=jfkthame
This sets a new baseline for these benchmarks.

MozReview-Commit-ID: 1BotMvQ8Rjg

--HG--
extra : rebase_source : 5dd8f6004dd477ce57f94d5af072859b280d30f8
2018-04-03 13:15:06 +03:00
arthur.iakab
b310d9523e Merge inbound to mozilla-central. a=merge 2018-04-03 12:31:23 +03:00
Boris Zbarsky
9bb77bdfc7 Bug 1450418. Get rid of nsIDOMScreen. r=qdot
MozReview-Commit-ID: A5Rq0BSQt4V
2018-04-03 00:42:41 -04:00
Nicholas Nethercote
9ea93c4f7b Bug 1449395 - Remove nsStaticAtomSetup. r=froydnj
Each nsStaticAtomSetup contains a pointer to a static atom, and also a pointer
to the canonical pointer to that static atom. Which is pretty weird! The
notable thing thing about it is that these structs are in an array, and that
gives us the only way to iterate over all static atoms in a single class, for
registration and lookups.

But thanks to various other recent changes to the implementation of static
atoms, we can now put the static atoms themselves into an array, which can be
iterated over. So this patch does that. With that done, nsStaticAtomSetup is no
longer necessary.

According to the `size` utility, on Linux64 this reduces the size of libxul.so
by the following amounts:

> text:  62008 bytes
> data:  20992 bytes
> bss:   21040 bytes
> total: 104040 bytes

- The bss reduction is one word per atom, because the canonical static atom
  pointers (e.g. nsGkAtoms::foo) have moved from .bss to .data, because they're
  now initialized at compile time instead of runtime.

- The data reduction is one word per atom, because we remove two words per atom
  for the nsStaticAtomSetup removal, but gain one word per atom from the
  previous bullet point.

- I'm not sure about the text reduction. It's three words per atom. Maybe
  because there is one less relocation per atom?

Other notable things in the patch:

- nsICSSAnonBoxPseudo and nsICSSPseudoElement now inherit from nsStaticAtom,
  not nsAtom, because that's more precise.

- Each static atoms array now has an enum associated with it, which is used in
  various ways.

- In the big comment about the macros at the top of nsStaticAtom.h, the pre-
  and post-expansion forms are now shown interleaved. The interleaving reduces
  duplication and makes the comment much easier to read and maintain. The
  comment also has an introduction that explains the constraints and goals of
  the implementation.

- The SUBCLASS macro variations are gone. There are few enough users of these
  macros now that always passing the atom type has become simpler.

MozReview-Commit-ID: 1GmfKidLjaU

--HG--
extra : rebase_source : 2352590101fc6693ba388f885ca4714a42963943
2018-03-29 11:48:18 +11:00
Nicholas Nethercote
4b941e22d0 Bug 1449395 - Remove unnecessary nsStaticAtom.h includes. r=froydnj
For nsCSSAnonBoxes.cpp, nsCSSPseudoElements.cpp, nsDirectoryService.cpp, the
corresponding .h file includes nsStaticAtom.h. For the other files in this
patch, nsStaticAtom.h is not needed at all.

MozReview-Commit-ID: IpMmbXwZHhu

--HG--
extra : rebase_source : 46d0a6b40a41ee233adad7c205cf907fa27de34a
2018-03-29 09:08:54 +11:00
Henri Sivonen
8402e1f7a2 Bug 1448772 - Avoid back-and-forth UTF-16 to UTF-8 to UTF-16 conversions in xpcom/base/MacHelpers.mm. r=mstange
MozReview-Commit-ID: LQ4ZMJzy5WI

--HG--
extra : rebase_source : 85320f3e0bcef7711517ecc1e5b7bc5ec074bda5
2018-03-26 10:49:02 +03:00
Honza Bambas
951c3c0c9e Bug 1441726 - Include CacheStorageService::mPurgeTimeStamps hashtable in the memory reporter. r=michal 2018-03-27 10:21:00 +03:00
Andrew McCreight
27f44d82d0 Bug 1438688, part 6 - Compile XPT information to C++ at build time. r=glandium,njn
This patch handles the actual generation of the static data structures
used to represent XPT information. XPT files are generated in the same
way as they are now, but they are used only as an intermediate
representation to speed up incremental compilation rather than
something used by Firefox itself. Instead of linking XPTs into a
single big XPT file at packaging time, they are linked into a single
big C++ file at build time, that defines the various static consts in
XPTHeader.

In xpt.py, every data structure that can get written to disk gets an
additional code_gen() method that returns a representation of that
data structure as C++ source code. CodeGenData aggregates this
information together, handling deduplication and the final source code
generation.

The ctors are needed for XPTConstValue to statically initialize the
different union cases without resorting to designated initializers,
which are part of C99, not C++. Designated initializers appear to be
supported in C++ code by Clang and GCC, but not MSVC. The ctors must
be constexpr to ensure they are actually statically initialized so
they can be shared between Firefox processes.

I also removed an unnecessary "union" in XPTConstDescriptor.

Together, these patches reduce the amount of memory reported by
xpti-working-set from about 860,000 bytes to about 200,000 bytes. The
remaining memory is used for xptiInterface and xptiTypelibGuts (which
are thin wrappers around the XPT interfaces and header) and hash
tables to speed up looking up interfaces by name or IID. That could
potentially be eliminated from dynamic allocations in follow up
work. These patches did not affect memory reporting because XPT arenas
are still used by the remaining XPTI data structures.

MozReview-Commit-ID: Jvi9ByCPa6H

--HG--
extra : rebase_source : a9e48e7026aab4ad1b7f97e50424adf4e3f4142f
2018-03-12 10:30:35 -07:00
Andrew McCreight
da728cc408 Bug 1438688, part 5 - Merge XPTInterfaceDirectoryEntry and XPTInterfaceDescriptor. r=njn
With fully linked XPT data, there is exactly one directory entry per
descriptor, plus one per unresolved interface. There are 1200 of the
former and 40 of the latter. By merging them, we save a 32 bit int per
directory entry, at the cost of 11 bytes per unresolved interface.

This will make VerifyAndAddEntryIfNew slightly slower because it has
to do an nsID equality check rather than a null check, but I can't
imagine that will matter.

My main goal for this patch is to reduce the size of the executable,
to avoid a regression with my static XPT information patches, but it
should reduce memory a little bit, too.

MozReview-Commit-ID: L35YdOuAyF4

--HG--
extra : rebase_source : 8358a73a0f8f81081661538d4a7c9a31b1aa7a56
2018-03-12 13:36:15 -07:00
Andrew McCreight
40c8743812 Bug 1438688, part 4 - Hoist arrays to XPTHeader. r=njn
To allow XPT information to be shared between processes, it needs to
not contain any pointers, because they cause relocations. I've
eliminated pointers by hoisting all of the variable length data
structures to XPTHeader, into a single array for each type of
data. These data structures now use an index into these arrays to find
their first element. Strings are similar, but they are mashed into a
single giant string, including embedded null terminators. Modifying
the accessor methods to support this is easy, because there is only a
single global instance of each of these arrays in XPTHeader.

MozReview-Commit-ID: 5rgwaEBvDYl

--HG--
extra : rebase_source : 2e423f088d662920a89f3b66c70d26fe340b5fce
2018-02-28 15:12:07 -08:00
Andrew McCreight
e80864c94c Bug 1438688, part 3 - Remove XPT files from the packaging process. r=glandium
Now that XPT files are not loaded from files at runtime, code for
packaging XPT files can be removed.

This means that a couple of test XPIDL interfaces will get shipped in
builds to users that weren't before, but I don't think that matters
much.

This also puts XPT files into the local objdir for the XPIDL makefile,
instead of dist/bin, because they are no longer part of the
distribution.

MozReview-Commit-ID: 7gWj8KWUun3

--HG--
extra : rebase_source : 65bac47c2cd1a20b3c675a01b44a25a1d2d3ab7a
2018-03-05 14:27:29 -08:00
Andrew McCreight
38814e41a3 Bug 1438688, part 2b - Eliminate XPTHeader data structure. r=njn
Now that there is only one XPTHeader, we can devolve the fields in it
to avoid some indirection. The biggest part here is getting rid of the
mHeader field on xptiTypelibGuts.

The array is [] instead of * to avoid a relocation, by ensuring that
XPTHeader::kInterfaceDirectory as well as the data it points to cannot
be changed.

MozReview-Commit-ID: AzvNTNZKkfi

--HG--
extra : rebase_source : d911a54b3db1f9f57b538d13ae86f28965ab33b3
2018-03-27 14:04:01 -07:00