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

Use raw handles to create surfman contexts #29871

Merged
merged 1 commit into from Aug 3, 2023

Conversation

wusyong
Copy link
Contributor

@wusyong wusyong commented Jun 14, 2023


  • ./mach build -d does not report any errors
  • ./mach test-tidy does not report any errors
  • These changes do not require tests because it only changes how winit port create surfman contexts.

It's amazing to see many activities on Servo recently. I would like to look into building it as a library crate again.
But I think it's best I could start something small to prevent getting stuck.
I hope it can accept any kind of window libraries and frameworks, with something like winit as fallback.
There will be people using various tools like gtk, UI kit, glazier (window crate from druid community).
Exposing API to accept raw window and display handle should do the work.
And I think this can start with chaning internal use first.
However, Connection::from_raw_display_handle isn't included in version 0.6, so I have to patch it.
Could it release another version for this?

@jdm
Copy link
Member

jdm commented Jun 16, 2023

I have published surfman 0.7.0 and surfman-chains 0.8.0.

@wusyong
Copy link
Contributor Author

wusyong commented Jun 16, 2023

Thanks for updating it. I think webxr also need to update the dependencies.
But since servo use it from git, it doesn't need to publish anytime soon.
I opened a PR there: servo/webxr#204

@jdm
Copy link
Member

jdm commented Jun 16, 2023

@bors-servo r+

@bors-servo
Copy link
Contributor

📌 Commit b2bc037 has been approved by jdm

@bors-servo
Copy link
Contributor

⌛ Testing commit b2bc037 with merge fb1b54d...

bors-servo added a commit that referenced this pull request Jun 16, 2023
Use raw handles to create surfman context instead

<!-- Please describe your changes on the following line: -->

---
<!-- 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: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because it only changes how winit port create surfman contexts.

<!-- 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. -->

It's amazing to see many activities on Servo recently. I would like to look into building it as a library crate again.
But I think it's best I could start something small to prevent getting stuck.
I hope it can accept any kind of window libraries and frameworks, with something like winit as fallback.
There will be people using various tools like gtk, UI kit, glazier (window crate from druid community).
Exposing API to accept raw window and display handle should do the work.
And I think this can start with chaning internal use first.
However, `Connection::from_raw_display_handle` isn't included in version 0.6, so I have to patch it.
Could it release another version for this?
@github-actions
Copy link

Test results for linux-wpt-layout-2020 from try job (#5294202453):

Flaky unexpected result (2)
  • OK /_mozilla/mozilla/task_queue_throttling.any.html (#22519)
    • FAIL [expected PASS] subtest: Throttling the performance timeline task queue. assert_true: expected true got false
  • TIMEOUT [expected FAIL] /css/CSS2/generated-content/content-021.xht
Stable unexpected results that are known to be intermittent (1)
  • PASS [expected TIMEOUT] /css/css-color/animation/opacity-animation-ending-correctly-002.html (#29216)

@github-actions
Copy link

Test results for linux-wpt-layout-2013 from try job (#5294202453):

Flaky unexpected result (14)
  • OK /_mozilla/mozilla/task_queue_throttling.any.html (#22519)
    • FAIL [expected PASS] subtest: Throttling the performance timeline task queue. assert_true: expected true got false
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-with-non-reserved-words.html (#16216)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /_webgl/conformance/uniforms/out-of-bounds-uniform-array-access.html (#26225)
    • NOTRUN [expected PASS] subtest: Overall test
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigate-to-unparseable-url.html (#29050)
    • PASS [expected FAIL] subtest: <a> tag navigate fails for unparseable URLs
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-cross-origin.sub.window.html (#29056)
    • PASS [expected FAIL] subtest: Cross-origin navigation started from unload handler must be ignored
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html (#22647)
    • TIMEOUT [expected FAIL] subtest: Check that popups from a sandboxed iframe escape the sandbox if
      allow-popups-to-escape-sandbox is used Test timed out
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html (#24057)
    • TIMEOUT [expected FAIL] subtest: Check that popups from a sandboxed iframe escape the sandbox if
      allow-popups-to-escape-sandbox is used Test timed out
  • OK /html/semantics/embedded-content/the-img-element/non-active-document.html (#21544)
    • FAIL [expected PASS] subtest: createHTMLDocument assert_unreached: got unexpected error event Reached unreachable code
    • FAIL [expected PASS] subtest: <template> assert_unreached: got unexpected error event Reached unreachable code
  • TIMEOUT [expected OK] /html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html (#29724)
    • TIMEOUT [expected PASS] subtest: reparent-form-during-planned-navigation-task Test timed out
  • ERROR /resource-timing/content-type-parsing.html (#29131)
    • FAIL [expected TIMEOUT] subtest: mime-type 16 : text/html;charset=�gbk assert_equals: expected (string) "text/html" but got (undefined) undefined
    • TIMEOUT [expected NOTRUN] subtest: mime-type 17 : text/html;charset= gbk Test timed out
  • CRASH [expected TIMEOUT] /webmessaging/broadcastchannel/cross-partition.https.tentative.html (#29058)
  • OK [expected TIMEOUT] /webmessaging/with-ports/017.html (#24486)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, about:blank
  • OK [expected ERROR] /workers/constructors/Worker/Worker-constructor.html (#22991)
Stable unexpected results that are known to be intermittent (12)
  • OK /css/css-transforms/animation/transform-interpolation-004.html (#28335)
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (-1) should be [matrix3d(1, 0, 0, 0, 5.2998553125713235, 1, 0, 0, 0, 0, 1, 0, -8, 4, -12, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (0.25) should be [matrix3d(1, 0, 0, 0, 0.621795827675797, 1, 0, 0, 0, 0, 1, 0, 2, -1, 3, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (0.75) should be [matrix3d(1, 0, 0, 0, -1.2494279662824135, 1, 0, 0, 0, 0, 1, 0, 6, -3, 9, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (1) should be [matrix3d(1, 0, 0, 0, -2.185039863261519, 1, 0, 0, 0, 0, 1, 0, 8, -4, 12, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (2) should be [matrix3d(1, 0, 0, 0, -5.9274874511779405, 1, 0, 0, 0, 0, 1, 0, 16, -8, 24, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (-1) should be [matrix3d(1, 0, 0, 0, 5.2998553125713235, 1, 0, 0, 0, 0, 1, 0, -8, 4, -12, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (0.25) should be [matrix3d(1, 0, 0, 0, 0.621795827675797, 1, 0, 0, 0, 0, 1, 0, 2, -1, 3, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (0.75) should be [matrix3d(1, 0, 0, 0, -1.2494279662824135, 1, 0, 0, 0, 0, 1, 0, 6, -3, 9, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (1) should be [matrix3d(1, 0, 0, 0, -2.185039863261519, 1, 0, 0, 0, 0, 1, 0, 8, -4, 12, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (2) should be [matrix3d(1, 0, 0, 0, -5.9274874511779405, 1, 0, 0, 0, 0, 1, 0, 16, -8, 24, 1)]
    • And 56 more unexpected results...
  • OK /fetch/local-network-access/worker-blob-fetch.window.html (#29602)
    • FAIL [expected PASS] subtest: private to private: success. assert_equals: fetch error expected (undefined) undefined but got (string) "unknown error"
  • OK [expected TIMEOUT] /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html (#29048)
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html (#28681)
    • FAIL [expected PASS] subtest: load & pageshow events do not fire on contentWindow of <iframe> element created with src='about:blank' assert_unreached: load should not be fired Reached unreachable code
  • OK /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html (#28697)
  • OK /html/browsers/browsing-the-web/read-media/pageload-image-in-popup.html (#23849)
    • FAIL [expected PASS] subtest: The document for a standalone media file should have one child in the body. assert_equals: expected "image/png" but got "text/html"
  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/supported-elements.html (#24145)
    • TIMEOUT [expected FAIL] subtest: Area element should support autofocus Test timed out
  • CRASH [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html (#24066)
  • TIMEOUT [expected OK] /html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html (#23205)
    • NOTRUN [expected FAIL] subtest: Check that rel=noopener with target=_self does a normal load
    • NOTRUN [expected FAIL] subtest: Check that rel=noopener with target=_top does a normal load
  • TIMEOUT /html/webappapis/scripting/events/compile-event-handler-settings-objects.html (#24246)
    • FAIL [expected PASS] subtest: The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document assert_equals: expected "/html/webappapis/scripting/events/resources/open-window.html" but got "blank"
  • TIMEOUT [expected OK] /html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html (#25805)
    • TIMEOUT [expected FAIL] subtest: Fulfillment handler on pending-then-fulfilled promise Test timed out
    • TIMEOUT [expected FAIL] subtest: Rejection handler on pending-then-rejected promise Test timed out
  • TIMEOUT [expected OK] /webaudio/the-audio-api/the-audiocontext-interface/audiocontext-not-fully-active.html (#27664)

@bors-servo
Copy link
Contributor

💔 Test failed - checks-github

@CYBAI
Copy link
Member

CYBAI commented Jun 17, 2023

@bors-servo retry

@bors-servo
Copy link
Contributor

⌛ Testing commit b2bc037 with merge 9342d50...

bors-servo added a commit that referenced this pull request Jun 17, 2023
Use raw handles to create surfman context instead

<!-- Please describe your changes on the following line: -->

---
<!-- 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: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because it only changes how winit port create surfman contexts.

<!-- 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. -->

It's amazing to see many activities on Servo recently. I would like to look into building it as a library crate again.
But I think it's best I could start something small to prevent getting stuck.
I hope it can accept any kind of window libraries and frameworks, with something like winit as fallback.
There will be people using various tools like gtk, UI kit, glazier (window crate from druid community).
Exposing API to accept raw window and display handle should do the work.
And I think this can start with chaning internal use first.
However, `Connection::from_raw_display_handle` isn't included in version 0.6, so I have to patch it.
Could it release another version for this?
@github-actions
Copy link

Test results for linux-wpt-layout-2020 from try job (#5295987971):

Stable unexpected results that are known to be intermittent (1)
  • PASS [expected TIMEOUT] /css/css-color/animation/opacity-animation-ending-correctly-002.html (#29216)

@github-actions
Copy link

Test results for linux-wpt-layout-2013 from try job (#5295987971):

Flaky unexpected result (13)
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-with-non-reserved-words.html (#16216)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /_webgl/conformance/uniforms/out-of-bounds-uniform-array-access.html (#26225)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected PASS] /css/css-color/animation/opacity-animation-ending-correctly-002.html (#29216)
  • PASS [expected FAIL] /css/css-text/white-space/trailing-other-space-separators-break-spaces-004.html (#25875)
  • OK [expected TIMEOUT] /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html (#29048)
  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/navigate-to-unparseable-url.html (#29050)
    • TIMEOUT [expected FAIL] subtest: location.href setter throws a SyntaxError DOMException for unparseable URLs Test timed out
    • NOTRUN [expected FAIL] subtest: <a> tag navigate fails for unparseable URLs
  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/skip-another-top-level-browsing-context.html (#24161)
    • TIMEOUT [expected PASS] subtest: Autofocus elements queued in another top-level browsing context's documents should be skipped. Test timed out
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html (#22647)
    • TIMEOUT [expected FAIL] subtest: Check that popups from a sandboxed iframe escape the sandbox if
      allow-popups-to-escape-sandbox is used Test timed out
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html (#24057)
    • TIMEOUT [expected FAIL] subtest: Check that popups from a sandboxed iframe escape the sandbox if
      allow-popups-to-escape-sandbox is used Test timed out
  • TIMEOUT [expected OK] /html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html (#29634)
    • TIMEOUT [expected PASS] subtest: Verifies that location navigations take precedence when following form submissions. Test timed out
  • TIMEOUT /html/webappapis/scripting/events/compile-event-handler-settings-objects.html (#24246)
    • FAIL [expected PASS] subtest: The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document assert_equals: expected "/html/webappapis/scripting/events/resources/open-window.html" but got "blank"
  • OK /workers/dedicated-worker-from-blob-url.window.html (#22286)
    • PASS [expected FAIL] subtest: Creating a dedicated worker from a blob URL works immediately before revoking.
Stable unexpected results that are known to be intermittent (12)
  • OK /css/css-transforms/animation/transform-interpolation-004.html (#28335)
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (-1) should be [matrix3d(1, 0, 0, 0, 5.2998553125713235, 1, 0, 0, 0, 0, 1, 0, -8, 4, -12, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (0.25) should be [matrix3d(1, 0, 0, 0, 0.621795827675797, 1, 0, 0, 0, 0, 1, 0, 2, -1, 3, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (0.75) should be [matrix3d(1, 0, 0, 0, -1.2494279662824135, 1, 0, 0, 0, 0, 1, 0, 6, -3, 9, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (1) should be [matrix3d(1, 0, 0, 0, -2.185039863261519, 1, 0, 0, 0, 0, 1, 0, 8, -4, 12, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (2) should be [matrix3d(1, 0, 0, 0, -5.9274874511779405, 1, 0, 0, 0, 0, 1, 0, 16, -8, 24, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (-1) should be [matrix3d(1, 0, 0, 0, 5.2998553125713235, 1, 0, 0, 0, 0, 1, 0, -8, 4, -12, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (0.25) should be [matrix3d(1, 0, 0, 0, 0.621795827675797, 1, 0, 0, 0, 0, 1, 0, 2, -1, 3, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (0.75) should be [matrix3d(1, 0, 0, 0, -1.2494279662824135, 1, 0, 0, 0, 0, 1, 0, 6, -3, 9, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (1) should be [matrix3d(1, 0, 0, 0, -2.185039863261519, 1, 0, 0, 0, 0, 1, 0, 8, -4, 12, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (2) should be [matrix3d(1, 0, 0, 0, -5.9274874511779405, 1, 0, 0, 0, 0, 1, 0, 16, -8, 24, 1)]
    • And 56 more unexpected results...
  • OK /fetch/local-network-access/worker-blob-fetch.window.html (#29602)
    • FAIL [expected PASS] subtest: private to private: success. assert_equals: fetch error expected (undefined) undefined but got (string) "unknown error"
  • TIMEOUT /fetch/metadata/generated/css-images.sub.tentative.html (#29047)
    • TIMEOUT [expected PASS] subtest: background-image sec-fetch-site - HTTPS downgrade (header not sent) Test timed out
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-cross-origin.sub.window.html (#29056)
    • PASS [expected FAIL] subtest: Cross-origin navigation started from unload handler must be ignored
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.html (#29049)
    • FAIL [expected PASS] subtest: Same-origin navigation started from unload handler must be ignored assert_equals: expected "?pass" but got "?fail"
  • OK /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html (#28697)
  • OK /html/browsers/browsing-the-web/read-media/pageload-image-in-popup.html (#23849)
    • FAIL [expected PASS] subtest: The document for a standalone media file should have one child in the body. assert_equals: expected "image/png" but got "text/html"
  • OK /html/webappapis/dynamic-markup-insertion/document-write/module-tla-delayed.html (#29137)
    • FAIL [expected PASS] subtest: document.write in an imported module assert_true: onload must be called expected true got false
  • OK [expected TIMEOUT] /html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html (#26371)
    • FAIL [expected TIMEOUT] subtest: delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire assert_array_equals: expected property 0 to be "InvalidStateError" but got "NotSupportedError" (expected array ["InvalidStateError"] got ["NotSupportedError"])
  • TIMEOUT [expected OK] /webaudio/the-audio-api/the-audiocontext-interface/audiocontext-not-fully-active.html (#27664)
  • OK [expected TIMEOUT] /webmessaging/without-ports/018.html (#24485)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, javascript:
  • OK [expected TIMEOUT] /webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html (#29053)
    • PASS [expected TIMEOUT] subtest: StorageKey: test 3P about:blank window opened from a 3P iframe

@bors-servo
Copy link
Contributor

💔 Test failed - checks-github

@wusyong
Copy link
Contributor Author

wusyong commented Jun 17, 2023

It looks like the sm-raw-window-handle feature implementation in surfman isn't correct on Windows.
I opened a PR there: servo/surfman#253

@CYBAI
Copy link
Member

CYBAI commented Jun 17, 2023

Windows build failed and wait for servo/surfman#253.

@jdm
Copy link
Member

jdm commented Jun 19, 2023

I've published surfman 0.7.1. You should be able to run cargo update -p surfman and commit the changes.

@jdm
Copy link
Member

jdm commented Jun 20, 2023

@bors-servo r+

@bors-servo
Copy link
Contributor

📌 Commit e7623bb has been approved by jdm

@bors-servo
Copy link
Contributor

⌛ Testing commit e7623bb with merge a51b0b9...

bors-servo added a commit that referenced this pull request Jun 20, 2023
Use raw handles to create surfman context instead

<!-- Please describe your changes on the following line: -->

---
<!-- 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: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because it only changes how winit port create surfman contexts.

<!-- 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. -->

It's amazing to see many activities on Servo recently. I would like to look into building it as a library crate again.
But I think it's best I could start something small to prevent getting stuck.
I hope it can accept any kind of window libraries and frameworks, with something like winit as fallback.
There will be people using various tools like gtk, UI kit, glazier (window crate from druid community).
Exposing API to accept raw window and display handle should do the work.
And I think this can start with chaning internal use first.
However, `Connection::from_raw_display_handle` isn't included in version 0.6, so I have to patch it.
Could it release another version for this?
@github-actions
Copy link

Test results for linux-wpt-layout-2013 from try job (#5324394329):

Flaky unexpected result (18)
  • OK /_mozilla/css/stylesheet_media_queries.html (#17159)
    • FAIL [expected PASS] subtest: Media queries within stylesheets assert_equals: expected "rgb(0, 255, 0)" but got "rgb(255, 0, 0)"
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-with-non-reserved-words.html (#16216)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /_webgl/conformance/uniforms/out-of-bounds-uniform-array-access.html (#26225)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /fetch/local-network-access/iframe.tentative.https.window.html (#29605)
    • TIMEOUT [expected PASS] subtest: local to local, grandparent navigates: no preflight required. Test timed out
    • TIMEOUT [expected PASS] subtest: local to local (same-origin), grandparent navigates: no preflight required. Test timed out
    • TIMEOUT [expected FAIL] subtest: public to local, grandparent navigates: failure. Test timed out
    • TIMEOUT [expected FAIL] subtest: public to local, grandparent navigates: success. Test timed out
  • TIMEOUT /fetch/metadata/generated/css-images.sub.tentative.html (#29047)
    • TIMEOUT [expected PASS] subtest: background-image sec-fetch-site - HTTPS downgrade (header not sent) Test timed out
    • FAIL [expected PASS] subtest: border-image sec-fetch-site - HTTPS downgrade (header not sent) assert_unreached: Reached unreachable code
  • ERROR [expected TIMEOUT] /html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html (#28541)
  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/005.html (#27062)
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html (#28691)
    • PASS [expected FAIL] subtest: load event does not fire on window.open('about:blank')
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigate-to-unparseable-url.html (#29050)
    • PASS [expected FAIL] subtest: <a> tag navigate fails for unparseable URLs
  • OK /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html (#28697)
    • PASS [expected FAIL] subtest: aElement.click() before the load event must NOT replace
  • TIMEOUT [expected OK] /html/browsers/origin/cross-origin-objects/cross-origin-objects.html (#28569)
  • OK /html/semantics/forms/historical.html (#28568)
    • FAIL [expected PASS] subtest: <input name=isindex> should not be supported assert_regexp_match: expected object "/?isindex=x$/" but got "about:blank"
  • OK /html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html (#23205)
    • PASS [expected FAIL] subtest: Check that rel=noopener with target=_self does a normal load
  • ERROR [expected OK] /html/semantics/scripting-1/the-script-element/defer-script/async-script.html?reload (#29054)
  • TIMEOUT [expected OK] /html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html (#25805)
    • TIMEOUT [expected FAIL] subtest: Fulfillment handler on pending-then-fulfilled promise Test timed out
    • TIMEOUT [expected FAIL] subtest: Rejection handler on pending-then-rejected promise Test timed out
  • OK [expected TIMEOUT] /html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html (#26371)
    • FAIL [expected TIMEOUT] subtest: delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire assert_array_equals: expected property 0 to be "InvalidStateError" but got "NotSupportedError" (expected array ["InvalidStateError"] got ["NotSupportedError"])
  • OK [expected TIMEOUT] /webmessaging/without-ports/017.html (#24486)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, about:blank
Stable unexpected results that are known to be intermittent (11)
  • OK [expected TIMEOUT] /_mozilla/mozilla/img_placeholder_load.html (#28717)
    • PASS [expected TIMEOUT] subtest: Loading a placeholder image should trigger an error on the img element
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html (#28681)
    • FAIL [expected PASS] subtest: load & pageshow events do not fire on contentWindow of <iframe> element created with src='about:blank' assert_unreached: load should not be fired Reached unreachable code
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.html (#29049)
    • FAIL [expected PASS] subtest: Same-origin navigation started from unload handler must be ignored assert_equals: expected "?pass" but got "?fail"
  • OK /html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html (#29046)
    • PASS [expected FAIL] subtest: first argument: absolute url
  • CRASH [expected OK] /html/browsers/windows/embedded-opener-remove-frame.html (#23867)
  • OK [expected TIMEOUT] /html/interaction/focus/the-autofocus-attribute/supported-elements.html (#24145)
    • FAIL [expected TIMEOUT] subtest: Element with tabindex should support autofocus assert_equals: expected "SPAN" but got "BODY"
    • PASS [expected NOTRUN] subtest: Non-HTMLElement should not support autofocus
    • FAIL [expected NOTRUN] subtest: Host element with delegatesFocus should support autofocus promise_test: Unhandled rejection with value: object "TypeError: host.attachShadow is not a function"
    • FAIL [expected NOTRUN] subtest: Host element with delegatesFocus including no focusable descendants should be skipped promise_test: Unhandled rejection with value: object "TypeError: host.attachShadow is not a function"
    • FAIL [expected NOTRUN] subtest: Area element should support autofocus promise_test: Unhandled rejection with value: object "TypeError: w.document.querySelector(...) is null"
  • OK [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html (#22667)
    • FAIL [expected TIMEOUT] subtest: Check that popups from a sandboxed iframe escape the sandbox if
      allow-popups-to-escape-sandbox is used assert_equals: It came from a sandboxed iframe expected "null" but got "http://web-platform.test:8000"
  • OK [expected CRASH] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html (#24066)
  • OK /html/semantics/forms/form-submission-0/multipart-formdata.window.html (#28725)
    • FAIL [expected PASS] subtest: multipart/form-data: \r\n in value (formdata event) assert_equals: expected "\r\nContent-Disposition: form-data; name="a"\r\n\r\nb\r\nc\r\n--\r\n" but got ""
  • ERROR /resource-timing/content-type-parsing.html (#29131)
    • FAIL [expected TIMEOUT] subtest: mime-type 16 : text/html;charset=�gbk assert_equals: expected (string) "text/html" but got (undefined) undefined
    • TIMEOUT [expected NOTRUN] subtest: mime-type 17 : text/html;charset= gbk Test timed out
  • TIMEOUT [expected OK] /webaudio/the-audio-api/the-audiocontext-interface/audiocontext-not-fully-active.html (#27664)

@bors-servo
Copy link
Contributor

💔 Test failed - checks-github

@jdm
Copy link
Member

jdm commented Jun 20, 2023

Interesting; the windows smoke test failed.

@wusyong
Copy link
Contributor Author

wusyong commented Jun 21, 2023

Sorry I'm still triaging issues when I build servo on Windows.
Could bors try the CI with temprory patch commit I just pushed?
I'll revert it once this can be passed.

@CYBAI
Copy link
Member

CYBAI commented Jun 21, 2023

@bors-servo try

@bors-servo
Copy link
Contributor

⌛ Trying commit 5a10430 with merge 1f929d5...

bors-servo added a commit that referenced this pull request Jun 21, 2023
Use raw handles to create surfman context instead

<!-- Please describe your changes on the following line: -->

---
<!-- 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: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because it only changes how winit port create surfman contexts.

<!-- 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. -->

It's amazing to see many activities on Servo recently. I would like to look into building it as a library crate again.
But I think it's best I could start something small to prevent getting stuck.
I hope it can accept any kind of window libraries and frameworks, with something like winit as fallback.
There will be people using various tools like gtk, UI kit, glazier (window crate from druid community).
Exposing API to accept raw window and display handle should do the work.
And I think this can start with chaning internal use first.
However, `Connection::from_raw_display_handle` isn't included in version 0.6, so I have to patch it.
Could it release another version for this?
@github-actions
Copy link

Test results for linux-wpt-layout-2020 from try job (#5333791777):

Flaky unexpected result (2)
  • OK /_mozilla/mozilla/task_queue_throttling.any.html (#22519)
    • FAIL [expected PASS] subtest: Throttling the performance timeline task queue. assert_true: expected true got false
  • OK /css/cssom-view/MediaQueryList-addListener-handleEvent.html (#24571)
    • FAIL [expected PASS] subtest: looks up handleEvent method on every event dispatch assert_equals: expected 1 but got 0

@github-actions
Copy link

Test results for linux-wpt-layout-2013 from try job (#5333791777):

Flaky unexpected result (9)
  • TIMEOUT [expected PASS] /css/CSS2/css1/c5509-ipadn-l-003.xht
  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/overlapping-navigations-and-traversals/nav-cancelation-2.sub.html (#29738)
    • TIMEOUT [expected FAIL] subtest: grandparent cancels a pending navigation in a cross-origin grandchild Test timed out
  • TIMEOUT [expected OK] /html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html (#29634)
    • TIMEOUT [expected PASS] subtest: Verifies that location navigations take precedence when following form submissions. Test timed out
  • TIMEOUT [expected OK] /html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html (#29724)
    • TIMEOUT [expected PASS] subtest: reparent-form-during-planned-navigation-task Test timed out
  • OK /html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html (#23205)
    • PASS [expected FAIL] subtest: Check that rel=noopener with target=_self does a normal load
  • TIMEOUT [expected OK] /html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html (#25805)
    • TIMEOUT [expected FAIL] subtest: Fulfillment handler on pending-then-fulfilled promise Test timed out
    • TIMEOUT [expected FAIL] subtest: Rejection handler on pending-then-rejected promise Test timed out
  • OK [expected TIMEOUT] /webmessaging/with-ports/017.html (#24486)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, about:blank
  • TIMEOUT [expected OK] /webmessaging/with-ports/018.html (#24485)
    • TIMEOUT [expected PASS] subtest: origin of the script that invoked the method, javascript: Test timed out
  • OK [expected ERROR] /workers/constructors/Worker/Worker-constructor.html (#22991)
Stable unexpected results that are known to be intermittent (17)
  • OK [expected TIMEOUT] /_mozilla/mozilla/img_placeholder_load.html (#28717)
    • PASS [expected TIMEOUT] subtest: Loading a placeholder image should trigger an error on the img element
  • TIMEOUT [expected OK] /_webgl/conformance/uniforms/out-of-bounds-uniform-array-access.html (#26225)
    • NOTRUN [expected PASS] subtest: Overall test
  • ERROR [expected TIMEOUT] /html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html (#28541)
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html (#29048)
    • FAIL [expected PASS] subtest: Navigating to a different document with location.assign assert_equals: history.length must not change after normal navigation on initial empty document expected 1 but got 2
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html (#28691)
    • PASS [expected FAIL] subtest: load event does not fire on window.open('about:blank')
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-cross-origin.sub.window.html (#29056)
    • PASS [expected FAIL] subtest: Cross-origin navigation started from unload handler must be ignored
  • OK [expected TIMEOUT] /html/browsers/browsing-the-web/read-media/pageload-image-in-popup.html (#23849)
    • FAIL [expected NOTRUN] subtest: The document for a standalone media file should have one child in the body. assert_equals: expected "image/png" but got "text/html"
  • OK [expected TIMEOUT] /html/interaction/focus/the-autofocus-attribute/supported-elements.html (#24145)
    • FAIL [expected TIMEOUT] subtest: Element with tabindex should support autofocus assert_equals: expected "SPAN" but got "BODY"
    • PASS [expected NOTRUN] subtest: Non-HTMLElement should not support autofocus
    • FAIL [expected NOTRUN] subtest: Host element with delegatesFocus should support autofocus promise_test: Unhandled rejection with value: object "TypeError: host.attachShadow is not a function"
    • FAIL [expected NOTRUN] subtest: Host element with delegatesFocus including no focusable descendants should be skipped promise_test: Unhandled rejection with value: object "TypeError: host.attachShadow is not a function"
    • FAIL [expected NOTRUN] subtest: Area element should support autofocus promise_test: Unhandled rejection with value: object "TypeError: w.document.querySelector(...) is null"
  • OK [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html (#22667)
    • FAIL [expected TIMEOUT] subtest: Check that popups from a sandboxed iframe escape the sandbox if
      allow-popups-to-escape-sandbox is used assert_equals: It came from a sandboxed iframe expected "null" but got "http://web-platform.test:8000"
  • TIMEOUT [expected CRASH] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html (#24066)
    • NOTRUN [expected FAIL] subtest: Check that popups from a sandboxed iframe do not escape the sandbox
  • OK /html/semantics/forms/form-submission-0/multipart-formdata.window.html (#28725)
    • FAIL [expected PASS] subtest: multipart/form-data: \r\n in value (formdata event) assert_equals: expected "\r\nContent-Disposition: form-data; name="a"\r\n\r\nb\r\nc\r\n--\r\n" but got ""
  • OK /html/semantics/forms/form-submission-0/urlencoded2.window.html (#28687)
    • PASS [expected FAIL] subtest: application/x-www-form-urlencoded: Basic File test (formdata event)
    • PASS [expected FAIL] subtest: application/x-www-form-urlencoded: 0x00 in filename (formdata event)
  • OK /html/semantics/forms/historical.html (#28568)
    • FAIL [expected PASS] subtest: <input name=isindex> should not be supported assert_regexp_match: expected object "/?isindex=x$/" but got "about:blank"
  • TIMEOUT /html/webappapis/scripting/events/compile-event-handler-settings-objects.html (#24246)
    • FAIL [expected PASS] subtest: The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document assert_equals: expected "/html/webappapis/scripting/events/resources/open-window.html" but got "blank"
  • TIMEOUT [expected OK] /webaudio/the-audio-api/the-audiocontext-interface/audiocontext-not-fully-active.html (#27664)
  • TIMEOUT [expected CRASH] /webmessaging/broadcastchannel/cross-partition.https.tentative.html (#29058)
  • OK [expected TIMEOUT] /webmessaging/without-ports/017.html (#24486)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, about:blank

@bors-servo
Copy link
Contributor

💔 Test failed - checks-github

@bors-servo
Copy link
Contributor

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

@mrobinson
Copy link
Member

Rebased.

@bors-servo try

@github-actions
Copy link

github-actions bot commented Aug 1, 2023

🔨 Triggering try run (#5729712656) with platform=all and layout=all

@github-actions
Copy link

github-actions bot commented Aug 1, 2023

Test results for linux-wpt-layout-2020 from try job (#5729712656):

Flaky unexpected result (3)
  • OK /_mozilla/mozilla/task_queue_throttling.any.html (#22519)
    • FAIL [expected PASS] subtest: Throttling the performance timeline task queue. assert_true: expected true got false
  • TIMEOUT [expected PASS] /css/CSS2/colors/colors-007.xht
  • TIMEOUT [expected FAIL] /css/css-backgrounds/background-size-044.html

@github-actions
Copy link

github-actions bot commented Aug 1, 2023

Test results for linux-wpt-layout-2013 from try job (#5729712656):

Flaky unexpected result (11)
  • OK /_mozilla/mozilla/task_queue_throttling.any.html (#22519)
    • FAIL [expected PASS] subtest: Throttling the performance timeline task queue. assert_true: expected true got false
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-with-non-reserved-words.html (#16216)
    • NOTRUN [expected PASS] subtest: Overall test
  • OK [expected TIMEOUT] /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.html (#29081)
    • PASS [expected TIMEOUT] subtest: no-referrer referrer policy used to create the starting page
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigate-to-unparseable-url.html (#29050)
    • PASS [expected FAIL] subtest: <a> tag navigate fails for unparseable URLs
  • OK /html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html (#29046)
  • TIMEOUT [expected CRASH] /html/browsers/windows/embedded-opener-remove-frame.html (#23867)
    • TIMEOUT [expected FAIL] subtest: opener of discarded auxiliary browsing context Test timed out
  • TIMEOUT [expected PASS] /html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected-font-size-math.html
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html (#22647)
    • TIMEOUT [expected FAIL] subtest: Check that popups from a sandboxed iframe escape the sandbox if
      allow-popups-to-escape-sandbox is used Test timed out
  • TIMEOUT [expected OK] /html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html (#26371)
    • TIMEOUT [expected FAIL] subtest: delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire Test timed out
  • TIMEOUT [expected CRASH] /webmessaging/broadcastchannel/cross-partition.https.tentative.html (#29058)
Stable unexpected results that are known to be intermittent (10)
  • TIMEOUT [expected OK] /_webgl/conformance/uniforms/out-of-bounds-uniform-array-access.html (#26225)
    • NOTRUN [expected PASS] subtest: Overall test
  • OK /css/cssom-view/scroll-behavior-smooth-navigation.html (#29564)
    • PASS [expected FAIL] subtest: Smooth scrolling while doing history navigation.
  • OK [expected TIMEOUT] /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html (#29048)
    • PASS [expected FAIL] subtest: Navigating to a different document with link click
    • FAIL [expected TIMEOUT] subtest: Navigating to a different document with form submission assert_equals: expected "http://web-platform.test:8000/common/blank.html?1=" but got "about:blank"
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html (#28681)
    • PASS [expected FAIL] subtest: load & pageshow events do not fire on contentWindow of <iframe> element created with src='about:blank'
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.html (#29049)
    • PASS [expected FAIL] subtest: Same-origin navigation started from unload handler must be ignored
  • OK [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html (#24066)
    • FAIL [expected NOTRUN] subtest: Check that popups from a sandboxed iframe do not escape the sandbox assert_equals: It came from a sandboxed iframe expected "null" but got "http://web-platform.test:8000"
  • OK /html/semantics/forms/form-submission-0/text-plain.window.html (#28687)
    • FAIL [expected PASS] subtest: text/plain: Basic test (formdata event) assert_equals: expected "basic=test\r\n" but got ""
  • OK /html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html (#23205)
    • FAIL [expected PASS] subtest: Check that rel=noopener with target=_self does a normal load this.openedWindow.findLink is not a function
  • TIMEOUT /html/webappapis/scripting/events/compile-event-handler-settings-objects.html (#24246)
    • FAIL [expected PASS] subtest: The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document assert_equals: expected "/html/webappapis/scripting/events/resources/open-window.html" but got "blank"
  • OK [expected TIMEOUT] /html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html (#25805)

@github-actions
Copy link

github-actions bot commented Aug 1, 2023

✨ Try run (#5729712656) succeeded.

@mrobinson mrobinson changed the title Use raw handles to create surfman context instead Use raw handles to create surfman contexts Aug 1, 2023
@mrobinson mrobinson self-requested a review August 2, 2023 07:23
@mrobinson
Copy link
Member

I rebased this and pushed a few minor style fixes. I'll send it to the MQ.

@mrobinson mrobinson added this pull request to the merge queue Aug 2, 2023
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Aug 2, 2023
@mrobinson
Copy link
Member

This is failing the Windows smoketest:

Failed to create native widget: UnsupportedOnThisPlatform (thread main, at ports\winit\headed_window.rs:136)
   0: servo::backtrace::print
   1: core::fmt::write
             at /rustc/dc1d9d50fba2f6a1ccab8748a0050cde38253f60/library\core\src\fmt\mod.rs:1232
   2: std::io::Write::write_fmt
   3: servo::backtrace::print
   4: webxr_api::registry::MainThreadRegistry<GL>::register
   5: alloc::boxed::impl$47::call
             at /rustc/dc1d9d50fba2f6a1ccab8748a0050cde38253f60/library\alloc\src\boxed.rs:2002
   6: std::panicking::rust_panic_with_hook
             at /rustc/dc1d9d50fba2f6a1ccab8748a0050cde38253f60/library\std\src\panicking.rs:692
   7: std::panicking::begin_panic_handler::closure$0
             at /rustc/dc1d9d50fba2f6a1ccab8748a0050cde38253f60/library\std\src\panicking.rs:579
   8: std::sys_common::backtrace::__rust_end_short_backtrace<std::panicking::begin_panic_handler::closure_env$0,never$>
             at /rustc/dc1d9d50fba2f6a1ccab8748a0050cde38253f60/library\std\src\sys_common\backtrace.rs:137
   9: std::panicking::begin_panic_handler
             at /rustc/dc1d9d50fba2f6a1ccab8748a0050cde38253f60/library\std\src\panicking.rs:575
  10: core::panicking::panic_fmt
             at /rustc/dc1d9d50fba2f6a1ccab8748a0050cde38253f60/library\core\src\panicking.rs:64
  11: core::result::unwrap_failed
             at /rustc/dc1d9d50fba2f6a1ccab8748a0050cde38253f60/library\core\src\result.rs:1790
  12: servo::app::App::run
  13: webxr_api::registry::MainThreadRegistry<GL>::register
  14: std::sys_common::backtrace::__rust_begin_short_backtrace
  15: std::rt::lang_start::{{closure}}
  16: core::ops::function::impls::impl$2::call_once
             at /rustc/dc1d9d50fba2f6a1ccab8748a0050cde38253f60/library\core\src\ops\function.rs:287
  17: std::panicking::try::do_call
             at /rustc/dc1d9d50fba2f6a1ccab8748a0050cde38253f60/library\std\src\panicking.rs:483
  18: std::panicking::try
             at /rustc/dc1d9d50fba2f6a1ccab8748a0050cde38253f60/library\std\src\panicking.rs:447
  19: std::panic::catch_unwind
             at /rustc/dc1d9d50fba2f6a1ccab8748a0050cde38253f60/library\std\src\panic.rs:140
  20: std::rt::lang_start_internal::closure$2
             at /rustc/dc1d9d50fba2f6a1ccab8748a0050cde38253f60/library\std\src\rt.rs:148
  21: std::panicking::try::do_call
             at /rustc/dc1d9d50fba2f6a1ccab8748a0050cde38253f60/library\std\src\panicking.rs:483
  22: std::panicking::try
             at /rustc/dc1d9d50fba2f6a1ccab8748a0050cde38253f60/library\std\src\panicking.rs:447
  23: std::panic::catch_unwind
             at /rustc/dc1d9d50fba2f6a1ccab8748a0050cde38253f60/library\std\src\panic.rs:140
  24: std::rt::lang_start_internal
             at /rustc/dc1d9d50fba2f6a1ccab8748a0050cde38253f60/library\std\src\rt.rs:148
  25: main
  26: invoke_main
             at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
  27: __scrt_common_main_seh
             at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
  28: BaseThreadInitThunk
  29: RtlUserThreadStart
Servo exited with non-zero status 101
Error: Process completed with exit code 1.

@wusyong
Copy link
Contributor Author

wusyong commented Aug 3, 2023

@mrobinson Sorry I forgot to update status of this PR, because I'm still busing moving house.
We need surfman to publish another patch version to merge this PR.
The fix for that error hasn't been published yet

@mrobinson
Copy link
Member

@wusyong Thanks for the heads up. I've published a new version of surfman and updated this PR.

@mrobinson mrobinson added this pull request to the merge queue Aug 3, 2023
Merged via the queue into servo:master with commit 3fea90a Aug 3, 2023
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants