Commit Graph

131 Commits

Author SHA1 Message Date
Phil Ringnalda
0ce22154e5 Backed out changeset 1e6febc9f5af (bug 1436778) for being too easy to hit, by just running navigation-timing/test_performance_attributes_exist_in_object.html 2018-04-13 19:03:36 -07:00
Tom Ritter
4e4cdf7ff7 Bug 1436778 Add an assertion to hopefully get a reproduction for a hard-to-repro timer jitter bug r=baku
MozReview-Commit-ID: D4zt1v1tjOs
2018-04-10 13:08:25 -05:00
Sebastian Hengst
d91e9954eb Backed out 4 changesets (bug 525063) on request from Andi. a=backout
Backed out changeset 516c4fb1e4b8 (bug 525063)
Backed out changeset 6ff8aaef2866 (bug 525063)
Backed out changeset bf13e4103150 (bug 525063)
Backed out changeset d7d2f08e051c (bug 525063)
2018-04-13 16:01:28 +03:00
Tomislav Jovanovic
e7ddf817a7 Bug 1441336 - Use addon permissions for PerformanceTiming properties r=bz,kmag
We need to side-step existing cross-origin checks in Performance Timing code
when the caller is a web extension content script that otherwise has permission
to access the cross-origin resource.

MozReview-Commit-ID: 8IgtqZgPWgY
2018-04-04 16:54:26 +02:00
Tristan Bourvon
6095241db8 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02:00
Andrea Marchesini
a7ccfab1f0 Bug 1437897 - Remove a wrong assertion related to the size of the Performance resource entries array in Performance::InsertResourceEntry, r=bz 2018-04-11 07:42:43 +02:00
Boris Zbarsky
d54406240d Bug 1449631 part 6. Remove nsIDOMEventTarget::DispatchEvent. r=smaug
MozReview-Commit-ID: 8YMgmMwZkAL
2018-04-05 13:42:41 -04:00
Tom Ritter
e19e7123c5 Bug 1440195 Add a random context seed to the Performance APIs r=baku
We attach it to WorkerPrivate and DOMNavigationTiming so it will be re-used
when it should.

WorkerPrivate is used in the Performance APIs, Performance Storage Worker,
and Event.

DOMNavigationTiming is used only in the Performance APIs, but the crucial
part is that when the individual DOMNavigationTiming object is re-used,
so will the context seed. This in particular came up with the
nav2_test_document_open.html Web Platform Test which illustrated the fact
that even if you .open() a new document, the performance navigation data
is not supposed to change.

MozReview-Commit-ID: GIv6biEo2jY
2018-03-13 12:36:34 -05:00
Andreea Pavel
04d24bc8bc Merge mozilla-central to autoland. a=merge on a CLOSED TREE 2018-03-15 00:10:23 +02:00
Andrea Marchesini
97b6898735 Bug 1445540 - Use WorkerRef in PerformanceStorageWorker, r=smaug 2018-03-14 15:27:13 +01:00
Tom Ritter
30e3434271 Bug 1443943 Allow internal callers of performance.now() to opt-out of clamping/jittering r=bholley
PresShell only uses performane.now to track refresh times, and notify internal
observers. We can provide more accurate times by not clamping and jittering
these numbers.

MozReview-Commit-ID: FkDGJhrLeAy
2018-03-09 20:12:53 -06:00
Tom Ritter
728b7eb478 Bug 1443943 Port the performance APIs only to only clamping/jittering on non-System Principal r=baku
MozReview-Commit-ID: FKYLI5Yc1kX
2018-03-09 09:29:33 -06:00
Andreea Pavel
816981a5af Merge mozilla-central to autoland. a=merge on a CLOSED TREE 2018-03-09 21:35:33 +02:00
Andrea Marchesini
93d27a5c53 Bug 1444150 Performance.measure(name) should not throw if name is one of the readonly attribute of the Performance interface, r=valentin 2018-03-09 08:23:44 +01:00
Greg Tatum
e737c78f7b Bug 1425605 - Add the start/end mark names to performance.measure profiler markers; r=baku,mstange
MozReview-Commit-ID: I8DzSlSi124
2018-03-08 16:36:53 -06:00
Andrea Marchesini
b00c0daf83 Bug 1436744 - Get rid of WorkerCheckAPIExposureOnMainThreadRunnable, r=catalinb 2018-02-12 21:02:22 +01:00
Tom Ritter
54c693f1f3 Bug 1435296 Remove unneeded script import from test_timeOrigin.html r=baku
MozReview-Commit-ID: G0sqJYbi3vz
2018-02-10 09:11:04 -06:00
Tom Ritter
b414702f22 Bug 1435296 Address test failures caused by bumping timer precision to 2 ms r=baku
There are a few different reasons why tests needed updating (not an exhaustive list):

- Tests assume that successive operations take place at different times.
- Tests assume that an operation took a minimum amount of time.
- Tests hardcodes a specific delay.

In most cases we hardcode the preference off. In some cases this is the best approach,
in others, we would like to improve. The bug for tracking those improvements is Bug 1429648

An improvement that is present in some tests is to hardcode a specific precision reduction
that is acceptable based on the confides of the test. (Obviously this needs to be a fix for
the test framework and not a requirement on the feature being tested.)

In a few places, the test itself can be fixed, for example to no longer require the end
time of an operation to be strictly greater than the start time, and allows it to be equal
to it.

MozReview-Commit-ID: J59c7xQtZZJ
2018-02-12 11:39:41 -06:00
Josh Matthews
d169301c59 Bug 1436743 - Dispatch events via the docgroup rather than the tabgroup when possible. r=mystor 2018-02-08 15:54:00 -05:00
Andrea Marchesini
d64c5b22a3 Bug 1436692 - Implement PerformanceObserver::takeRecords(), r=valentin 2018-02-08 17:43:25 +01:00
Andrea Marchesini
ddb4518ad1 Bug 1435174 - Remove the renaming 'using namespace workers', r=bkelly 2018-02-05 19:55:07 +01:00
Florian Quèze
c5f15a4700 Bug 1339461 - script-generated patch to convert foo.indexOf(...) == -1 to foo.includes(), r=Mossop. 2018-02-01 20:45:22 +01:00
Andrea Marchesini
98ac9eb616 Bug 1432963 - Fixing workers headers - part 15 - static function in a workers namespace, r=smaug 2018-01-31 08:24:30 +01:00
Andrea Marchesini
5e357eed9f Bug 1432963 - Fixing workers headers - part 14 - WorkerPrivate without workers namespace, r=smaug 2018-01-31 08:24:08 +01:00
Andrea Marchesini
30cbccd56d Bug 1432963 - Fixing workers headers - part 13 - WorkerHolder without workers namespace, r=smaug 2018-01-31 08:23:44 +01:00
Andrea Marchesini
11660b6bb5 Bug 1413112 - WorkerError in separate files, r=bkelly 2018-01-30 10:12:50 +01:00
Andrea Marchesini
f06cf7c2d4 Bug 1425458 - Resource timing entries Workers - part 7 - mochitests, r=smaug 2018-01-24 17:17:32 +01:00
Andrea Marchesini
dc1d03e3bd Bug 1425458 - Resource timing entries Workers - part 5 - dispatch resourcetimingbufferfull on workers, r=smaug 2018-01-24 17:17:32 +01:00
Andrea Marchesini
16b8539112 Bug 1425458 - Resource timing entries Workers - part 4 - exposing partial interface, r=smaug 2018-01-24 17:17:32 +01:00
Andrea Marchesini
e78cbcb82c Bug 1425458 - Resource timing entries Workers - part 3 - PerformanceStorageWorker, r=smaug 2018-01-24 17:17:32 +01:00
Andrea Marchesini
170e7db772 Bug 1425458 - Resource timing entries Workers - part 2 - PerformanceTimingData, r=smaug 2018-01-24 17:17:31 +01:00
Andrea Marchesini
ef724e34fd Bug 1425458 - Resource timing entries Workers - part 1 - PerformanceStorage on main-thread, r=smaug 2018-01-24 17:17:31 +01:00
Andrea Marchesini
3faaf5a84b Bug 1425458 - Resource timing entries Workers - part 0 - NS_NewChannel, r=smaug
* * *
Bug 1425458 - Resource timing entries Workers - part 10 - Correct parameters in NS_NewChannel in nsDataObj.cpp, r=me
2018-01-24 17:17:31 +01:00
Brindusan Cristian
1153f2c09e Backed out 12 changesets (bug 1425458) for mochitest failures on WorkerPrivate.cpp on a CLOSED TREE
Backed out changeset 11997de13778 (bug 1425458)
Backed out changeset 100b9d4f36bc (bug 1425458)
Backed out changeset a29e9dbb8c42 (bug 1425458)
Backed out changeset b96d58fd945c (bug 1425458)
Backed out changeset f140da44ba68 (bug 1425458)
Backed out changeset af56400233d9 (bug 1425458)
Backed out changeset 7034af4332e4 (bug 1425458)
Backed out changeset f70500179140 (bug 1425458)
Backed out changeset 793bbfc23257 (bug 1425458)
Backed out changeset 2efb375a8ffc (bug 1425458)
Backed out changeset 07e781e37451 (bug 1425458)
Backed out changeset e875f3702a5f (bug 1425458)
2018-01-24 20:47:48 +02:00
Andrea Marchesini
8a9d1b744c Bug 1425458 - Resource timing entries Workers - part 11 - WPT, r=me CLOSED TREE 2018-01-24 18:52:18 +01:00
Andrea Marchesini
1c39f5bdcd Bug 1425458 - Resource timing entries Workers - part 9 - Fixing a compilation issue, r=me CLOSED TREE 2018-01-24 18:19:12 +01:00
Andrea Marchesini
5695b990f6 Bug 1425458 - Resource timing entries Workers - part 7 - mochitests, r=smaug 2018-01-24 17:17:32 +01:00
Andrea Marchesini
a8f8b5e0dc Bug 1425458 - Resource timing entries Workers - part 5 - dispatch resourcetimingbufferfull on workers, r=smaug 2018-01-24 17:17:32 +01:00
Andrea Marchesini
a3bab5da2e Bug 1425458 - Resource timing entries Workers - part 4 - exposing partial interface, r=smaug 2018-01-24 17:17:32 +01:00
Andrea Marchesini
7441e0cd2e Bug 1425458 - Resource timing entries Workers - part 3 - PerformanceStorageWorker, r=smaug 2018-01-24 17:17:32 +01:00
Andrea Marchesini
73da7daec1 Bug 1425458 - Resource timing entries Workers - part 2 - PerformanceTimingData, r=smaug 2018-01-24 17:17:31 +01:00
Andrea Marchesini
f676942138 Bug 1425458 - Resource timing entries Workers - part 1 - PerformanceStorage on main-thread, r=smaug 2018-01-24 17:17:31 +01:00
Andrea Marchesini
b434804b93 Bug 1425458 - Resource timing entries Workers - part 0 - NS_NewChannel, r=smaug 2018-01-24 17:17:31 +01:00
Tom Ritter
8dec05b890 Bug 1429764 Do not call ReduceTimerPrecision twice for DOM Navigation timers r=bkelly,timhuang
Bug 1429764 details a test failure that was asserting that the performance navigation
timers were strictly increasing (or equal). fetchStart should have a timestamp before
domainLookupStart.  But it didn't.

The problem is two-fold.  This corrects the test and the issue by addressing one part
of the problem, the second part of the problem needs to be written up in a new bug
and addressed there. (That bug is not yet filed at writing, but see dependencies of
1429764 in the future to find it.)

The second, and underlying, problem is that calling ReduceTimerPrecision with the
same value multiple times may continually reduce it. Meaning that the first you call
it with, say, .75, (and a precision of .20), it will be reduced to .6. The second time
you call it (with .6), instead of staying at .6 it will be reduced to .4. This is
because floats are fuzzy. Inside ReduceTimerPrecision we are multiplying a decimal by
a decimal, so while floor(.6 / .20)  should equal 3, sometimes it's actually 2.999...
which gets floors to 2, gets multiplied again by .2, and which results in .4

If that's the underlying problem, the first, and surface, problem is - why are we
calling ReduceTimerPrecision multiple times? We shouldn't be. That's what this
patch fixes.

TimeStampToDOMHighResOrFetchStart will return either TimeStampToDOMHighRes() or
FetchStartHighRes(). FetchStartHighRes() internally calls TimeStampToDOMHighRes
and then ReduceTimerPrecision - this is where (some of) the two reduction calls
happen - because TimeStampToDOMHighRes itself calls ReduceTimerPrecision also.

I remove the ReduceTimerPrecision from TimeStampToDOMHighRes. FetchStartHighRes
will now only call ReduceTimerPrecision once, at the end of the return.

