mirror of
https://github.com/servo/servo.git
synced 2025-07-23 07:13:52 +01:00
Auto merge of #23687 - servo-wpt-sync:wpt_update_02-07-2019, r=servo-wpt-sync
Sync WPT with upstream (02-07-2019) Automated downstream sync of changes from upstream as of 02-07-2019. [no-wpt-sync] <!-- 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/23687) <!-- Reviewable:end -->
This commit is contained in:
commit
fb7aa7ba7c
21 changed files with 352 additions and 109 deletions
|
@ -261013,6 +261013,9 @@
|
|||
"docs/reviewing-tests/email.md": [
|
||||
[]
|
||||
],
|
||||
"docs/reviewing-tests/git.md": [
|
||||
[]
|
||||
],
|
||||
"docs/reviewing-tests/index.md": [
|
||||
[]
|
||||
],
|
||||
|
@ -322018,6 +322021,18 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/cssom/CSSGroupingRule-cssRules.html": [
|
||||
[
|
||||
"css/cssom/CSSGroupingRule-cssRules.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/cssom/CSSGroupingRule-insertRule.html": [
|
||||
[
|
||||
"css/cssom/CSSGroupingRule-insertRule.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/cssom/CSSKeyframeRule.html": [
|
||||
[
|
||||
"css/cssom/CSSKeyframeRule.html",
|
||||
|
@ -566300,7 +566315,7 @@
|
|||
"reftest"
|
||||
],
|
||||
"css/css-text/line-break/line-break-anywhere-010.html": [
|
||||
"4c4b86c15b69f7d351b92477640808e297ed74f2",
|
||||
"6554bf68ce13d0f3a3f3d020c01a749aca4228dd",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-text/line-break/line-break-anywhere-011.html": [
|
||||
|
@ -566308,7 +566323,7 @@
|
|||
"reftest"
|
||||
],
|
||||
"css/css-text/line-break/line-break-anywhere-012.html": [
|
||||
"76fe279c50da6d2d429ecf19ecf2d77241aa87fa",
|
||||
"2dfe6071fdfe2a2993812a28c7e1408d59da763c",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-text/line-break/line-break-anywhere-013.html": [
|
||||
|
@ -588971,6 +588986,14 @@
|
|||
"ba048c58acaac5cd2550fb21cb9b6e9ee8fb0bb1",
|
||||
"testharness"
|
||||
],
|
||||
"css/cssom/CSSGroupingRule-cssRules.html": [
|
||||
"e4afd5e560fc317db0490010d692174522fafa66",
|
||||
"testharness"
|
||||
],
|
||||
"css/cssom/CSSGroupingRule-insertRule.html": [
|
||||
"2364465f8374bbf824e669a2e965c6ce19312c50",
|
||||
"testharness"
|
||||
],
|
||||
"css/cssom/CSSKeyframeRule.html": [
|
||||
"3f6d1821867ae42dc2e486597621fb079268e2c0",
|
||||
"testharness"
|
||||
|
@ -603252,7 +603275,7 @@
|
|||
"support"
|
||||
],
|
||||
"docs/appendix/github-intro.md": [
|
||||
"d7ee052ce0e363a950f7c491a76c64cf361e9e4e",
|
||||
"fae2d4e564da41b4afbe62828a1fbfc4fe1f2378",
|
||||
"support"
|
||||
],
|
||||
"docs/appendix/index.md": [
|
||||
|
@ -603343,8 +603366,12 @@
|
|||
"fbfa65d75cccca5b913da393788cd94faf637f6e",
|
||||
"support"
|
||||
],
|
||||
"docs/reviewing-tests/git.md": [
|
||||
"471edff0843ff760294838cbd9b52331c2bb351a",
|
||||
"support"
|
||||
],
|
||||
"docs/reviewing-tests/index.md": [
|
||||
"b9f3d33eb4fda35912842dd755d900b5b723707c",
|
||||
"7f0767d22f707e48d7248d39e839d97e3882c155",
|
||||
"support"
|
||||
],
|
||||
"docs/running-tests/chrome.md": [
|
||||
|
@ -632792,7 +632819,7 @@
|
|||
"support"
|
||||
],
|
||||
"interfaces/css-conditional.idl": [
|
||||
"8f928ad48269e4bfe3f2fd797b716e4e66cb6da2",
|
||||
"a57cc6c205e290fab1244e7d8f5ef087011b6800",
|
||||
"support"
|
||||
],
|
||||
"interfaces/css-counter-styles.idl": [
|
||||
|
@ -633220,7 +633247,7 @@
|
|||
"support"
|
||||
],
|
||||
"interfaces/webrtc-stats.idl": [
|
||||
"f29e00d195e898cb6c2dfce9a82bc81fd168787a",
|
||||
"29604eafc2f4bff2ab1c0790cf7411589aefc214",
|
||||
"support"
|
||||
],
|
||||
"interfaces/webrtc.idl": [
|
||||
|
@ -657652,7 +657679,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"screen-orientation/lock-unlock-check.html": [
|
||||
"129882d64f6d323d93a183d59f4744a8e888d3f1",
|
||||
"8e79033e614ce3f0e9db26bc0235d517f1d5e28e",
|
||||
"testharness"
|
||||
],
|
||||
"screen-orientation/onchange-event-subframe.html": [
|
||||
|
@ -657676,7 +657703,7 @@
|
|||
"support"
|
||||
],
|
||||
"screen-orientation/resources/orientation-utils.js": [
|
||||
"8721818bec2fadcaa3010f3c48d9e38db854f669",
|
||||
"85be16c3691dcd5498e117c165f8f4b17c53064b",
|
||||
"support"
|
||||
],
|
||||
"screen-orientation/resources/sandboxed-iframe-locking.html": [
|
||||
|
|
|
@ -56,3 +56,15 @@
|
|||
[background-position length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[font-size percentage(%) / events]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[matchMedia-display-none-iframe.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,4 @@
|
|||
[CSSGroupingRule-insertRule.html]
|
||||
[index not specified]
|
||||
expected: FAIL
|
||||
|
|
@ -312,3 +312,12 @@
|
|||
[<iframe>: separate response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -56,3 +56,6 @@
|
|||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,9 +11,9 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%0C]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20'NosniFF']
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20%2Cnosniff]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_5.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[DOMContentLoaded-defer.html]
|
||||
[The end: DOMContentLoaded and defer scripts]
|
||||
expected: FAIL
|
||||
|
|
@ -50,3 +50,9 @@
|
|||
[X SNR (-183.0486244640611 dB) is not greater than or equal to 65.737. Got -183.0486244640611.]
|
||||
expected: FAIL
|
||||
|
||||
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t9.4836157560348511e-1\t9.5236867666244507e-1\t4.0071010589599609e-3\t4.2075103446311962e-3\t3.8985999999999999e-3\n\t[31\]\t9.2646563053131104e-1\t9.3139332532882690e-1\t4.9276947975158691e-3\t5.2906700783754857e-3\t3.8985999999999999e-3\n\t[32\]\t9.0087991952896118e-1\t9.0675884485244751e-1\t5.8789253234863281e-3\t6.4834496590358351e-3\t3.8985999999999999e-3\n\t[33\]\t8.7170630693435669e-1\t8.7856203317642212e-1\t6.8557262420654297e-3\t7.8033490899654511e-3\t3.8985999999999999e-3\n\t[34\]\t8.3906102180480957e-1\t8.4691369533538818e-1\t7.8526735305786133e-3\t9.2721059699818163e-3\t3.8985999999999999e-3\n\t...and 31037 more errors.\n\tMax AbsError of 3.6667328475749582e+7 at index of 20238.\n\t[20238\]\t3.6667328000000000e+7\t-4.7574958205223083e-1\t3.6667328475749582e+7\t7.7072749738588333e+7\t3.8985999999999999e-3\n\tMax RelError of 7.7072749738588333e+7 at index of 20238.\n\t[20238\]\t3.6667328000000000e+7\t-4.7574958205223083e-1\t3.6667328475749582e+7\t7.7072749738588333e+7\t3.8985999999999999e-3\n]
|
||||
expected: FAIL
|
||||
|
||||
[X SNR (-107.86498904709346 dB) is not greater than or equal to 65.737. Got -107.86498904709346.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ div {
|
|||
.test {
|
||||
color: green;
|
||||
width: 4ch;
|
||||
white-space: break-spaces;
|
||||
white-space: pre-wrap;
|
||||
line-break: anywhere;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-line-break-anywhere">
|
||||
<meta name="flags" content="">
|
||||
<link rel="match" href="reference/line-break-anywhere-004-ref.html">
|
||||
<meta name="assert" content="line-break:anywhere allows breaking opportunities around slash characters.">
|
||||
<meta name="assert" content="line-break:anywhere allows breaking opportunities around backslash characters.">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
<style>
|
||||
div {
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSSOM - CSSGroupingRule - cssRules</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/cssom/#the-cssgroupingrule-interface">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
function create(t) {
|
||||
var style = document.createElement('style');
|
||||
style.appendChild(document.createTextNode('@media all { * {} }'));
|
||||
document.head.appendChild(style);
|
||||
t.add_cleanup(function() {
|
||||
document.head.removeChild(style);
|
||||
});
|
||||
|
||||
assert_true(!!style.sheet, 'setup - sheet defined');
|
||||
assert_equals(
|
||||
style.sheet.cssRules.length, 1, 'setup - grouping rule created'
|
||||
);
|
||||
assert_equals(
|
||||
style.sheet.cssRules[0].cssRules.length, 1, 'setup - rule created'
|
||||
);
|
||||
return style.sheet.cssRules[0];
|
||||
}
|
||||
|
||||
test(function (t) {
|
||||
var groupingRule = create(t);
|
||||
groupingRule.cssRules.wptMarker = 'wpt';
|
||||
|
||||
// `insertRule` is used to prompt non-conforming implementations to
|
||||
// create a new CSSRuleList object. Its behavior is verified by a
|
||||
// dedicated test and should not influence the result of this
|
||||
// particular test.
|
||||
try {
|
||||
groupingRule.insertRule('.foo {}', 0);
|
||||
groupingRule.insertRule('.bar {}', 0);
|
||||
groupingRule.insertRule('.baz {}', 0);
|
||||
} catch (err) {}
|
||||
|
||||
assert_equals(groupingRule.cssRules.wptMarker, 'wpt');
|
||||
|
||||
try {
|
||||
groupingRule.deleteRule('.foo {}', 0);
|
||||
groupingRule.deleteRule('.bar {}', 0);
|
||||
groupingRule.deleteRule('.baz {}', 0);
|
||||
} catch (err) {}
|
||||
|
||||
assert_equals(groupingRule.cssRules.wptMarker, 'wpt');
|
||||
}, '[SameObject] is honored');
|
||||
</script>
|
||||
</head>
|
||||
</html>
|
|
@ -0,0 +1,118 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSSOM - CSSGroupingRule - insertRule</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/cssom/#the-cssgroupingrule-interface">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
function create(t) {
|
||||
var style = document.createElement('style');
|
||||
style.appendChild(document.createTextNode('@media all { * {} }'));
|
||||
document.head.appendChild(style);
|
||||
t.add_cleanup(function() {
|
||||
document.head.removeChild(style);
|
||||
});
|
||||
|
||||
assert_true(!!style.sheet, 'setup - sheet defined');
|
||||
assert_equals(
|
||||
style.sheet.cssRules.length, 1, 'setup - grouping rule created'
|
||||
);
|
||||
assert_equals(
|
||||
style.sheet.cssRules[0].cssRules.length, 1, 'setup - rule created'
|
||||
);
|
||||
return style.sheet.cssRules[0];
|
||||
}
|
||||
|
||||
test(function (t) {
|
||||
var groupingRule = create(t);
|
||||
var first = groupingRule.cssRules[0].cssText;
|
||||
var result;
|
||||
|
||||
result = groupingRule.insertRule('.foo {}', 0);
|
||||
|
||||
assert_equals(groupingRule.cssRules.length, 2);
|
||||
assert_not_equals(groupingRule.cssRules[0].cssText, first);
|
||||
assert_equals(groupingRule.cssRules[1].cssText, first);
|
||||
assert_equals(result, 0, 'result');
|
||||
}, 'index before first');
|
||||
|
||||
test(function (t) {
|
||||
var groupingRule = create(t);
|
||||
var first = groupingRule.cssRules[0].cssText;
|
||||
var result;
|
||||
|
||||
result = groupingRule.insertRule('.foo {}', 1);
|
||||
|
||||
assert_equals(groupingRule.cssRules.length, 2);
|
||||
assert_equals(groupingRule.cssRules[0].cssText, first);
|
||||
assert_not_equals(groupingRule.cssRules[1].cssText, first);
|
||||
assert_equals(result, 1);
|
||||
}, 'index after final');
|
||||
|
||||
test(function (t) {
|
||||
var groupingRule = create(t);
|
||||
var first = groupingRule.cssRules[0].cssText;
|
||||
var result;
|
||||
|
||||
result = groupingRule.insertRule('.foo {}');
|
||||
|
||||
assert_equals(groupingRule.cssRules.length, 2);
|
||||
assert_not_equals(groupingRule.cssRules[0].cssText, first);
|
||||
assert_equals(groupingRule.cssRules[1].cssText, first);
|
||||
assert_equals(result, 0);
|
||||
}, 'index not specified');
|
||||
|
||||
test(function (t) {
|
||||
var groupingRule = create(t);
|
||||
var first = groupingRule.cssRules[0].cssText;
|
||||
|
||||
assert_throws('IndexSizeError', function() {
|
||||
// The syntax error is intentional; it verifies that the insertion
|
||||
// index is validated prior to the CSS text.
|
||||
groupingRule.insertRule('???', 2);
|
||||
});
|
||||
|
||||
assert_equals(groupingRule.cssRules.length, 1);
|
||||
assert_equals(groupingRule.cssRules[0].cssText, first);
|
||||
}, 'index exceeds length');
|
||||
|
||||
test(function (t) {
|
||||
var groupingRule = create(t);
|
||||
var first = groupingRule.cssRules[0].cssText;
|
||||
|
||||
assert_throws('SyntaxError', function() {
|
||||
groupingRule.insertRule('???', 0);
|
||||
});
|
||||
|
||||
assert_equals(groupingRule.cssRules.length, 1);
|
||||
assert_equals(groupingRule.cssRules[0].cssText, first);
|
||||
}, 'CSS parsing error');
|
||||
|
||||
test(function (t) {
|
||||
var groupingRule = create(t);
|
||||
var first = groupingRule.cssRules[0].cssText;
|
||||
|
||||
assert_throws('HierarchyRequestError', function() {
|
||||
groupingRule.insertRule('@import url("foo.css");', 0);
|
||||
});
|
||||
|
||||
assert_equals(groupingRule.cssRules.length, 1);
|
||||
assert_equals(groupingRule.cssRules[0].cssText, first);
|
||||
}, 'constraint violation');
|
||||
|
||||
test(function (t) {
|
||||
var groupingRule = create(t);
|
||||
var first = groupingRule.cssRules[0].cssText;
|
||||
|
||||
assert_throws('HierarchyRequestError', function() {
|
||||
groupingRule.insertRule('@namespace url(http://www.w3.org/1999/xhtml);', 0);
|
||||
});
|
||||
|
||||
assert_equals(groupingRule.cssRules.length, 1);
|
||||
assert_equals(groupingRule.cssRules[0].cssText, first);
|
||||
}, 'disallowed namespace rule');
|
||||
</script>
|
||||
</head>
|
||||
</html>
|
|
@ -298,84 +298,6 @@ different results. Recognizing when (and understanding how) to use other
|
|||
approaches is beyond the scope of this tutorial. [The Pro Git Book][git-book]
|
||||
is a free digital resource that can help you learn more.
|
||||
|
||||
## Working with Pull Requests as a reviewer
|
||||
|
||||
In order to do a thorough review,
|
||||
it is sometimes desirable to have a local copy of the tests one wishes to review.
|
||||
|
||||
Reviewing tests also often results in wanting a few things to be changed.
|
||||
Generally, the reviewer should ask the author to make the desired changes.
|
||||
However, sometimes the original author does not respond to the requests,
|
||||
or the changes are so trivial (e.g. fixing a typo)
|
||||
that bothering the original author seems like a waste of time.
|
||||
|
||||
Here is how to do all that.
|
||||
|
||||
### Trivial cases
|
||||
|
||||
If it is possible to review the tests without a local copy,
|
||||
but the reviewer still wants to make some simple tweaks to the tests before merging,
|
||||
it is possible to do so via the Github web UI.
|
||||
|
||||
1. Open the pull request. E.g. https://github.com/web-platform-tests/wpt/pull/1234
|
||||
2. Go to the  view (e.g. https://github.com/web-platform-tests/wpt/pull/1234/files)
|
||||
3. Locate the files you wish to change, and click the  icon in the upper right corner
|
||||
4. Make the desired change
|
||||
5. Write a commit message (including a good title) at the bottom
|
||||
6. Make sure the ![Commit directly to the [name-of-the-PR-branch] branch.](../assets/commit-directly.png) radio button is selected.
|
||||
|
||||
_Note: If the PR predates the introduction of this feature by Github,
|
||||
or if the author of the PR has disabled write-access by reviewers to the PR branch,
|
||||
this may not be available,
|
||||
and your only option would be to commit to a new branch, creating a new PR._
|
||||
7. Click the  button.
|
||||
|
||||
|
||||
### The Normal Way
|
||||
|
||||
This is how to import the Pull Request's branch
|
||||
into your existing local checkout of the repository.
|
||||
If you don't have one, go [fork](#fork), [clone](#clone), and [configure](#configure-remote--upstream) it.
|
||||
|
||||
1. Move into your local clone: `cd wherever-you-put-your-repo`
|
||||
2. Add a remote for the PR author's repo: `git remote add <author-id> git://github.com/<author-id>/<repo-name>.git`
|
||||
3. Fetch the PR: `git fetch <author-id> <name-of-the-PR-branch>`
|
||||
4. Checkout that branch: `git checkout <name-of-the-PR-branch>`
|
||||
|
||||
_The relevant `<author-id>`, `<repo-name>`, and `<name-of-the-PR-branch>` can be found by looking for this sentence in on the Github page of the PR:
|
||||
_
|
||||
|
||||
If all you meant to do was reviewing files locally, you're all set.
|
||||
If you wish to make changes to the PR branch:
|
||||
|
||||
1. Make changes and [commit](#commit) normally
|
||||
2. Push your changes upstream: `git push <author-id> <name-of-the-PR-branch>`
|
||||
|
||||
_Note: If the PR predates the introduction of this feature by Github,
|
||||
or if the author of the PR has disabled write-access by reviewers to the PR branch,
|
||||
this will not work, and you will need to use the alternative described below._
|
||||
|
||||
If, instead of modifying the existing PR, you wish to make a new one based on it:
|
||||
|
||||
1. Set up a new branch that contains the existing PR by doing one of the following:
|
||||
1. Create a new branch from the tip of the PR:
|
||||
`git branch <your-new-branch> <name-of-the-PR-branch> && git checkout <your-new-branch>`
|
||||
2. Create a new branch from `master` and merge the PR into it:
|
||||
`git branch <your-new-branch> master && git checkout <your-new-branch> && git merge <name-of-the-PR-branch>`
|
||||
2. Make changes and [commit](#commit) normally
|
||||
3. Push your changes to **your** repo: `git push origin <your-new-branch>`
|
||||
4. Go to the Github Web UI to [submit a new Pull Request](#submit).
|
||||
|
||||
_Note: You should also close the original pull request._
|
||||
|
||||
When you're done reviewing or making changes,
|
||||
you can delete the branch: `git branch -d <name-of-the-PR-branch>`
|
||||
(use `-D` instead of `-d` to delete a branch that has not been merged into master yet).
|
||||
|
||||
If you do not expect work with more PRs from the same author,
|
||||
you may also discard your connection to their repo:
|
||||
`git remote remove <author-id>`
|
||||
|
||||
[local-setup]: ../introduction#local-setup
|
||||
[git]: https://git-scm.com/downloads
|
||||
[git-book]: https://git-scm.com/book
|
||||
|
|
83
tests/wpt/web-platform-tests/docs/reviewing-tests/git.md
Normal file
83
tests/wpt/web-platform-tests/docs/reviewing-tests/git.md
Normal file
|
@ -0,0 +1,83 @@
|
|||
# Working with Pull Requests as a reviewer
|
||||
|
||||
In order to do a thorough review,
|
||||
it is sometimes desirable to have a local copy of the tests one wishes to review.
|
||||
|
||||
Reviewing tests also often results in wanting a few things to be changed.
|
||||
Generally, the reviewer should ask the author to make the desired changes.
|
||||
However, sometimes the original author does not respond to the requests,
|
||||
or the changes are so trivial (e.g. fixing a typo)
|
||||
that bothering the original author seems like a waste of time.
|
||||
|
||||
Here is how to do all that.
|
||||
|
||||
## Trivial cases
|
||||
|
||||
If it is possible to review the tests without a local copy,
|
||||
but the reviewer still wants to make some simple tweaks to the tests before merging,
|
||||
it is possible to do so via the Github web UI.
|
||||
|
||||
1. Open the pull request. E.g. https://github.com/web-platform-tests/wpt/pull/1234
|
||||
2. Go to the  view (e.g. https://github.com/web-platform-tests/wpt/pull/1234/files)
|
||||
3. Locate the files you wish to change, and click the  icon in the upper right corner
|
||||
4. Make the desired change
|
||||
5. Write a commit message (including a good title) at the bottom
|
||||
6. Make sure the ![Commit directly to the [name-of-the-PR-branch] branch.](../assets/commit-directly.png) radio button is selected.
|
||||
|
||||
_Note: If the PR predates the introduction of this feature by Github,
|
||||
or if the author of the PR has disabled write-access by reviewers to the PR branch,
|
||||
this may not be available,
|
||||
and your only option would be to commit to a new branch, creating a new PR._
|
||||
7. Click the  button.
|
||||
|
||||
|
||||
## The Normal Way
|
||||
|
||||
This is how to import the Pull Request's branch into your existing local
|
||||
checkout of the repository. If you don't have one, go [fork][fork],
|
||||
[clone][clone], and [configure][configure] it.
|
||||
|
||||
1. Move into your local clone: `cd wherever-you-put-your-repo`
|
||||
2. Add a remote for the PR author's repo: `git remote add <author-id> git://github.com/<author-id>/<repo-name>.git`
|
||||
3. Fetch the PR: `git fetch <author-id> <name-of-the-PR-branch>`
|
||||
4. Checkout that branch: `git checkout <name-of-the-PR-branch>`
|
||||
|
||||
_The relevant `<author-id>`, `<repo-name>`, and `<name-of-the-PR-branch>` can be found by looking for this sentence in on the Github page of the PR:
|
||||
_
|
||||
|
||||
If all you meant to do was reviewing files locally, you're all set.
|
||||
If you wish to make changes to the PR branch:
|
||||
|
||||
1. Make changes and [commit][commit] normally
|
||||
2. Push your changes upstream: `git push <author-id> <name-of-the-PR-branch>`
|
||||
|
||||
_Note: If the PR predates the introduction of this feature by Github,
|
||||
or if the author of the PR has disabled write-access by reviewers to the PR branch,
|
||||
this will not work, and you will need to use the alternative described below._
|
||||
|
||||
If, instead of modifying the existing PR, you wish to make a new one based on it:
|
||||
|
||||
1. Set up a new branch that contains the existing PR by doing one of the following:
|
||||
1. Create a new branch from the tip of the PR:
|
||||
`git branch <your-new-branch> <name-of-the-PR-branch> && git checkout <your-new-branch>`
|
||||
2. Create a new branch from `master` and merge the PR into it:
|
||||
`git branch <your-new-branch> master && git checkout <your-new-branch> && git merge <name-of-the-PR-branch>`
|
||||
2. Make changes and [commit][commit] normally
|
||||
3. Push your changes to **your** repo: `git push origin <your-new-branch>`
|
||||
4. Go to the Github Web UI to [submit a new Pull Request][submit].
|
||||
|
||||
_Note: You should also close the original pull request._
|
||||
|
||||
When you're done reviewing or making changes,
|
||||
you can delete the branch: `git branch -d <name-of-the-PR-branch>`
|
||||
(use `-D` instead of `-d` to delete a branch that has not been merged into master yet).
|
||||
|
||||
If you do not expect work with more PRs from the same author,
|
||||
you may also discard your connection to their repo:
|
||||
`git remote remove <author-id>`
|
||||
|
||||
[clone]: ../appendix/github-intro.html#clone
|
||||
[commit]: ../appendix/github-intro.html#commit
|
||||
[configure]: ../appendix/github-intro.html#configure-remote-upstream
|
||||
[fork]: ../appendix/github-intro.html#fork-the-test-repository
|
||||
[submit]: ../appendix/github-intro.html#submit
|
|
@ -9,6 +9,7 @@ suites, test contributions must be reviewed by a peer.
|
|||
|
||||
checklist
|
||||
email
|
||||
git
|
||||
```
|
||||
|
||||
## Test Review Policy
|
||||
|
|
|
@ -7,13 +7,6 @@ partial interface CSSRule {
|
|||
const unsigned short SUPPORTS_RULE = 12;
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface CSSGroupingRule : CSSRule {
|
||||
readonly attribute CSSRuleList cssRules;
|
||||
unsigned long insertRule (CSSOMString rule, unsigned long index);
|
||||
void deleteRule (unsigned long index);
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface CSSConditionRule : CSSGroupingRule {
|
||||
attribute CSSOMString conditionText;
|
||||
|
|
|
@ -143,6 +143,9 @@ dictionary RTCMediaSourceStats : RTCStats {
|
|||
};
|
||||
|
||||
dictionary RTCAudioSourceStats : RTCMediaSourceStats {
|
||||
double audioLevel;
|
||||
double totalAudioEnergy;
|
||||
double totalSamplesDuration;
|
||||
};
|
||||
|
||||
dictionary RTCVideoSourceStats : RTCMediaSourceStats {
|
||||
|
@ -207,10 +210,7 @@ dictionary RTCVideoReceiverStats : RTCVideoHandlerStats {
|
|||
};
|
||||
|
||||
dictionary RTCAudioHandlerStats : RTCMediaHandlerStats {
|
||||
double audioLevel;
|
||||
double totalAudioEnergy;
|
||||
boolean voiceActivityFlag;
|
||||
double totalSamplesDuration;
|
||||
};
|
||||
|
||||
dictionary RTCAudioSenderStats : RTCAudioHandlerStats {
|
||||
|
@ -233,6 +233,9 @@ dictionary RTCAudioReceiverStats : RTCAudioHandlerStats {
|
|||
unsigned long long concealmentEvents;
|
||||
unsigned long long insertedSamplesForDeceleration;
|
||||
unsigned long long removedSamplesForAcceleration;
|
||||
double audioLevel;
|
||||
double totalAudioEnergy;
|
||||
double totalSamplesDuration;
|
||||
};
|
||||
|
||||
dictionary RTCDataChannelStats : RTCStats {
|
||||
|
@ -361,6 +364,12 @@ partial dictionary RTCInboundRtpStreamStats {
|
|||
double fractionLost;
|
||||
};
|
||||
|
||||
partial dictionary RTCAudioHandlerStats {
|
||||
double audioLevel;
|
||||
double totalAudioEnergy;
|
||||
double totalSamplesDuration;
|
||||
};
|
||||
|
||||
partial dictionary RTCVideoSenderStats {
|
||||
unsigned long keyFramesSent;
|
||||
};
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<script>
|
||||
<script type="module">
|
||||
import { getOppositeOrientation } from "/screen-orientation/resources/orientation-utils.js";
|
||||
promise_test(async t => {
|
||||
await test_driver.bless("request full screen", () => {
|
||||
|
@ -15,10 +15,10 @@
|
|||
// This one resolves, because we are re-locking.
|
||||
const pMustResolve = new Promise(r => {
|
||||
screen.orientation.onchange = () => {
|
||||
r(orientation.lock("any"));
|
||||
r(screen.orientation.lock("any"));
|
||||
};
|
||||
});
|
||||
await promise_rejects(t, new TypeError(), pMustReject);
|
||||
await promise_rejects(t, "AbortError", pMustReject);
|
||||
await pMustResolve;
|
||||
screen.orientation.unlock();
|
||||
return document.exitFullscreen();
|
||||
|
|
|
@ -13,5 +13,5 @@ export async function loadIframe(src = "/screen-orientation/resources/blank.html
|
|||
export function getOppositeOrientation() {
|
||||
const { type: currentOrientation } = screen.orientation;
|
||||
const isPortrait = currentOrientation.includes("portrait");
|
||||
return (newOrientation = `${isPortrait ? "landscape" : "portrait"}`);
|
||||
return isPortrait ? "landscape" : "portrait";
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue