Auto merge of #23203 - iulianR:22828, r=jdm

Implement PerformanceNavigation interface

<!-- Please describe your changes on the following line: -->
This is my first attempt. Please let me know if I should change anything.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #22828 (GitHub issue number if applicable)

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because **not sure**

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23203)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2019-07-15 13:55:33 -04:00 committed by GitHub
commit 005320c08c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 411 additions and 69 deletions

View file

@ -1,11 +0,0 @@
[test_navigation_attributes_exist.html]
type: testharness
[window.performance.navigation is defined]
expected: FAIL
[window.performance.navigation.type is defined.]
expected: FAIL
[window.performance.navigation.redirectCount is defined.]
expected: FAIL

View file

@ -1,9 +1,5 @@
[test_navigation_redirectCount_none.html]
type: testharness
expected: ERROR
[window.performance.navigation is defined]
expected: FAIL
[timing.redirectStart on an non-redirected navigation]
expected: FAIL

View file

@ -1,6 +1,3 @@
[test_navigation_type_backforward.html]
type: testharness
expected: ERROR
[window.performance.navigation is defined]
expected: FAIL
expected: TIMEOUT

View file

@ -1,29 +0,0 @@
[test_navigation_type_enums.html]
type: testharness
[window.performance.navigation is defined]
expected: FAIL
[window.performance.navigation.TYPE_NAVIGATE is defined.]
expected: FAIL
[window.performance.navigation.TYPE_NAVIGATE = 0]
expected: FAIL
[window.performance.navigation.TYPE_RELOAD is defined.]
expected: FAIL
[window.performance.navigation.TYPE_RELOAD = 1]
expected: FAIL
[window.performance.navigation.TYPE_BACK_FORWARD is defined.]
expected: FAIL
[window.performance.navigation.TYPE_BACK_FORWARD = 2]
expected: FAIL
[window.performance.navigation.TYPE_RESERVED is defined.]
expected: FAIL
[window.performance.navigation.TYPE_RESERVED = 255]
expected: FAIL

View file

@ -1,6 +1,65 @@
[test_navigation_type_reload.html]
type: testharness
expected: ERROR
[window.performance.navigation is defined]
[Reload requestStart > Original requestStart]
expected: FAIL
[Reload fetchStart > Original fetchStart]
expected: FAIL
[Reload domContentLoadedEventEnd > Original domContentLoadedEventEnd]
expected: FAIL
[Reload redirectStart > Original redirectStart]
expected: FAIL
[Reload domLoading > Original domLoading]
expected: FAIL
[Reload loadEventEnd > Original loadEventEnd]
expected: FAIL
[Reload redirectEnd > Original redirectEnd]
expected: FAIL
[Reload navigationStart > Original navigationStart]
expected: FAIL
[Reload domainLookupEnd > Original domainLookupEnd]
expected: FAIL
[window.performance.navigation.type == TYPE_RELOAD]
expected: FAIL
[Reload connectStart > Original connectStart]
expected: FAIL
[Reload domContentLoadedEventStart > Original domContentLoadedEventStart]
expected: FAIL
[Reload domComplete > Original domComplete]
expected: FAIL
[Reload domainLookupStart > Original domainLookupStart]
expected: FAIL
[Reload unloadEventEnd > Original unloadEventEnd]
expected: FAIL
[Reload unloadEventStart > Original unloadEventStart]
expected: FAIL
[Reload connectEnd > Original connectEnd]
expected: FAIL
[Reload responseStart > Original responseStart]
expected: FAIL
[Reload responseEnd > Original responseEnd]
expected: FAIL
[Reload loadEventStart > Original loadEventStart]
expected: FAIL
[Reload domInteractive > Original domInteractive]
expected: FAIL

View file

@ -1,6 +1,8 @@
[test_no_previous_document.html]
type: testharness
expected: ERROR
[window.performance.navigation is defined]
[timing.unloadEventEnd == 0 navigation with no previous document]
expected: FAIL
[timing.unloadEventStart == 0 on navigation with no previous document]
expected: FAIL

View file

@ -1,5 +0,0 @@
[test_performance_attributes_exist.html]
type: testharness
[window.performance.navigation is defined]
expected: FAIL

View file

