Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for some basic queries to layout_2020 #25690

Merged
merged 5 commits into from Feb 11, 2020
Merged

Conversation

@mrobinson
Copy link
Member

mrobinson commented Feb 5, 2020

These queries will make it easier to track progressions in the layout_2020 code.


  • ./mach build -d does not report any errors
  • ./mach test-tidy does not report any errors
  • These changes fix #___ (GitHub issue number if applicable)
  • There are tests for these changes OR
  • These changes do not require tests because ___
@highfive
Copy link

highfive commented Feb 5, 2020

Heads up! This PR modifies the following files:

  • @jgraham: tests/wpt/include-layout-2020.ini
@mrobinson mrobinson requested a review from SimonSapin Feb 5, 2020
@mrobinson mrobinson force-pushed the mrobinson:queries branch from 12c0409 to 141f440 Feb 5, 2020
components/layout_2020/flow/root.rs Outdated Show resolved Hide resolved
Au::from_f32_px(self.bounding_box_of_border_boxes.size.height.px()),
);
Rect::new(origin, size)
fn iterate_through_fragments(&self, iterator: &mut dyn FragmentIterator) {

This comment has been minimized.

@SimonSapin

SimonSapin Feb 5, 2020

Member
Suggested change
fn iterate_through_fragments(&self, iterator: &mut dyn FragmentIterator) {
fn find_fragment<T>(&self, iterator: impl FnMut(&Fragment, &PhysicalRect<Length>) -> Option<T>) -> Option<T> {
  • Why dyn Trait over impl Trait? I tend to default monomorphized static dispatch because it gives more inlining opportunities to the optimizer, but if there’s a reason to prefer dynamic dispatch I’m not opposed
  • Both impls of the FragmentIterator trait return false when they’ve found an appropriate fragment, and store some result in a field as a side effect. If we make that result be part of the return value instead (by replacing bool with Option) them those fields initialized to a zero/dummy value would not be needed.
  • With the change above there would be no need to access fields after iteration as ended, so by replacing the custom trait with FnMut we could use closure syntax and not need to define explicit structs, which would be more concise.

What do you think?

This comment has been minimized.

@mrobinson

mrobinson Feb 7, 2020

Author Member

Why dyn Trait over impl Trait? I tend to default monomorphized static dispatch because it gives more inlining opportunities to the optimizer, but if there’s a reason to prefer dynamic dispatch I’m not opposed

There's no explicit reason. I've modified this to use impl Trait static dispatch.

Both impls of the FragmentIterator trait return false when they’ve found an appropriate fragment, and store some result in a field as a side effect. If we make that result be part of the return value instead (by replacing bool with Option) them those fields initialized to a zero/dummy value would not be needed.

One issue is that some of these iterators will need to accumulate values. In fact, I have just modified the getBoundingClientRect iterator to accumulate a single rectangle for every fragment that has the appropriate tag. I think this is what should be done here. Perhaps it's still possible to do this with two generic type parameters?

This comment has been minimized.

@SimonSapin

SimonSapin Feb 7, 2020

Member

With FnMut (as opposed to Fn) closures can mutate their environment / captures. So accumulating things across calls should not be a problem. Would you like me to try moving to closures?

This comment has been minimized.

@mrobinson

mrobinson Feb 10, 2020

Author Member

Oops. I think I misinterpreted your FnMut suggestion. I've pushed a new version of the branch that does away with the traits and uses mutable closures.

Au::from_f32_px(rect.origin.x.px()),
Au::from_f32_px(rect.origin.y.px()),
),
Size2D::new(
Au::from_f32_px(rect.size.width.px()),
Au::from_f32_px(rect.size.height.px()),
Comment on lines 252 to 282

This comment has been minimized.

@SimonSapin

SimonSapin Feb 5, 2020

Member

It seems silly to do a lossy conversion from floating point to integer here when all consumers end up doing the opposite one. For example:

let rect = self.upcast::<Node>().bounding_content_box_or_zero();
DOMRect::new(
win.upcast(),
rect.origin.x.to_f64_px(),
rect.origin.y.to_f64_px(),
rect.size.width.to_f64_px(),
rect.size.height.to_f64_px(),
)

We can probably avoid it by changing Rect<Au> types to Rect<Length> in the query response, and move the conversion to Layout 2013 when creating that response. But let’s keep this for a future PR.

This comment has been minimized.

@mrobinson

mrobinson Feb 7, 2020

Author Member

Okay. I'm happy to do this in a followup.

components/layout_2020/flow/root.rs Outdated Show resolved Hide resolved
components/layout_2020/flow/root.rs Outdated Show resolved Hide resolved
@mrobinson mrobinson force-pushed the mrobinson:queries branch 2 times, most recently from e61a78b to 9e9be43 Feb 6, 2020
@paulrouget paulrouget removed their assignment Feb 7, 2020
@mrobinson mrobinson force-pushed the mrobinson:queries branch from 9e9be43 to cf7401b Feb 7, 2020
@mrobinson
Copy link
Member Author

mrobinson commented Feb 7, 2020

@SimonSapin, thanks for the review! I've pushed a new version of this change.

@mrobinson mrobinson force-pushed the mrobinson:queries branch from cf7401b to 6476813 Feb 10, 2020
@SimonSapin
Copy link
Member

SimonSapin commented Feb 10, 2020

Looks good. I’ve taken the liberty to add some commits to do the next step of returning Option instead of bool in the callbacks.

@bors-servo r+

@bors-servo
Copy link
Contributor

bors-servo commented Feb 10, 2020

📌 Commit b0109c6 has been approved by SimonSapin

@bors-servo
Copy link
Contributor

bors-servo commented Feb 10, 2020

Testing commit b0109c6 with merge ee98dd9...

bors-servo added a commit that referenced this pull request Feb 10, 2020
Add support for some basic queries to layout_2020

These queries will make it easier to track progressions in the layout_2020 code.

---
<!-- 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
- [ ] These changes fix #___ (GitHub issue number if applicable)

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

<!-- 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. -->
@bors-servo
Copy link
Contributor

bors-servo commented Feb 10, 2020

💔 Test failed - status-taskcluster

@jdm
Copy link
Member

jdm commented Feb 11, 2020

7 unexpected results that are NOT known-intermittents:
  â–¶ Unexpected subtest result in /_mozilla/css/flex-item-assign-inline-size.html:
  │ FAIL [expected PASS] Test inline size against percentage
  │   → assert_equals: expected 50 but got 0
  │ 
  │ @http://web-platform.test:8000/_mozilla/css/flex-item-assign-inline-size.html:59:5
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:2024:25
  │ test@http://web-platform.test:8000/resources/testharness.js:548:30
  â”” @http://web-platform.test:8000/_mozilla/css/flex-item-assign-inline-size.html:52:1


  â–¶ Unexpected subtest result in /css/cssom-view/scrollWidthHeight.xht:
  │ FAIL [expected PASS] elemSimple.clientWidth is the width of the padding edge
  │   → assert_equals: expected 240 but got 1
  │ 
  │ @http://web-platform.test:8000/css/cssom-view/scrollWidthHeight.xht:15:17
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:2024:25
  │ test@http://web-platform.test:8000/resources/testharness.js:548:30
  â”” @http://web-platform.test:8000/css/cssom-view/scrollWidthHeight.xht:14:13

  â–¶ Unexpected subtest result in /css/cssom-view/scrollWidthHeight.xht:
  │ FAIL [expected PASS] elemOverflow.clientWidth is the width of the padding edge
  │   → assert_equals: expected 240 but got 1
  │ 
  │ @http://web-platform.test:8000/css/cssom-view/scrollWidthHeight.xht:44:17
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:2024:25
  │ test@http://web-platform.test:8000/resources/testharness.js:548:30
  â”” @http://web-platform.test:8000/css/cssom-view/scrollWidthHeight.xht:43:13

  â–¶ Unexpected subtest result in /css/cssom-view/scrollWidthHeight.xht:
  │ FAIL [expected PASS] elemNestedOverflow.clientHeight is the height of the padding edge
  │   → assert_equals: expected 90 but got 1
  │ 
  │ @http://web-platform.test:8000/css/cssom-view/scrollWidthHeight.xht:55:17
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:2024:25
  │ test@http://web-platform.test:8000/resources/testharness.js:548:30
  â”” @http://web-platform.test:8000/css/cssom-view/scrollWidthHeight.xht:54:13

  â–¶ Unexpected subtest result in /css/cssom-view/scrollWidthHeight.xht:
  │ FAIL [expected PASS] elemOverflow.clientHeight is the height of the padding edge
  │   → assert_equals: expected 90 but got 1
  │ 
  │ @http://web-platform.test:8000/css/cssom-view/scrollWidthHeight.xht:23:17
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:2024:25
  │ test@http://web-platform.test:8000/resources/testharness.js:548:30
  â”” @http://web-platform.test:8000/css/cssom-view/scrollWidthHeight.xht:22:13

  â–¶ Unexpected subtest result in /css/cssom-view/scrollWidthHeight.xht:
  │ FAIL [expected PASS] elemNestedOverflow.clientWidth is the height of the padding edge
  │   → assert_equals: expected 240 but got 1
  │ 
  │ @http://web-platform.test:8000/css/cssom-view/scrollWidthHeight.xht:65:17
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:2024:25
  │ test@http://web-platform.test:8000/resources/testharness.js:548:30
  â”” @http://web-platform.test:8000/css/cssom-view/scrollWidthHeight.xht:64:13

  â–¶ Unexpected subtest result in /css/cssom-view/scrollWidthHeight.xht:
  │ FAIL [expected PASS] elemSimple.clientHeight is the height of the padding edge
  │   → assert_equals: expected 90 but got 1
  │ 
  │ @http://web-platform.test:8000/css/cssom-view/scrollWidthHeight.xht:7:17
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:2024:25
  │ test@http://web-platform.test:8000/resources/testharness.js:548:30
  â”” @http://web-platform.test:8000/css/cssom-view/scrollWidthHeight.xht:6:13


  â–¶ Unexpected subtest result in /css/cssom-view/scrolling-quirks-vs-nonquirks.html:
  │ FAIL [expected PASS] clientWidth/clientHeight of the content in non-quirks mode
  │   → assert_equals: clientWidth should be  expected 660 but got 40
  │ 
  │ nonQuirksFrame.onload/<@http://web-platform.test:8000/css/cssom-view/scrolling-quirks-vs-nonquirks.html:212:5
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:2024:25
  │ test@http://web-platform.test:8000/resources/testharness.js:548:30
  â”” nonQuirksFrame.onload@http://web-platform.test:8000/css/cssom-view/scrolling-quirks-vs-nonquirks.html:211:3

  â–¶ Unexpected subtest result in /css/cssom-view/scrolling-quirks-vs-nonquirks.html:
  │ FAIL [expected PASS] clientWidth/clientHeight of the content in quirks mode
  │   → assert_equals: clientWidth should be 660 expected 660 but got 40
  │ 
  │ quirksFrame.onload/<@http://web-platform.test:8000/css/cssom-view/scrolling-quirks-vs-nonquirks.html:117:5
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:2024:25
  │ test@http://web-platform.test:8000/resources/testharness.js:548:30
  â”” quirksFrame.onload@http://web-platform.test:8000/css/cssom-view/scrolling-quirks-vs-nonquirks.html:116:3


  â–¶ Unexpected subtest result in /css/cssom-view/scrollLeftTop.html:
  â”” PASS [expected FAIL] writing-mode:horizontal-tb; direction:ltr

  â–¶ Unexpected subtest result in /css/cssom-view/scrollLeftTop.html:
  â”” PASS [expected FAIL] writing-mode:horizontal-tb; direction:rtl

  â–¶ Unexpected subtest result in /css/cssom-view/scrollLeftTop.html:
  â”” PASS [expected FAIL] writing-mode:vertical-lr; direction:ltr

  â–¶ Unexpected subtest result in /css/cssom-view/scrollLeftTop.html:
  â”” PASS [expected FAIL] writing-mode:vertical-lr; direction:rtl

  â–¶ Unexpected subtest result in /css/cssom-view/scrollLeftTop.html:
  â”” PASS [expected FAIL] writing-mode:vertical-rl; direction:ltr

  â–¶ Unexpected subtest result in /css/cssom-view/scrollLeftTop.html:
  â”” PASS [expected FAIL] writing-mode:vertical-rl; direction:rtl


  â–¶ ERROR [expected OK] /css/cssom-view/scrollWidthHeightWhenNotScrollable.xht
  │   → uncaught exception: unknown (can't convert to string)
  │ 
  â”” @http://web-platform.test:8000/css/cssom-view/scrollWidthHeightWhenNotScrollable.xht:35:17

  â–¶ Unexpected subtest result in /css/cssom-view/scrollWidthHeightWhenNotScrollable.xht:
  │ FAIL [expected PASS] elemSimple.clientHeight is the height of the padding edge
  │   → assert_equals: expected 90 but got 1
  │ 
  │ @http://web-platform.test:8000/css/cssom-view/scrollWidthHeightWhenNotScrollable.xht:7:17
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:2024:25
  │ test@http://web-platform.test:8000/resources/testharness.js:548:30
  â”” @http://web-platform.test:8000/css/cssom-view/scrollWidthHeightWhenNotScrollable.xht:6:13

  â–¶ Unexpected subtest result in /css/cssom-view/scrollWidthHeightWhenNotScrollable.xht:
  │ FAIL [expected PASS] elemSimple.clientWidth is the width of the padding edge
  │   → assert_equals: expected 240 but got 1
  │ 
  │ @http://web-platform.test:8000/css/cssom-view/scrollWidthHeightWhenNotScrollable.xht:15:17
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:2024:25
  │ test@http://web-platform.test:8000/resources/testharness.js:548:30
  â”” @http://web-platform.test:8000/css/cssom-view/scrollWidthHeightWhenNotScrollable.xht:14:13

  â–¶ Unexpected subtest result in /css/cssom-view/scrollWidthHeightWhenNotScrollable.xht:
  │ FAIL [expected PASS] elemOverflow.clientHeight is the height of the padding edge
  │   → assert_equals: expected 90 but got 1
  │ 
  │ @http://web-platform.test:8000/css/cssom-view/scrollWidthHeightWhenNotScrollable.xht:23:17
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:2024:25
  │ test@http://web-platform.test:8000/resources/testharness.js:548:30
  â”” @http://web-platform.test:8000/css/cssom-view/scrollWidthHeightWhenNotScrollable.xht:22:13


  â–¶ OK [expected CRASH] /_mozilla/mozilla/fetch_cannot_overwhelm_system.window.html


  â–¶ Unexpected subtest result in /_mozilla/mozilla/client-top-left-height-width.html:
  │ FAIL [expected PASS] Inline block
  │   → assert_equals: expected 0 but got 100
  │ 
  │ test_rect@http://web-platform.test:8000/_mozilla/mozilla/client-top-left-height-width.html:86:7
  │ @http://web-platform.test:8000/_mozilla/mozilla/client-top-left-height-width.html:98:23
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:2024:25
  │ test@http://web-platform.test:8000/resources/testharness.js:548:30
  â”” @http://web-platform.test:8000/_mozilla/mozilla/client-top-left-height-width.html:98:5

  â–¶ Unexpected subtest result in /_mozilla/mozilla/client-top-left-height-width.html:
  │ FAIL [expected PASS] Block without border
  │   → assert_equals: expected 0 but got 100
  │ 
  │ test_rect@http://web-platform.test:8000/_mozilla/mozilla/client-top-left-height-width.html:86:7
  │ @http://web-platform.test:8000/_mozilla/mozilla/client-top-left-height-width.html:92:23
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:2024:25
  │ test@http://web-platform.test:8000/resources/testharness.js:548:30
  â”” @http://web-platform.test:8000/_mozilla/mozilla/client-top-left-height-width.html:92:5

  â–¶ Unexpected subtest result in /_mozilla/mozilla/client-top-left-height-width.html:
  │ FAIL [expected PASS] Absolutely positioned block
  │   → assert_equals: expected 0 but got 100
  │ 
  │ test_rect@http://web-platform.test:8000/_mozilla/mozilla/client-top-left-height-width.html:86:7
  │ @http://web-platform.test:8000/_mozilla/mozilla/client-top-left-height-width.html:95:23
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:2024:25
  │ test@http://web-platform.test:8000/resources/testharness.js:548:30
  â”” @http://web-platform.test:8000/_mozilla/mozilla/client-top-left-height-width.html:95:5

  â–¶ Unexpected subtest result in /_mozilla/mozilla/client-top-left-height-width.html:
  │ FAIL [expected PASS] Block without border and padding
  │   → assert_equals: expected 10 but got 120
  │ 
  │ test_rect@http://web-platform.test:8000/_mozilla/mozilla/client-top-left-height-width.html:86:7
  │ @http://web-platform.test:8000/_mozilla/mozilla/client-top-left-height-width.html:94:23
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:2024:25
  │ test@http://web-platform.test:8000/resources/testharness.js:548:30
  â”” @http://web-platform.test:8000/_mozilla/mozilla/client-top-left-height-width.html:94:5

  â–¶ Unexpected subtest result in /_mozilla/mozilla/client-top-left-height-width.html:
  │ FAIL [expected PASS] Rotated block
  │   → assert_equals: expected 0 but got 100
  │ 
  │ test_rect@http://web-platform.test:8000/_mozilla/mozilla/client-top-left-height-width.html:86:7
  │ @http://web-platform.test:8000/_mozilla/mozilla/client-top-left-height-width.html:96:23
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:2024:25
  │ test@http://web-platform.test:8000/resources/testharness.js:548:30
  â”” @http://web-platform.test:8000/_mozilla/mozilla/client-top-left-height-width.html:96:5

  â–¶ Unexpected subtest result in /_mozilla/mozilla/client-top-left-height-width.html:
  │ FAIL [expected PASS] Block with border
  │   → assert_equals: expected 10 but got 100
  │ 
  │ test_rect@http://web-platform.test:8000/_mozilla/mozilla/client-top-left-height-width.html:86:7
  │ @http://web-platform.test:8000/_mozilla/mozilla/client-top-left-height-width.html:93:23
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:2024:25
  │ test@http://web-platform.test:8000/resources/testharness.js:548:30
  â”” @http://web-platform.test:8000/_mozilla/mozilla/client-top-left-height-width.html:93:5

@SimonSapin
Copy link
Member

SimonSapin commented Feb 11, 2020

Hmm my commits seem to have changed the behavior more than I expected. I’ll look into it.

@bors-servo
Copy link
Contributor

bors-servo commented Feb 11, 2020

The latest upstream changes (presumably #25691) made this pull request unmergeable. Please resolve the merge conflicts.

bors-servo added a commit that referenced this pull request Feb 11, 2020
Add support for some basic queries to layout_2020

These queries will make it easier to track progressions in the layout_2020 code.

---
<!-- 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
- [ ] These changes fix #___ (GitHub issue number if applicable)

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

<!-- 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. -->
@bors-servo
Copy link
Contributor

bors-servo commented Feb 11, 2020

Testing commit 53d5e29 with merge dfdea2f...

@bors-servo
Copy link
Contributor

bors-servo commented Feb 11, 2020

💔 Test failed - status-taskcluster

@SimonSapin
Copy link
Member

SimonSapin commented Feb 11, 2020

@bors-servo retry

         > Could not GET 'https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.2.0/kotlin-stdlib-1.2.0.jar'. Received status code 504 from server: Gateway Time-out
@bors-servo
Copy link
Contributor

bors-servo commented Feb 11, 2020

Testing commit 53d5e29 with merge 95e7652...

bors-servo added a commit that referenced this pull request Feb 11, 2020
Add support for some basic queries to layout_2020

These queries will make it easier to track progressions in the layout_2020 code.

---
<!-- 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
- [ ] These changes fix #___ (GitHub issue number if applicable)

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

<!-- 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. -->
@bors-servo
Copy link
Contributor

bors-servo commented Feb 11, 2020

💔 Test failed - status-taskcluster

@jdm
Copy link
Member

jdm commented Feb 11, 2020

bors-servo added a commit that referenced this pull request Feb 11, 2020
Add support for some basic queries to layout_2020

These queries will make it easier to track progressions in the layout_2020 code.

---
<!-- 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
- [ ] These changes fix #___ (GitHub issue number if applicable)

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

<!-- 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. -->
@bors-servo
Copy link
Contributor

bors-servo commented Feb 11, 2020

Testing commit 53d5e29 with merge 59c2edd...

@bors-servo
Copy link
Contributor

bors-servo commented Feb 11, 2020

💔 Test failed - status-taskcluster

@jdm
Copy link
Member

jdm commented Feb 11, 2020

@bors-servo
Copy link
Contributor

bors-servo commented Feb 11, 2020

Testing commit 53d5e29 with merge 6b2079e...

bors-servo added a commit that referenced this pull request Feb 11, 2020
Add support for some basic queries to layout_2020

These queries will make it easier to track progressions in the layout_2020 code.

---
<!-- 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
- [ ] These changes fix #___ (GitHub issue number if applicable)

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

<!-- 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. -->
@bors-servo
Copy link
Contributor

bors-servo commented Feb 11, 2020

☀️ Test successful - status-taskcluster
Approved by: SimonSapin
Pushing 6b2079e to master...

@bors-servo bors-servo merged commit 53d5e29 into servo:master Feb 11, 2020
2 checks passed
2 checks passed
Community-TC (pull_request) TaskGroup: success
Details
homu Test successful
Details
@mrobinson mrobinson deleted the mrobinson:queries branch Mar 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

6 participants
You can’t perform that action at this time.