This switches the STS preload list over to a more compact representation by
using a DAFSA. `getHSTSPreloadList.js` is updated to output data in the gperf
format expected by `make_dafsa.py`. We then add a generated file that gets
created by pumping `nsSTSPreloadList.inc` through `make_dafsa.py`.
`nsSiteSecurityService` is updated to use the DAFSA which either returns -1
(kNotFound) if an entry is not present or (0, 1) indicating whether or not to
use subdomains.
`nsSTSPreloadList.inc` is an automated conversion to the new gperf-like format.
DONTBUILD because whitespace-only.
Notes:
* hawkrequest.js has a redundant trailing newline; this patch removes it.
* browser.ini is missing a trailing newline; this patch gives it one.
MozReview-Commit-ID: DYstjpDejgg
FrameLayerBuilder requires the the (frame,per-frame-key) for each display item is unique. It only enforces this in certain situations though, so there's cases where we've gotten away without this.
Retained display lists introduces more situations where we rely on this, so I've found a few.
MathML nsDisplayNotation and nsDisplayMathMLBar are the two fixed by this patch.
HangAnnotations was very complex, required a separate allocation, and used this
unfortunate virtual interface implementation which made it harder to do
interesting things with it (such as serialize it over IPC).
This new implementation is much simpler and more concrete, making
HangAnnotations simply be a nsTArray<Annotation>. This also simplifies some of
the IPC code which was added in part 7.
MozReview-Commit-ID: EzaaxdHpW1t
These changes are going to increase the amount of data which we collect from BHR
a lot. It would be dangerous to run it on beta, especially considering how soon
the next merge is.
This should turn it off for 100% of beta users if I understand the logic
correctly.
MozReview-Commit-ID: 3HyEKWdXaqU
BHRTelemetryService only runs in the parent process (and we can only submit
pings from there), so we need to send the data which we collect in the GPU and
Content processes over IPC to the parent process.
MozReview-Commit-ID: 8B5uZKbjNbU
This patch adds the BHRTelemetryService which is a JS implemented XPCOM service
that simply listens to the bhr-thread-hang observer notification, and uses the
data it collects from it to submit telemetry pings.
MozReview-Commit-ID: 2hPXAFmHrm5
We're going to use HangDetails as the type containing hang information. We'll
have a JS component which reads the data out of nsIHangDetails, builds the
payload, and submits it to telemetry for us.
We'll do it in JS because telemetry has to be submitted from JS.
This patch also adds IPC serization for the relevant types so that we can send
HangDetails objects over IPDL.
MozReview-Commit-ID: CeikKabY9Vs
A new test using the new APIs is introduced in a later part. This test no longer
functions as ThreadHangStats is no longer present.
MozReview-Commit-ID: HKmoP2An4GP
These will be used to implement IPC serialization and deserialization of the
HangDetails object to send over IPC. This is a temporary measure as
HangAnnotations is rewritten in part 11.
MozReview-Commit-ID: 1WHNvhDrMF5
This is the first part of purging the existing telemetry code for
ThreadHangStats from the tree. All of these features will be replaced with new
code for BHR telemetry in the future.
MozReview-Commit-ID: BhD5zY2LwUR
This is necessary as with FramePointerStackWalk if the current frame is in glibc
when we suspend the target thread we sometimes can't collect more than one
native frame as there are no frame pointers.
We'll still collect at least one entry, so this check relaxes the assertion.
MozReview-Commit-ID: IbatTQwDti1