@ -1,6 +1,164 @@
[test_timing_attributes_order.html]
type: testharness
expected: ERROR
[window.performance.navigation is defined]
[window.performance.timing.fetchStart difference with window.performance.timing.navigationStart is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.unloadEventStart difference with window.performance.timing.navigationStart is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.loadEventStart difference with window.performance.timing.domContentLoadedEventEnd is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.unloadEventEnd difference with window.performance.timing.unloadEventStart is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.requestStart difference with window.performance.timing.connectEnd is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.unloadEventStart >= window.performance.timing.navigationStart]
expected: FAIL
[window.performance.timing.loadEventEnd >= window.performance.timing.loadEventStart]
expected: FAIL
[window.performance.timing.domainLookupEnd >= window.performance.timing.domainLookupStart]
expected: FAIL
[window.performance.timing.domContentLoadedEventStart > 0]
expected: FAIL
[window.performance.timing.domLoading >= window.performance.timing.fetchStart]
expected: FAIL
[window.performance.timing.requestStart > 0]
expected: FAIL
[window.performance.timing.fetchStart >= window.performance.timing.navigationStart]
expected: FAIL
[window.performance.timing.domInteractive >= window.performance.timing.responseEnd]
expected: FAIL
[window.performance.timing.navigationStart > 0]
expected: FAIL
[window.performance.timing.loadEventEnd difference with window.performance.timing.loadEventStart is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.redirectEnd == 0]
expected: FAIL
[window.performance.timing.responseEnd >= window.performance.timing.responseStart]
expected: FAIL
[window.performance.timing.connectStart difference with window.performance.timing.domainLookupEnd is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.unloadEventEnd >= window.performance.timing.unloadEventStart]
expected: FAIL
[window.performance.timing.connectStart >= window.performance.timing.domainLookupEnd]
expected: FAIL
[window.performance.timing.redirectStart == 0]
expected: FAIL
[window.performance.timing.domInteractive difference with window.performance.timing.responseEnd is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.domContentLoadedEventEnd > 0]
expected: FAIL
[window.performance.timing.domainLookupEnd > 0]
expected: FAIL
[window.performance.timing.domLoading > 0]
expected: FAIL
[window.performance.timing.domComplete >= window.performance.timing.domContentLoadedEventEnd]
expected: FAIL
[window.performance.timing.connectEnd difference with window.performance.timing.connectStart is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.connectEnd > 0]
expected: FAIL
[window.performance.timing.domContentLoadedEventEnd >= window.performance.timing.domContentLoadedEventStart]
expected: FAIL
[window.performance.timing.domLoading difference with window.performance.timing.fetchStart is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.unloadEventStart > 0]
expected: FAIL
[window.performance.timing.domContentLoadedEventStart >= window.performance.timing.domInteractive]
expected: FAIL
[window.performance.timing.connectStart > 0]
expected: FAIL
[window.performance.timing.responseEnd difference with window.performance.timing.responseStart is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.fetchStart > 0]
expected: FAIL
[window.performance.timing.domainLookupEnd difference with window.performance.timing.domainLookupStart is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.responseStart difference with window.performance.timing.requestStart is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.domComplete difference with window.performance.timing.domContentLoadedEventEnd is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.domContentLoadedEventEnd difference with window.performance.timing.domContentLoadedEventStart is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.domainLookupStart >= window.performance.timing.fetchStart]
expected: FAIL
[window.performance.timing.responseEnd > 0]
expected: FAIL
[window.performance.timing.unloadEventEnd > 0]
expected: FAIL
[window.performance.timing.domainLookupStart difference with window.performance.timing.fetchStart is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.domainLookupStart > 0]
expected: FAIL
[window.performance.timing.domInteractive > 0]
expected: FAIL
[window.performance.timing.domContentLoadedEventStart difference with window.performance.timing.domInteractive is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.responseStart > 0]
expected: FAIL
[window.performance.timing.responseStart >= window.performance.timing.requestStart]
expected: FAIL
[window.performance.timing.loadEventStart >= window.performance.timing.domContentLoadedEventEnd]
expected: FAIL
[window.performance.timing.requestStart >= window.performance.timing.connectEnd]
expected: FAIL
[window.performance.timing.connectEnd >= window.performance.timing.connectStart]
expected: FAIL
[window.performance.timing.domComplete > 0]
expected: FAIL
[window.performance.timing.loadEventStart > 0]
expected: FAIL
[window.performance.timing.loadEventEnd > 0]
expected: FAIL

View file

@ -1,6 +1,3 @@
[test_timing_client_redirect.html]
type: testharness
expected: TIMEOUT
[window.performance.navigation is defined]
expected: FAIL

View file

@ -1,6 +1,65 @@
[test_timing_reload.html]
type: testharness
expected: ERROR
[window.performance.navigation is defined]
[loadEventStart is different after the reload.]
expected: FAIL
[domContentLoadedEventEnd is different after the reload.]
expected: FAIL
[domainLookupEnd is different after the reload.]
expected: FAIL
[unloadEventStart is different after the reload.]
expected: FAIL
[responseStart is different after the reload.]
expected: FAIL
[redirectStart is different after the reload.]
expected: FAIL
[domComplete is different after the reload.]
expected: FAIL
[redirectEnd is different after the reload.]
expected: FAIL
[loadEventEnd is different after the reload.]
expected: FAIL
[connectStart is different after the reload.]
expected: FAIL
[domainLookupStart is different after the reload.]
expected: FAIL
[navigationStart is different after the reload.]
expected: FAIL
[window.performance.navigation.type == TYPE_RELOAD]
expected: FAIL
[domLoading is different after the reload.]
expected: FAIL
[unloadEventEnd is different after the reload.]
expected: FAIL
[responseEnd is different after the reload.]
expected: FAIL
[connectEnd is different after the reload.]
expected: FAIL
[fetchStart is different after the reload.]
expected: FAIL
[domInteractive is different after the reload.]
expected: FAIL
[domContentLoadedEventStart is different after the reload.]
expected: FAIL
[requestStart is different after the reload.]
expected: FAIL

View file

@ -1,6 +1,44 @@
[test_timing_server_redirect.html]
type: testharness
expected: ERROR
[window.performance.navigation is defined]
[navigation.redirectCount == 1 on an server redirected navigation]
expected: FAIL
[window.performance.timing.redirectStart > 0]
expected: FAIL
[window.performance.timing.fetchStart >= window.performance.timing.redirectEnd]
expected: FAIL
[window.performance.timing.requestStart difference with window.performance.timing.fetchStart is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.redirectStart >= window.performance.timing.navigationStart]
expected: FAIL
[window.performance.timing.redirectEnd >= window.performance.timing.redirectStart]
expected: FAIL
[window.performance.timing.redirectEnd difference with window.performance.timing.redirectStart is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.redirectStart difference with window.performance.timing.navigationStart is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.fetchStart > 0]
expected: FAIL
[window.performance.timing.navigationStart > 0]
expected: FAIL
[window.performance.timing.requestStart > 0]
expected: FAIL
[window.performance.timing.fetchStart difference with window.performance.timing.redirectEnd is 0 or at least 5 microseconds]
expected: FAIL
[window.performance.timing.redirectEnd > 0]
expected: FAIL
[window.performance.timing.requestStart >= window.performance.timing.fetchStart]
expected: FAIL

View file

@ -1,6 +1,11 @@
[test_timing_xserver_redirect.html]
type: testharness
expected: ERROR
[window.performance.navigation is defined]
[window.performance.timing.navigationStart > 0]
expected: FAIL
[timing.redirectStart == 0 on a server redirected navigation from another domain]
expected: FAIL
[timing.redirectEnd == 0 on a server redirected navigation from another domain]
expected: FAIL

View file

@ -18902,7 +18902,7 @@
"testharness"
],
"mozilla/interfaces.html": [
"b6cbf4b4f9b4fdcbe5f05a96970822d2ae9d325d",
"cb0317a6de33cc5283f3754bece13a3b04940423",
"testharness"
],
"mozilla/interfaces.js": [

View file

@ -186,6 +186,7 @@ test_interfaces([
"PerformanceEntry",
"PerformanceMark",
"PerformanceMeasure",
"PerformanceNavigation",
"PerformanceNavigationTiming",
"PerformanceObserver",
"PerformanceObserverEntryList",