Callers already store the return value in UniquePtr, so callsites don't need
updating. This patch is just enforcing that callers do this, while also
properly tracking ownership from the moment the object is allocated.
Differential Revision: https://phabricator.services.mozilla.com/D305973
Add firstInterimResponseStart and finalResponseHeadersStart properties
to distinguish interim (1xx) from final HTTP responses per W3C Resource
Timing spec.
- Network layer: Capture timing in nsHttpTransaction and Http2Session
- IPC: Serialize new timestamps across processes
- DOM: Expose via PerformanceResourceTiming with TAO protection
- Tests: Enable WPT interim-response-times tests (all pass)
Matches WebKit and Chromium implementations.
Differential Revision: https://phabricator.services.mozilla.com/D276668
Add finalResponseHeadersStart and firstInterimResponseStart properties
to distinguish interim (1xx) from final HTTP responses per W3C spec.
Uses a simplified 2-timestamp approach: network layer captures
responseStart and finalResponseHeadersStart, Performance API computes
firstInterimResponseStart from the comparison.
Includes HTTP/1.1, HTTP/2, and HTTP/3 support with tests.
Differential Revision: https://phabricator.services.mozilla.com/D276668
Add finalResponseHeadersStart and firstInterimResponseStart properties
to distinguish interim (1xx) from final HTTP responses per W3C spec.
Uses a simplified 2-timestamp approach: network layer captures
responseStart and finalResponseHeadersStart, Performance API computes
firstInterimResponseStart from the comparison.
Includes HTTP/1.1, HTTP/2, and HTTP/3 support with tests.
Differential Revision: https://phabricator.services.mozilla.com/D276668
Add finalResponseHeadersStart and firstInterimResponseStart properties
to distinguish interim (1xx) from final HTTP responses per W3C spec.
Uses a simplified 2-timestamp approach: network layer captures
responseStart and finalResponseHeadersStart, Performance API computes
firstInterimResponseStart from the comparison.
Includes HTTP/1.1, HTTP/2, and HTTP/3 support with tests.
Differential Revision: https://phabricator.services.mozilla.com/D276668
It is replaced by a standard-conforming cast to (void) which is
understood the same by the compiler.
In some cases this could be replaced by `[[maybe_unused]]` but for
expression whose value is ignored, this requires storing to a temporary
variable first, so not going that way.
One notable change is that marking an object of type already_AddRefed as
unused used to implicitly leak memory. This is now made explicit.
Most of the heavy lifting was done through:
$ git grep -l '\<Unused\> <<' | xargs sed -i -e 's/Unused << /(void)/g'
$ git grep -l mozilla/Unused.h | xargs sed -i -e '/mozilla\/Unused.h/ d'
Differential Revision: https://phabricator.services.mozilla.com/D268706
It is replaced by a standard-conforming cast to (void) which is
understood the same by the compiler.
In some cases this could be replaced by `[[maybe_unused]]` but for
expression whose value is ignored, this requires storing to a temporary
variable first, so not going that way.
One notable change is that marking an object of type already_AddRefed as
unused used to implicitly leak memory. This is now made explicit.
Most of the heavy lifting was done through:
$ git grep -l '\<Unused\> <<' | xargs sed -i -e 's/Unused << /(void)/g'
$ git grep -l mozilla/Unused.h | xargs sed -i -e '/mozilla\/Unused.h/ d'
Differential Revision: https://phabricator.services.mozilla.com/D268706
It is replaced by a standard-conforming cast to (void) which is
understood the same by the compiler.
In some cases this could be replaced by `[[maybe_unused]]` but for
expression whose value is ignored, this requires storing to a temporary
variable first, so not going that way.
One notable change is that marking an object of type already_AddRefed as
unused used to implicitly leak memory. This is now made explicit.
Most of the heavy lifting was done through:
$ git grep -l '\<Unused\> <<' | xargs sed -i -e 's/Unused << /(void)/g'
$ git grep -l mozilla/Unused.h | xargs sed -i -e '/mozilla\/Unused.h/ d'
Differential Revision: https://phabricator.services.mozilla.com/D268706
It is replaced by a standard-conforming cast to (void) which is
understood the same by the compiler.
In some cases this could be replaced by `[[maybe_unused]]` but for
expression whose value is ignored, this requires storing to a temporary
variable first, so not going that way.
One notable change is that marking an object of type already_AddRefed as
unused used to implicitly leak memory. This is now made explicit.
Most of the heavy lifting was done through:
$ git grep -l '\<Unused\> <<' | xargs sed -i -e 's/Unused << /(void)/g'
$ git grep -l mozilla/Unused.h | xargs sed -i -e '/mozilla\/Unused.h/ d'
Differential Revision: https://phabricator.services.mozilla.com/D268706
Most changes are automated. Relevant bit is dom/.clang-format. I had to
manually disable clang-format in a few places where importing external
files and so on that aren't self-contained, and fix a couple includes /
forward declarations.
Differential Revision: https://phabricator.services.mozilla.com/D256800
Bug 1899734 is going to cache the performance timing data from previous fetch
for the subsequent cached fetch.
All non-timing-related fields associated with the response are moved to
CacheablePerformanceTimingData.
Differential Revision: https://phabricator.services.mozilla.com/D223345
In bug 1883435 comment 2 chutten mentions that including
nsGlobalWindowInner.h from GleanMetrics.h causes a stylo build failure.
This is because nsGlobalWindowInner.h itself brings a bunch of DOM
bindings template soup that bindgen isn't great at dealing with.
That can be fixed in various ways. However, there is a simpler fix,
which is not including GleanMetrics at all.
It's trivial to do, and given it's a massive autogenerated file, and
Document.h is a very common header, it's worth doing this if only for
build times.
Fix a bunch of unused includes while at it.
Differential Revision: https://phabricator.services.mozilla.com/D203625
Most are brought over straightforwardly, their Telemetry callsites reworded
to use Glean, with mirroring to the Telemetry probes taken care of by the Glean
Interface For Firefox Telemetry (see the telemetry_mirror property).
There were two special cases: PERF_DOM_CONTENT_LOADED_FROM_RESPONSESTART_MS,
and PERF_DOM_CONTENT_LOADED_MS. Both were removed as they were unused.
Differential Revision: https://phabricator.services.mozilla.com/D200867
As of the prior patch, these are no longer needed. I removed
these with a script, then ran clang-format on the files, then
manually reverted a few unrelated changed from the formatter.
Differential Revision: https://phabricator.services.mozilla.com/D164829
Given the Fetch spec, the TAO check algorithm has been updated to
be more restricted. This patch updates the algorithm to match the
spec.
Differential Revision: https://phabricator.services.mozilla.com/D146737
PerformanceTimingData supports to transfer through IPC. However, it could not be combined into other struct defined in ipdl/ipdlh
This patch creates IPCPerformanceTimingData to support PerformanceTimingData can be integrated with other ipc structs.
Depends on D138249
Differential Revision: https://phabricator.services.mozilla.com/D138250
PerformanceTimingData supports to transfer through IPC. However, it could not be combined into other struct defined in ipdl/ipdlh
This patch creates IPCPerformanceTimingData to support PerformanceTimingData can be integrated with other ipc structs.
Depends on D138249
Differential Revision: https://phabricator.services.mozilla.com/D138250