But we have to fix places we call TimeStampToDOMHighResOrFetchStart, because the
callers of that function also call ReduceTimerPrecision. So if
TimeStampToDOMHighResOrFetchStart returned FetchStartHighRes, we'd be calling
ReduceTimerPrecision twice for those callers.

So inside first off, we remove the outer call to ReduceTimerPrecision. that
surrounds the 5 or so callsites of TimeStampToDOMHighResOrFetchStart. Then
inside of TimeStampToDOMHighResOrFetchStart we return either FetchStartHighRes
(which is has already called ReduceTimerPrecision) or we call
ReduceTimerPrecision with the value.

Now. TimeStampToDOMHighRes was used in more places than just FetchStartHighRes -
there were several other places where we were doing double rounding, and this
fixed those as well. AsyncOpenHighRes, WorkerStartHighRes, DomainLookupEndHighRes,
ConnectStartHighRes, SecureConnectionStartHighRes, ConnectEndHighRes, and
ResponseEndHighRes.

MozReview-Commit-ID: K5nHql135rb
2018-01-12 13:36:04 -06:00
Tom Ritter
070e736544 Bug 1424341 Round the Performance Timing APIs when privacy.reduceTimerPrecision is set r=bkelly,timhuang
MozReview-Commit-ID: LrAmrIfKk39
2018-01-10 15:51:23 -06:00
Andrea Marchesini
1e505c646d Bug 1419771 - Introduce DOMPrefs, a thread-safe access to preferences for DOM - part 5 - Performance logging enabled, r=asuth 2018-01-08 14:05:04 +01:00
Tom Ritter
f6a841f36f Bug 1427870 - Change resolution of .now() to 20us. r=bkelly, a=lizzard
The comment about workers was introduced in Bug 1186489 but became obsolete some time after that
(definitely by Bug 1278838)
2017-12-30 13:07:00 -06:00
Dragana Damjanovic
11ba0b856f Bug 1417431 - secureConnectionStart should be 0 for pages with HTTP scheme. r=bkelly 2017-12-06 12:57:28 +01:00
Jonathan Watt
d3027ccb8d Bug 1180145, part 3 - Block resource timing reporting for channels that are tainted. r=jwatt
MozReview-Commit-ID: FdlbJ2YYMaG
2017-11-08 18:13:46 +00:00
Cosmin Sabou
369f0175e7 Backed out 23 changesets (bug 1419771) for frequently failing service workers related devtools tests, e.g. devtools/client/aboutdebugging/test/browser_service_workers_push.js. r=backout on a CLOSED TREE
Backed out changeset 2242edc902a5 (bug 1419771)
Backed out changeset 9cc3c29a9e36 (bug 1419771)
Backed out changeset c39ee002c825 (bug 1419771)
Backed out changeset caf7428013f2 (bug 1419771)
Backed out changeset c03970363433 (bug 1419771)
Backed out changeset 7f9de012861e (bug 1419771)
Backed out changeset ed146ac42a7f (bug 1419771)
Backed out changeset a8154698f782 (bug 1419771)
Backed out changeset 8a54c1c8d45d (bug 1419771)
Backed out changeset e32cd55b4c96 (bug 1419771)
Backed out changeset b7f342f436ef (bug 1419771)
Backed out changeset 60464b3e468f (bug 1419771)
Backed out changeset 108806f14ad8 (bug 1419771)
Backed out changeset 65998b0740f3 (bug 1419771)
Backed out changeset 0d23880842d8 (bug 1419771)
Backed out changeset 862aeaa2fefd (bug 1419771)
Backed out changeset cbc192478bf5 (bug 1419771)
Backed out changeset c58ef2a91bad (bug 1419771)
Backed out changeset 2b0a4bfd654f (bug 1419771)
Backed out changeset f182eba574f9 (bug 1419771)
Backed out changeset d9999a624097 (bug 1419771)
Backed out changeset 4050a1b8db2b (bug 1419771)
Backed out changeset a1a68e6500d9 (bug 1419771)
2017-11-30 22:35:32 +02:00