\n```\nHere we're trying to outdent an LI inside of a list.\nWPT asserts, that the entire nested OL should just be gotten rid of.\nThis makes sense and matches Chrome. (Firefox also removes the OL but\nthen additionally merges the LI with the preceding one)\n\nBut from what I can tell, the spec as written accomplishes none of that:\nThe outdent command first block-extends the range (step 3), which means\nthat it now wraps the inner LI.\nThen, (step 5) it makes a list of all 'leaf' nodes in the range. (A leaf\nnode being one with no further editable children, or, alternatively, an\nOL or UL or **correctly parented LI**)\nIn our example, *node list* contains only the LI now.\nAnd now, (step 6.1) the spec specifically does not outdent children of\nOL/UL elements... which includes our LI.\nSo `outdent` is never called.\n\nNot sure what to make of this yet, but I'll investigate it a bit more to\nsee how the WPT tests ended up that way. (and maybe go and compare\nhomework with Ladybird to see if they ended up doing anything different\nhere.)\n\n---------\n\nSigned-off-by: Psychpsyo (Cameron) <60073468+Psychpsyo@users.noreply.github.com>","author":{"name":"Psychpsyo (Cameron)","email":"60073468+Psychpsyo@users.noreply.github.com","date":"2026-11-03T18:40:09Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-11-03T18:40:09Z"},"timestamp":1793731209,"time_from_now":"10小时前"},"author":{"id":null,"login":"Psychpsyo (Cameron)","name":"Psychpsyo (Cameron)","type":null,"image_url":"system/lets/letter_avatars/2/P/131_142_118/120.png"},"committer":{"id":null,"login":"GitHub","name":"GitHub","type":null,"image_url":"system/lets/letter_avatars/2/G/249_174_27/120.png"}},"commits_count":59101,"zip_url":"https://www.gitlink.org.cn/api/dnrops/servo/archive/main.zip","tar_url":"https://www.gitlink.org.cn/api/dnrops/servo/archive/main.tar.gz","entries":[{"name":".cargo","path":".cargo","sha":"ac604f459b3d839b338cfb046b22301b773e3299","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"mach: No longer set the `CC` and `CXX` environment variables (#49066)\n\nThese were set about 6 years ago and it's not clear if they actually\nnecessary any longer as our build has changed greatly since then.\nSetting then causes a full rebuild when switching from `./mach build` to\n`cargo build` so this is an attempt to remove them and see what breaks\n(hopefully nothing).\n\nTesting: This should not change behavior, so existing tests should\nsuffice.\n\nSigned-off-by: Martin Robinson ","sha":"152c2e077c7804f24f06eb3c83023795f64ba5e1","created_at":"2026-10-22 15:00","time_from_now":"13天前","created_at_unix":1792652419}},{"name":".config","path":".config","sha":"d7c29cc9a38f083c6d272364ca70de2fc029f8b2","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"mach: Support running unit-tests on ohos (#47988)\n\n- Skip crown unit-tests when cross-compiling\n- Skip servoshell unit-tests for ohos, since servoshell pulls in NAPI\nsymbols, which are not available when running as an executable instead\nof an app.\n- Skip tests that rely on files from the repository on ohos.\n- Use ohos-test-runner as the test-runner (essentially pushes the test\nfiles to the device and executes them there).\n- Add concept of subcommand to the cargo-build-like command, since all\nparameters should be added after the subcomand (in this case `run` from\n`cargo nextest run`). An alternative could be to have command be `[str]`\ninstead, but then we'd need to update all callers and there are places\nwhich string compare against `command`.\n- Not all tests pass, some follow-up required, the main goal is getting\nthings running first.\n\nTesting: Currently not covered by automated tests for ohos, but existing\nsupported platforms are executed in CI, so regressions should be caught\nfor those platforms.\n\n---------\n\nSigned-off-by: Jonathan Schwender ","sha":"cdcf074f32af402eee8b93c05cd2b49958528fc1","created_at":"2026-10-02 17:22","time_from_now":"1个月前","created_at_unix":1790932922}},{"name":".devcontainer","path":".devcontainer","sha":"d6055acaa90376f3667efa198e8a59085685acf3","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"chore: Bump default toolchain to 1.99.1 (#49310)\n\nChanges were primarily needed in crown. In addition removed `std::f64`\nimports to replace the deprecated constants with `f64` associated\nconstants, and fixes a couple of `needless_late_init` and\n`extra_unused_lifetimes` Clippy lints which are now triggered.\n\nTesting: Covered by existing tests\nFixes: #48779\n\n---------\n\nSigned-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>","sha":"21a4125997f4fd85eb761574bae9160e1a1133ed","created_at":"2026-10-27 20:15","time_from_now":"8天前","created_at_unix":1793103332}},{"name":".github","path":".github","sha":"a78548ef508b63e480091b4fa1eea12f19a98deb","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"android: Add Gradle to Dependabot (#49452)\n\nThe `schedule` section was nicked from the Cargo package ecosystem setup\nand most other things in the copy was dropped. The only two options\nwhich are perhaps applicable are `cooldown` and\n`open-pull-requests-limit`, but with [defaults\nof](https://docs.github.com/en/code-security/reference/supply-chain-security/dependabot-options-reference)\n3 days and 5 open PRs respectively, they seemed sensible enough that\nthey are just being relied upon.\n\nTesting: I temporarily enabled Dependabot updates on my fork. This\nimmediately kicked off [a Cargo\njob](https://github.com/veyndan/servo/actions/runs/41191893107) (which I\ncancelled) and [a Gradle\njob](https://github.com/veyndan/servo/actions/runs/41191893716). After\nthe Gradle job completed, update [Dependabot PRs were\ncreated](https://github.com/veyndan/servo/pulls?q=is%3Apr+author%3Aapp%2Fdependabot)\non my fork.\nFixes: https://github.com/servo/servo/issues/46667\n\n---------\n\nSigned-off-by: veyndan ","sha":"c0ef7fc854336d2d242a1b238533430172c992bb","created_at":"2026-10-31 18:54","time_from_now":"4天前","created_at_unix":1793444091}},{"name":".vscode","path":".vscode","sha":"2a287b76de0e9e5046a4fed6b88120001b6da217","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"use ruff rather than flake8 for python code linting (#37045)\n\nThe initially used config is compatible with flake8 rules, including all\npycodestyle (pep8) and pyflakes rules.\n\nTesting: Broke some python files and used `mach test-tidy --all` to test\nthe linting.\nFixes: servo/servo#37041\n\nSigned-off-by: zefr0x ","sha":"60eb7c923dbb0da826e348ff0765076c7546c8f3","created_at":"2025-05-24 22:19","time_from_now":"1年前","created_at_unix":1748096387}},{"name":"components","path":"components","sha":"ce271f887b10c28be39637d5c2b0695fe0f2851e","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"script: Implement `outdent` editing command (#47459)\n\nThis implements the `outdent` command.\n\nTesting: More WPT passes\n\nThere is some interesting behavior that's still making some of the test\nfail though. Consider this setup:\n```html\n\n
\n
    \n
  1. foo\n
      \n
    1. bar\n
    \n
  2. baz\n
\n
\n\n```\nHere we're trying to outdent an LI inside of a list.\nWPT asserts, that the entire nested OL should just be gotten rid of.\nThis makes sense and matches Chrome. (Firefox also removes the OL but\nthen additionally merges the LI with the preceding one)\n\nBut from what I can tell, the spec as written accomplishes none of that:\nThe outdent command first block-extends the range (step 3), which means\nthat it now wraps the inner LI.\nThen, (step 5) it makes a list of all 'leaf' nodes in the range. (A leaf\nnode being one with no further editable children, or, alternatively, an\nOL or UL or **correctly parented LI**)\nIn our example, *node list* contains only the LI now.\nAnd now, (step 6.1) the spec specifically does not outdent children of\nOL/UL elements... which includes our LI.\nSo `outdent` is never called.\n\nNot sure what to make of this yet, but I'll investigate it a bit more to\nsee how the WPT tests ended up that way. (and maybe go and compare\nhomework with Ladybird to see if they ended up doing anything different\nhere.)\n\n---------\n\nSigned-off-by: Psychpsyo (Cameron) <60073468+Psychpsyo@users.noreply.github.com>","sha":"1890345105cb3c1da550346a4a528538d996f819","created_at":"2026-11-04 02:40","time_from_now":"10小时前","created_at_unix":1793731209}},{"name":"docs","path":"docs","sha":"7407c5b7519ed69bccb7aa360b462d5f86a38b4e","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"docs: Update dead book links (#45356)\n\nFixes the dead book links in the `docs` folder and\n`tests/wpt/README.md`.\n\nTesting: Not needed: only documentation changes.\n\n---------\n\nSigned-off-by: lumiscosity ","sha":"0201ad0c08e17172201b99524fa0215903aebc64","created_at":"2026-06-04 09:36","time_from_now":"5个月前","created_at_unix":1780536963}},{"name":"etc","path":"etc","sha":"895f3cc9591ecb3fd25f2fa25c35b1a54acc70d5","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"ohos: Attempt to fix spurious ci failure (#49175)\n\nThe mossel swipe test has been timing out spuriously for a while. I\ncould reproduce this locally (also spuriously), and this switch seems to\nhelp avoiding waiting on a slow upstream server, when we alread have the\nresponses cached.\n\nTesting: The failing test only fails spuriously in CI (and doesn't block\nthe MQ).\n\nSigned-off-by: Jonathan Schwender ","sha":"61065f911283f5ac0c87443c56f34746a7a57531","created_at":"2026-10-23 14:18","time_from_now":"12天前","created_at_unix":1792736296}},{"name":"ffi","path":"ffi","sha":"1f73e4ce17647a77d6209dad3c8a8c5c01ff00f5","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"capi: add servo_webview_resize (#49326)\n\nWhen embedding servo into another system, it's useful to be able to\nresize the webview (for example if it's in a window and that window gets\nresized)\n\nTesting: Added some unit tests to prove it\n\nSigned-off-by: Francisco Facioni ","sha":"b7510ccc138346150ae2e7d9743ea931cbe4d197","created_at":"2026-10-29 23:58","time_from_now":"6天前","created_at_unix":1793289517}},{"name":"ports","path":"ports","sha":"54cd07a27e2a387212409c6b3545274edd196e5a","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"servoshell: Make ohos Vsync window-specific. (#49516)\n\nPreviously the callbacks would always be delivered to the currently\nfocused window. If focus switched, then the callback would be delivered\nto the wrong window, meaning the other one could be stuck.\n\nTesting: Vsync is not covered by tests\n\nSigned-off-by: Jonathan Schwender ","sha":"07369ab3fe76aeb768531dda4405c5f827efd417","created_at":"2026-11-02 19:38","time_from_now":"2天前","created_at_unix":1793619516}},{"name":"python","path":"python","sha":"a4976f7e558d4de16ee4df492f572dbf17950d74","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"devtools: Test response mimeType and sizes (#49550)\n\nAdded a test that fetches a JSON file and checks the network event's\nresponse fields (status, mimeType, transferredSize, contentSize). These\nfields arrive in resources-updated-array, so I added a\n`collect_network_response` helper that matches updates to the request's\nresourceId.I also Moved `evaluate_js` to module level so both network\ntests can share it.\n\nTesting: `./mach test-devtools test_network_tab` passes.\nPart of: #39861\n\nSigned-off-by: Daniel Mungai ","sha":"7245904e3ba20065106c096ca21fb157a01b9c2b","created_at":"2026-11-03 10:48","time_from_now":"1天前","created_at_unix":1793674095}},{"name":"resources","path":"resources","sha":"d6dfb07b33329c63acb3ae5af7d6682e7697eb95","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"release: Bump version to 0.8.0 (#49467)\n\nMonthly release bump, produced by running ./mach release 0.8.0\n\nTesting: Not required, just a version number bump.\n\nSigned-off-by: Jonathan Schwender ","sha":"a19af13eeb92816a54ddb645c13eabbdfbff05bf","created_at":"2026-11-01 15:22","time_from_now":"3天前","created_at_unix":1793517730}},{"name":"support","path":"support","sha":"6bda9080fc205ae312060876ba3b03386df189ab","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"android: Remove explicit setting of `buildToolsVersion` (#49507)\n\nA `buildToolsVersion` is [automatically\nset](https://developer.android.com/tools/releases/build-tools) via the\nAndroid Gradle Plugin (AGP). The specific version can be found on the\nAGP release page, for example for 9.4.1 [it's\n36.0.0](https://developer.android.com/build/releases/agp-9-4-0-release-notes#compatibility).\n\nRelying on the default version provided means that:\n\n1. No compatibility errors with the AGP will accidentally arise, as they\nare the one setting the version.\n2. The `buildToolsVersion` will be automatically kept up-to-date with\nDependabot, as Dependabot upgrades AGP which will internally bump the\n`buildToolsVersion` if necessary.\n\nTesting: There are no automated tests for Android.\n\nSigned-off-by: veyndan ","sha":"23be351afcdf5b6cea81bbeefc50cedd596239f6","created_at":"2026-11-02 17:56","time_from_now":"2天前","created_at_unix":1793613385}},{"name":"tests","path":"tests","sha":"0909502bf85e4c502b008e73424fca623e3a18d3","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"script: Implement `outdent` editing command (#47459)\n\nThis implements the `outdent` command.\n\nTesting: More WPT passes\n\nThere is some interesting behavior that's still making some of the test\nfail though. Consider this setup:\n```html\n\n
\n
    \n
  1. foo\n
      \n
    1. bar\n
    \n
  2. baz\n
\n
\n\n```\nHere we're trying to outdent an LI inside of a list.\nWPT asserts, that the entire nested OL should just be gotten rid of.\nThis makes sense and matches Chrome. (Firefox also removes the OL but\nthen additionally merges the LI with the preceding one)\n\nBut from what I can tell, the spec as written accomplishes none of that:\nThe outdent command first block-extends the range (step 3), which means\nthat it now wraps the inner LI.\nThen, (step 5) it makes a list of all 'leaf' nodes in the range. (A leaf\nnode being one with no further editable children, or, alternatively, an\nOL or UL or **correctly parented LI**)\nIn our example, *node list* contains only the LI now.\nAnd now, (step 6.1) the spec specifically does not outdent children of\nOL/UL elements... which includes our LI.\nSo `outdent` is never called.\n\nNot sure what to make of this yet, but I'll investigate it a bit more to\nsee how the WPT tests ended up that way. (and maybe go and compare\nhomework with Ladybird to see if they ended up doing anything different\nhere.)\n\n---------\n\nSigned-off-by: Psychpsyo (Cameron) <60073468+Psychpsyo@users.noreply.github.com>","sha":"1890345105cb3c1da550346a4a528538d996f819","created_at":"2026-11-04 02:40","time_from_now":"10小时前","created_at_unix":1793731209}},{"name":"third_party","path":"third_party","sha":"ce00c38275dfb67a93643ea7453c339b4b8bfb2b","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"bluetooth: switch to btleplug (#43529)\n\nbtleplug depends on tokio so we use a bridge thread to interface with\nServo thread based messaging.\nWe keep feature parity except for BtleplugGATTService::get_includes()\nthat will require upstream implementation.\nIn terms of OS support, I verified on Linux and MacOS. Android is\nuntested, but btleplug claims support.\n\n\nTesting: No test failures, green try run at\nhttps://github.com/webbeef/servo/actions/runs/23390850825\nFixes: #43254.\n\nSigned-off-by: webbeef ","sha":"ae78fbb03afc07d5a36ff076b7eaf1d798ef6876","created_at":"2026-03-24 01:01","time_from_now":"8个月前","created_at_unix":1774285284}},{"name":".gitattributes","path":".gitattributes","sha":"23d8a9638dfaaffff461232cab4e76ed803098ed","type":"file","submodule_git_url":null,"size":240,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"git: Mark `tests/blink_perf_tests` as linguist-vendored (#39036)\n\nHopefully this will make repo rust again.\n\nTesting: No tests for .gitattributes\nFixes:\n\"slika\"\nsrc=\"https://github.com/user-attachments/assets/7ad62390-21ef-4e66-ab71-ff26dddf22a1\"\n/\n\nSigned-off-by: Sam <16504129+sagudev@users.noreply.github.com>","sha":"0ac8d0605398248b9240a6962cbb2ea41952587f","created_at":"2025-08-30 21:11","time_from_now":"1年前","created_at_unix":1756559492}},{"name":".gitignore","path":".gitignore","sha":"3f52a1586c2b422b0cb56d8b5cb0740408200325","type":"file","submodule_git_url":null,"size":927,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Add \"devcontainer-lock.json\" to gitignore (#47726)\n\nThis lockfile is used by some implementations of the devcontainer spec,\nincluding the [reference implementation] . The [file format] is defined\nin the devcontainers documentation.\n\n[reference implementation]: https://github.com/devcontainers/cli\n[file format]:\nhttps://github.com/devcontainers/spec/blob/main/docs/specs/devcontainer-lockfile.md\n\nSigned-off-by: Arnau Camprubí ","sha":"20d08924dba140866688f224f152ad7ac7a8ef44","created_at":"2026-09-02 13:52","time_from_now":"2个月前","created_at_unix":1788328351}},{"name":".mailmap","path":".mailmap","sha":"2244a4673095466126a4f9f27825fa0b0acefba9","type":"file","submodule_git_url":null,"size":5430,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Update Tetsuharu OHZEKI's entry in mailmap\n","sha":"a18c08c2c73175bafb73a9ae6324534f2bcad963","created_at":"2019-11-14 23:46","time_from_now":"7年前","created_at_unix":1573746405}},{"name":".python-version","path":".python-version","sha":"2c0733315e415bfb5e5b353f9996ecd964d395b2","type":"file","submodule_git_url":null,"size":5,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Set python version to 3.11 (#34707)\n\nThis will fix https://github.com/servo/servo/issues/34700\n\nSigned-off-by: Samson <16504129+sagudev@users.noreply.github.com>","sha":"b7460bcb844e3c6e6c887cc9f3d818f0454b0ea3","created_at":"2024-12-20 02:42","time_from_now":"1年前","created_at_unix":1734633756}},{"name":"CODE_OF_CONDUCT.md","path":"CODE_OF_CONDUCT.md","sha":"75e1e0105b1fc06b1070a0d9f67e7922d4bafef2","type":"file","submodule_git_url":null,"size":734,"is_readme_file":0,"content":null,"target":null,"commit":{"message":"Clarify the Code of Conduct (closes servo/servo.org#164) (#32835)\n\n","sha":"e8cf751e11fc8fcd7c9619c022d0617fd44de7a4","created_at":"2024-07-23 17:12","time_from_now":"2年前","created_at_unix":1721725923}},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","sha":"e80d3790dbf22357275b2314d17152055cb1a035","type":"file","submodule_git_url":null,"size":130,"is_readme_file":0,"content":null,"target":null,"commit":{"message":"Update contributing guide URL. (#41192)\n\nCurrent URL points to a 404 page.\nTesting: We clicked on it, it worked.\nFixes: Probably none, making this pull request takes as much time as\nwriting a separate issue, if not less.\n\nSigned-off-by: Crimson Fork ","sha":"53c47567a2c26ea25ee72f9928dc64ad2c686c62","created_at":"2025-12-11 15:50","time_from_now":"11个月前","created_at_unix":1765439434}},{"name":"Cargo.lock","path":"Cargo.lock","sha":"7defc9680a0a7b72d1cce46957b7004b93c6da94","type":"file","submodule_git_url":null,"size":307222,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"script: implement `:in-range` and `:out-of-range` (#49509)\n\nThis sets the element state for in range and out of range when the\nvalidity state pseudo classes are updated.\n\nTesting: Passes additional web platform tests.\nPart of #47825.\n\n---------\n\nSigned-off-by: Glenn Skrzypczak ","sha":"7727ac9bee279919432828281167b979d969c754","created_at":"2026-11-03 21:06","time_from_now":"16小时前","created_at_unix":1793711211}},{"name":"Cargo.toml","path":"Cargo.toml","sha":"97d8c7c3b98c9c1a48fb26f1318b32949baac436","type":"file","submodule_git_url":null,"size":21415,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"script: implement `:in-range` and `:out-of-range` (#49509)\n\nThis sets the element state for in range and out of range when the\nvalidity state pseudo classes are updated.\n\nTesting: Passes additional web platform tests.\nPart of #47825.\n\n---------\n\nSigned-off-by: Glenn Skrzypczak ","sha":"7727ac9bee279919432828281167b979d969c754","created_at":"2026-11-03 21:06","time_from_now":"16小时前","created_at_unix":1793711211}},{"name":"LICENSE","path":"LICENSE","sha":"d8b475b6e17e390d702c9be4d3a735c7622b9735","type":"file","submodule_git_url":null,"size":15649,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Update MPL license to https (part 1)\n","sha":"f5ab95786f9cbbf5804d87f265812325fc80ad7b","created_at":"2018-11-19 21:46","time_from_now":"8年前","created_at_unix":1542635203}},{"name":"LICENSE_WHATWG_SPECS","path":"LICENSE_WHATWG_SPECS","sha":"745d5b38e24e5890cad510dc6a5a7623c4e0ca09","type":"file","submodule_git_url":null,"size":1597,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Add license for WHATWG specifications in code (#36282)\n\nAdd license for WHATWG specs incorporated into source code, as per the\n[TSC\ndiscussion](https://github.com/servo/project/blob/db2f4074d4a369beb16f23ccc010ba73a3fc9662/governance/tsc/tsc-2025-03-31.md#add-license-for-whatwg-specs-incorporated-into-source-code).\n\nAs per for example https://html.spec.whatwg.org/#ipr\n\nSigned-off-by: gterzian <2792687+gterzian@users.noreply.github.com>","sha":"6e9d01b908b51d3f44f858476acf3af8c1d44289","created_at":"2025-04-03 12:33","time_from_now":"1年前","created_at_unix":1743654786}},{"name":"PULL_REQUEST_TEMPLATE.md","path":"PULL_REQUEST_TEMPLATE.md","sha":"aad8a23551902f154e805a74ce6e690a1c18c8f4","type":"file","submodule_git_url":null,"size":340,"is_readme_file":0,"content":null,"target":null,"commit":{"message":"Make the pull request template more explicit (#44135)\n\nThere seem to be some common misconceptions about how to use the pull\nrequest template such as:\n\n - The `Fixes` field going before the pull request description.\n - The `Testing` field being used to describe how the fix was tested\n locally.\n\nThis change attmepts to make the meaning of the fields of the template a\nlittle bit more explicit to avoid confusion.\n\nTesting: This is just updating the pull request template so no tests\nnecessary.\n\nSigned-off-by: Martin Robinson \nCo-authored-by: Martin Robinson ","sha":"cdf13e7ca488eb725739ec94371ec3145da0f090","created_at":"2026-04-12 16:31","time_from_now":"7个月前","created_at_unix":1775982719}},{"name":"README.md","path":"README.md","sha":"1481211a7cc7e7fca3dd464cd650a8d76fdc7bf9","type":"file","submodule_git_url":null,"size":4571,"is_readme_file":true,"content":null,"target":null,"commit":{"message":"readme: Update Android build instructions after #47489 (#48154)\n\nTesting: No tests necessary for a README change.\n\nSigned-off-by: Martin Robinson ","sha":"699cf3893f80963d11ec31c2c3f0fe92b47f8522","created_at":"2026-09-17 22:33","time_from_now":"2个月前","created_at_unix":1789655626}},{"name":"SECURITY.md","path":"SECURITY.md","sha":"134551ecfa14f2e11188b9d2a424dfbe492eb779","type":"file","submodule_git_url":null,"size":143,"is_readme_file":0,"content":null,"target":null,"commit":{"message":"Reword our security policy (#42953)\n\nIn ac24cd61395f6a9646efe1da13ba5674eea59e7e we started asking for people\nto use **private** github security reports, but kept the wording from\nbefore, which was related to accepting such reports as **public**\nissues.\nThe wording doesn't make sense in the context of asking people for\nprivate reports, so update the wording to reflect that.\nThis is not a policy change, just making the wording more clear.\n\nTesting: Not required, policy description.\n\nSigned-off-by: Jonathan Schwender ","sha":"30372328c00e34d61c92794d1d6f550f33893e2b","created_at":"2026-03-02 21:37","time_from_now":"8个月前","created_at_unix":1772458679}},{"name":"about.toml","path":"about.toml","sha":"734addd3added2a106915937f30655f79aeececc","type":"file","submodule_git_url":null,"size":301,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Add servo:license (#40319)\n\nSimilar to about:license in firefox. Generated with `cargo-about`.\n\nA few open questions:\n- When/how should it be updated (the command I used was `cargo about\ngenerate etc/about.hbs > resources/resource_protocol/license.html`, it\ntakes ~20 seconds)\n- How should `about.toml` be kept in sync with `deny.toml`\n- What about licenses for packages that are not crates (i.e. gstreamer)\n\nFixes: #40266\n\n---------\n\nSigned-off-by: Ashwin Naren ","sha":"7c941883151bd6db7d3a42f12b8deec2092f1473","created_at":"2025-11-13 16:48","time_from_now":"12个月前","created_at_unix":1763023681}},{"name":"deny.toml","path":"deny.toml","sha":"210b14b8b7e48db52bfd16046100a83fb9d171fb","type":"file","submodule_git_url":null,"size":6467,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"servoshell: Switch to `rfd` for file selection dialogs (#49306)\n\nThis switches servoshell's dialog implementation from `egui-file-dialog`\nto `rfd` which shows native system file selection dialogs. Reasoning:\n\n1. Native file dialogs are more natural to show on a desktop platform.\n2. `egui-file-dialog` depends on a specific `egui` version so having it\n in the list of dependencies sometimes holds up `egui` upgrades.\n\nIn order to do this we must no longer hide file dialog embedder controls\nwhen the file input loses focus. File selection dialogs are often modal\nand show in a separate top-level window which can trigger a `blur`\nevent. Triggering a hide here means the file dialog result would be\nthrown away.\n\nTesting: There is no testing for this part of servoshell.\nFixes: #49170.\n\nSigned-off-by: Martin Robinson ","sha":"7210ba1f2c1b0ebdd6d7632277aaa780114874de","created_at":"2026-10-28 20:19","time_from_now":"7天前","created_at_unix":1793189980}},{"name":"mach","path":"mach","sha":"1c7b46d509e3372965371cd0ecd70c6fe10084c6","type":"file","submodule_git_url":null,"size":2067,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"mach: Simplify bootstrap (#47326)\n\nSince we switched to `uv`, `uv` is responsible for setting up the\nenvironment and `mach bootstrap` actually has the full environment\navailable, so we don't need to duplicate the logic anymore.\n\nTesting: `./mach bootstrap` is run on non-selfhosted CI runners. [Try\nrun](https://github.com/jschwe/servo/actions/runs/32124284987) from my\nfork.\n\nSigned-off-by: Jonathan Schwender ","sha":"480bc117e5044fcd1d492b753644bdf2ebf909a7","created_at":"2026-08-18 20:08","time_from_now":"3个月前","created_at_unix":1787054893}},{"name":"mach.bat","path":"mach.bat","sha":"0b836dfe25274fa97257c3849b9b944cfc74c83b","type":"file","submodule_git_url":null,"size":256,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"mach: Fix ARM64 windows build using `mach.bat` (#45731)\n\nRight now `./mach` on nushell on Windows immediately fails:\n\n```\nD:\\servo> ./mach\nwarning: The `native-tls` setting is deprecated and will be removed in a future release. Use `system-certs` instead.\nerror: No interpreter found for executable name `arm64 ` in managed installations, search path, or registry\n```\n\nApparently without the string syntax the command argument includes the\nfollowing space too.\n\n(Not sure we want to cover this in CI?)\n\nSigned-off-by: Kagami Sascha Rosylight ","sha":"9e2a103cd1939457ec97a1f33d3565af16f04977","created_at":"2026-06-17 15:19","time_from_now":"5个月前","created_at_unix":1781680750}},{"name":"mach.ps1","path":"mach.ps1","sha":"ecbe3c7d66a639c0eb8132f91575f3cd901f7d94","type":"file","submodule_git_url":null,"size":1028,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"mach: Force the use of arm64 Python when running with Windows on arm64 (#42371)\n\nThere is currently [a bug in\nUV](https://github.com/astral-sh/uv/issues/12906) that results in it\nusing the x64 flavor of Python when running on Arm64 Windows. This then\ncauses all Python scripts to believe they are on an x64 device and so\nServer installs the wrong dependencies and builds for the wrong\narchitecture.\n\nTesting: Local on my Arm64 Windows device\nContributes to fixing #40611\n\nSigned-off-by: Daniel Paoliello ","sha":"0f2adc6f054f8bfee1f273193603f37d7e82879a","created_at":"2026-02-06 10:58","time_from_now":"9个月前","created_at_unix":1770346717}},{"name":"pyproject.toml","path":"pyproject.toml","sha":"eb8ed84382972aefb8b4fe2fbcae2f028df4b54a","type":"file","submodule_git_url":null,"size":2030,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"mach/uv: Switch from native-tls to system-certs (#45024)\n\nuv switched from native-tls to system-certs in version 0.11 (released\n2026-03-23).\nI don't think we have a version requirement for uv.\n\nTesting: uv does not have tests.\nFixes: https://github.com/servo/servo/issues/45499\n\nSigned-off-by: Narfinger ","sha":"cab626b9e27985021709747c01d1188452a1207c","created_at":"2026-07-17 17:14","time_from_now":"4个月前","created_at_unix":1784279682}},{"name":"rust-toolchain.toml","path":"rust-toolchain.toml","sha":"1801e538b47dc79d264d3d47838cdef52eb969d1","type":"file","submodule_git_url":null,"size":506,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"chore: Bump default toolchain to 1.99.1 (#49310)\n\nChanges were primarily needed in crown. In addition removed `std::f64`\nimports to replace the deprecated constants with `f64` associated\nconstants, and fixes a couple of `needless_late_init` and\n`extra_unused_lifetimes` Clippy lints which are now triggered.\n\nTesting: Covered by existing tests\nFixes: #48779\n\n---------\n\nSigned-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>","sha":"21a4125997f4fd85eb761574bae9160e1a1133ed","created_at":"2026-10-27 20:15","time_from_now":"8天前","created_at_unix":1793103332}},{"name":"rustfmt.toml","path":"rustfmt.toml","sha":"0bb4f6d7f0cfc427239fab4a288032deba51cb71","type":"file","submodule_git_url":null,"size":80,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Update rustfmt to the 2024 style edition (#35764)\n\n* Use 2024 style edition\n\nSigned-off-by: Simon Wülker \n\n* Reformat all code\n\nSigned-off-by: Simon Wülker \n\n---------\n\nSigned-off-by: Simon Wülker ","sha":"3d320fa96ae2ca95a720c454c47ee7827864c5af","created_at":"2025-03-03 19:26","time_from_now":"1年前","created_at_unix":1741001213}},{"name":"servo-tidy.toml","path":"servo-tidy.toml","sha":"7804207117e86156e09799fd1ba4a981c40d92a5","type":"file","submodule_git_url":null,"size":2279,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Add tidy check for disallowed co-authors (#44723)\n\nPer the contributing policy:\n\n\nhttps://book.servo.org/contributing/getting-started.html#ai-contributions\n> Contributions must not include content generated by large language\nmodels or other probabilistic tools\n\nThis makes `./mach test-tidy` check git commit (co-)authors and\ncommiters for known email addresses used by some such tools.\n\nTesting: adding unit tests\n\n---------\n\nSigned-off-by: Simon Sapin \nSigned-off-by: delan azabani \nCo-authored-by: delan azabani ","sha":"d5003363fe1ee3c9c7aac27c29db596236bcaa22","created_at":"2026-05-25 17:05","time_from_now":"5个月前","created_at_unix":1779699901}},{"name":"servobuild.example","path":"servobuild.example","sha":"7ee89eb9b49d5e71500ad4b37425b30de95fc2e9","type":"file","submodule_git_url":null,"size":2127,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"cargo: Enable GStreamer by default on desktop platforms (#48934)\n\nThis change enables GStreamer by default on all platforms other than\nAndroid and OHOS in an effort to try to make `./mach build` do the same\nthing as `cargo build`. There is more work to do here, but this is an\nimportant step.\n\nTesting: There really isn't any automated testing for this kind of\nchange.\nCloses: #30420.\n\nSigned-off-by: Martin Robinson ","sha":"ddd55f9146dc0aa4bb9ecaa9a54a957d53198257","created_at":"2026-10-19 16:25","time_from_now":"16天前","created_at_unix":1792398331}},{"name":"shell.nix","path":"shell.nix","sha":"04b8c6efb26d070ca9b2d729b87c5d09fa3d16d9","type":"file","submodule_git_url":null,"size":8350,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"chore: Bump default toolchain to 1.99.1 (#49310)\n\nChanges were primarily needed in crown. In addition removed `std::f64`\nimports to replace the deprecated constants with `f64` associated\nconstants, and fixes a couple of `needless_late_init` and\n`extra_unused_lifetimes` Clippy lints which are now triggered.\n\nTesting: Covered by existing tests\nFixes: #48779\n\n---------\n\nSigned-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>","sha":"21a4125997f4fd85eb761574bae9160e1a1133ed","created_at":"2026-10-27 20:15","time_from_now":"8天前","created_at_unix":1793103332}},{"name":"taplo.toml","path":"taplo.toml","sha":"a629f939b96f8c6e8ecd6ce2e466a9742101aeba","type":"file","submodule_git_url":null,"size":212,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Format toml files (#30112)\n\n* Add taplo fmt config for toml fmt\n\n* fmt toml files\n\n* Add even-better-toml to extensions recommendations","sha":"c0bee7cb86a3bc2d3a4a2f405031ccb39ef807ac","created_at":"2023-08-17 23:07","time_from_now":"3年前","created_at_unix":1692284863}},{"name":"uv.lock","path":"uv.lock","sha":"928c483540356d8ba825983edb7256238366bae7","type":"file","submodule_git_url":null,"size":391168,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Sync WPT with upstream (06-09-2026) (#47830)\n\nAutomated downstream sync of changes from upstream as of 06-09-2026\n[no-wpt-sync]\n\nSigned-off-by: WPT Sync Bot ","sha":"221400df62473e103a83a0facb8d3949e4de76e6","created_at":"2026-09-06 09:49","time_from_now":"2个月前","created_at_unix":1788659373}}]},"projectMenu":[{"menu_name":"home"},{"menu_name":"code"},{"menu_name":"issues"},{"menu_name":"devops"},{"menu_name":"versions"},{"menu_name":"wiki"},{"menu_name":"resources"},{"menu_name":"activity"}],"projectReadMe":"%7B%22type%22%3A%22file%22%2C%22encoding%22%3A%22base64%22%2C%22size%22%3A4571%2C%22name%22%3A%22README.md%22%2C%22path%22%3A%22README.md%22%2C%22content%22%3A%22%23%20The%20Servo%20Parallel%20Browser%20Engine%20Project%5Cn%5CnServo%20is%20a%20prototype%20web%20browser%20engine%20written%20in%20the%5Cn%5BRust%5D(https%3A%2F%2Fgithub.com%2Frust-lang%2Frust)%20language.%20It%20is%20currently%20developed%20on%5Cn64-bit%20macOS%2C%2064-bit%20Linux%2C%2064-bit%20Windows%2C%2064-bit%20OpenHarmony%2C%20and%20Android.%5Cn%5CnServo%20welcomes%20contribution%20from%20everyone.%20Check%20out%3A%5Cn%5Cn-%20The%20%5BServo%20Book%5D(https%3A%2F%2Fbook.servo.org)%20for%20documentation%5Cn-%20%5Bservo.org%5D(https%3A%2F%2Fservo.org%2F)%20for%20news%20and%20guides%5Cn%5CnCoordination%20of%20Servo%20development%20happens%3A%5Cn-%20Here%20in%20the%20Github%20Issues%5Cn-%20On%20the%20%5BServo%20Zulip%5D(https%3A%2F%2Fservo.zulipchat.com%2F)%5Cn-%20In%20video%20calls%20advertised%20in%20the%20%5BServo%20Project%5D(https%3A%2F%2Fgithub.com%2Fservo%2Fproject%2Fissues)%20repo.%5Cn%5Cn%23%23%20Getting%20started%5Cn%5CnFor%20more%20detailed%20build%20instructions%2C%20see%20the%20Servo%20Book%20under%20%5BGetting%20the%20Code%5D%20and%20%5BBuilding%20Servo%5D.%5Cn%5Cn%5BGetting%20the%20Code%5D%3A%20https%3A%2F%2Fbook.servo.org%2Fbuilding%2Fgetting-the-code.html%5Cn%5BBuilding%20Servo%5D%3A%20https%3A%2F%2Fbook.servo.org%2Fbuilding%2Fbuilding.html%5Cn%5Cn%23%23%23%20macOS%5Cn%5Cn-%20Download%20and%20install%20%5BXcode%5D(https%3A%2F%2Fdeveloper.apple.com%2Fxcode%2F)%20and%20%5B%60brew%60%5D(https%3A%2F%2Fbrew.sh%2F).%5Cn-%20Install%20%60uv%60%3A%20%60curl%20-LsSf%20https%3A%2F%2Fastral.sh%2Fuv%2Finstall.sh%20%7C%20sh%60%20%5Cn-%20Install%20%60rustup%60%3A%20%60curl%20--proto%20'%3Dhttps'%20--tlsv1.2%20-sSf%20https%3A%2F%2Fsh.rustup.rs%20%7C%20sh%60%5Cn-%20Restart%20your%20shell%20to%20make%20sure%20%60cargo%60%20is%20available%5Cn-%20Install%20the%20other%20dependencies%3A%20%60.%2Fmach%20bootstrap%60%5Cn-%20Build%20servoshell%3A%20%60.%2Fmach%20build%60%5Cn%5Cn%23%23%23%20Linux%5Cn%5Cn-%20Install%20%60curl%60%3A%5Cn%20%20-%20Arch%3A%20%60sudo%20pacman%20-S%20--needed%20curl%60%5Cn%20%20-%20Debian%2C%20Ubuntu%3A%20%60sudo%20apt%20install%20curl%60%5Cn%20%20-%20Fedora%3A%20%60sudo%20dnf%20install%20curl%60%5Cn%20%20-%20Gentoo%3A%20%60sudo%20emerge%20net-misc%2Fcurl%60%5Cn-%20Install%20%60uv%60%3A%20%60curl%20-LsSf%20https%3A%2F%2Fastral.sh%2Fuv%2Finstall.sh%20%7C%20sh%60%20%5Cn-%20Install%20%60rustup%60%3A%20%60curl%20--proto%20'%3Dhttps'%20--tlsv1.2%20-sSf%20https%3A%2F%2Fsh.rustup.rs%20%7C%20sh%60%5Cn-%20Restart%20your%20shell%20to%20make%20sure%20%60cargo%60%20is%20available%5Cn-%20Install%20the%20other%20dependencies%3A%20%60.%2Fmach%20bootstrap%60%5Cn-%20Build%20servoshell%3A%20%60.%2Fmach%20build%60%5Cn%5Cn%23%23%23%20Windows%5Cn%5Cn-%20Download%20%5B%60uv%60%5D(https%3A%2F%2Fdocs.astral.sh%2Fuv%2Fgetting-started%2Finstallation%2F%23standalone-installer)%2C%20and%20%5B%60rustup%60%5D(https%3A%2F%2Fwin.rustup.rs%2F)%5Cn%20%20-%20Be%20sure%20to%20select%20*Quick%20install%20via%20the%20Visual%20Studio%20Community%20installer*%5Cn-%20Ensure%20that%20%5B%60winget%60%5D(https%3A%2F%2Flearn.microsoft.com%2Fen-us%2Fwindows%2Fpackage-manager%2Fwinget%2F)%20is%20available.%20It%20should%20be%20preinstalled%20on%20Windows%2010%201809%2B%20and%20Windows%2011%2C%20otherwise%20can%20be%20%5B%60manually%20installed%60%5D(https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fwinget-cli%23installing-the-client).%5Cn-%20In%20the%20Visual%20Studio%20Installer%2C%20ensure%20the%20following%20components%20are%20installed%3A%5Cn%20%20-%20**Windows%2010%2F11%20SDK%20(anything%20%3E%3D%2010.0.19041.0)**%20(%60Microsoft.VisualStudio.Component.Windows%7B10%2C%2011%7DSDK.%7B%3E%3D19041%7D%60)%5Cn%20%20-%20**MSVC%20v143%20-%20VS%202022%20C%2B%2B%20x64%2Fx86%20build%20tools%20(Latest)**%20(%60Microsoft.VisualStudio.Component.VC.Tools.x86.x64%60)%5Cn%20%20-%20**C%2B%2B%20ATL%20for%20latest%20v143%20build%20tools%20(x86%20%26%20x64)**%20(%60Microsoft.VisualStudio.Component.VC.ATL%60)%5Cn-%20Restart%20your%20shell%20to%20make%20sure%20%60cargo%60%20is%20available%5Cn-%20Install%20the%20other%20dependencies%3A%20%60.%5C%5Cmach%20bootstrap%60%5Cn-%20Build%20servoshell%3A%20%60.%5C%5Cmach%20build%60%5Cn%5Cn%23%23%23%20Android%5Cn%5Cn-%20Ensure%20that%20the%20following%20environment%20variables%20are%20set%3A%5Cn%20%20-%20%60ANDROID_SDK_ROOT%60%5Cn%20%20-%20%60ANDROID_NDK_ROOT%60%3A%20%60%24ANDROID_SDK_ROOT%2Fndk%2F28.2.13676358%2F%60%5Cn%20%60ANDROID_SDK_ROOT%60%20can%20be%20any%20directory%20(such%20as%20%60~%2Fandroid-sdk%60).%5Cn%20%20All%20of%20the%20Android%20build%20dependencies%20will%20be%20installed%20there.%5Cn-%20Install%20the%20latest%20version%20of%20the%20%5BAndroid%20command-line%5Cn%20%20tools%5D(https%3A%2F%2Fdeveloper.android.com%2Fstudio%23command-tools)%20to%5Cn%20%20%60%24ANDROID_SDK_ROOT%2Fcmdline-tools%2Flatest%60.%5Cn-%20Run%20the%20following%20command%20to%20install%20the%20necessary%20components%3A%5Cn%20%20%60%60%60shell%5Cn%20%20sudo%20%24ANDROID_SDK_ROOT%2Fcmdline-tools%2Flatest%2Fbin%2Fsdkmanager%20--install%20%5C%5C%5Cn%20%20%20%5C%22build-tools%3B36.0.0%5C%22%20%5C%5C%5Cn%20%20%20%5C%22emulator%5C%22%20%5C%5C%5Cn%20%20%20%5C%22ndk%3B29.0.14206865%5C%22%20%5C%5C%5Cn%20%20%20%5C%22platform-tools%5C%22%20%5C%5C%5Cn%20%20%20%5C%22platforms%3Bandroid-37%5C%22%20%5C%5C%5Cn%20%20%20%5C%22system-images%3Bandroid-37%3Bgoogle_apis%3Bx86_64%5C%22%5Cn%20%20%60%60%60%5Cn-%20Follow%20the%20instructions%20above%20for%20the%20platform%20you%20are%20building%20on%5Cn%5Cn%23%23%23%20OpenHarmony%5Cn%5Cn-%20Follow%20the%20instructions%20above%20for%20the%20platform%20you%20are%20building%20on%20to%20prepare%20the%20environment.%5Cn-%20Depending%20on%20the%20target%20distribution%20(e.g.%20%60HarmonyOS%20NEXT%60%20vs%20pure%20%60OpenHarmony%60)%20the%20build%20configuration%20will%20differ%20slightly.%5Cn-%20Ensure%20that%20the%20following%20environment%20variables%20are%20set%5Cn%20%20-%20%60DEVECO_SDK_HOME%60%20(Required%20when%20targeting%20%60HarmonyOS%20NEXT%60)%5Cn%20%20-%20%60OHOS_BASE_SDK_HOME%60%20(Required%20when%20targeting%20%60OpenHarmony%60)%5Cn%20%20-%20%60OHOS_SDK_NATIVE%60%20(e.g.%20%60%24%7BDEVECO_SDK_HOME%7D%2Fdefault%2Fopenharmony%2Fnative%60%20or%20%60%24%7BOHOS_BASE_SDK_HOME%7D%2F%24%7BAPI_VERSION%7D%2Fnative%60)%5Cn%20%20-%20%60SERVO_OHOS_SIGNING_CONFIG%60%3A%20Path%20to%20json%20file%20containing%20a%20valid%20signing%20configuration%20for%20the%20demo%20app.%5Cn-%20Review%20the%20detailed%20instructions%20at%20%5BBuilding%20for%20OpenHarmony%5D.%5Cn-%20The%20target%20distribution%20can%20be%20modified%20by%20passing%20%60--flavor%3D%3Cdefault%7Charmonyos%3E%60%20to%20%60mach%20%3Cbuild%7Cpackage%7Cinstall%3E%60.%5Cn%22%2C%22sha%22%3A%221481211a7cc7e7fca3dd464cd650a8d76fdc7bf9%22%2C%22replace_content%22%3A%22%23%20The%20Servo%20Parallel%20Browser%20Engine%20Project%5Cn%5CnServo%20is%20a%20prototype%20web%20browser%20engine%20written%20in%20the%5Cn%5BRust%5D(https%3A%2F%2Fgithub.com%2Frust-lang%2Frust)%20language.%20It%20is%20currently%20developed%20on%5Cn64-bit%20macOS%2C%2064-bit%20Linux%2C%2064-bit%20Windows%2C%2064-bit%20OpenHarmony%2C%20and%20Android.%5Cn%5CnServo%20welcomes%20contribution%20from%20everyone.%20Check%20out%3A%5Cn%5Cn-%20The%20%5BServo%20Book%5D(https%3A%2F%2Fbook.servo.org)%20for%20documentation%5Cn-%20%5Bservo.org%5D(https%3A%2F%2Fservo.org%2F)%20for%20news%20and%20guides%5Cn%5CnCoordination%20of%20Servo%20development%20happens%3A%5Cn-%20Here%20in%20the%20Github%20Issues%5Cn-%20On%20the%20%5BServo%20Zulip%5D(https%3A%2F%2Fservo.zulipchat.com%2F)%5Cn-%20In%20video%20calls%20advertised%20in%20the%20%5BServo%20Project%5D(https%3A%2F%2Fgithub.com%2Fservo%2Fproject%2Fissues)%20repo.%5Cn%5Cn%23%23%20Getting%20started%5Cn%5CnFor%20more%20detailed%20build%20instructions%2C%20see%20the%20Servo%20Book%20under%20%5BGetting%20the%20Code%5D%20and%20%5BBuilding%20Servo%5D.%5Cn%5Cn%5BGetting%20the%20Code%5D%3A%20%2F%2Fdnrops%2Fservo%2Ftree%2Fmain%2Fhttps%3A%2Fbook.servo.org%2Fbuilding%2Fgetting-the-code.html%5Cn%5BBuilding%20Servo%5D%3A%20%2F%2Fdnrops%2Fservo%2Ftree%2Fmain%2Fhttps%3A%2Fbook.servo.org%2Fbuilding%2Fbuilding.html%5Cn%5Cn%23%23%23%20macOS%5Cn%5Cn-%20Download%20and%20install%20%5BXcode%5D(https%3A%2F%2Fdeveloper.apple.com%2Fxcode%2F)%20and%20%5B%60brew%60%5D(https%3A%2F%2Fbrew.sh%2F).%5Cn-%20Install%20%60uv%60%3A%20%60curl%20-LsSf%20https%3A%2F%2Fastral.sh%2Fuv%2Finstall.sh%20%7C%20sh%60%20%5Cn-%20Install%20%60rustup%60%3A%20%60curl%20--proto%20'%3Dhttps'%20--tlsv1.2%20-sSf%20https%3A%2F%2Fsh.rustup.rs%20%7C%20sh%60%5Cn-%20Restart%20your%20shell%20to%20make%20sure%20%60cargo%60%20is%20available%5Cn-%20Install%20the%20other%20dependencies%3A%20%60.%2Fmach%20bootstrap%60%5Cn-%20Build%20servoshell%3A%20%60.%2Fmach%20build%60%5Cn%5Cn%23%23%23%20Linux%5Cn%5Cn-%20Install%20%60curl%60%3A%5Cn%20%20-%20Arch%3A%20%60sudo%20pacman%20-S%20--needed%20curl%60%5Cn%20%20-%20Debian%2C%20Ubuntu%3A%20%60sudo%20apt%20install%20curl%60%5Cn%20%20-%20Fedora%3A%20%60sudo%20dnf%20install%20curl%60%5Cn%20%20-%20Gentoo%3A%20%60sudo%20emerge%20net-misc%2Fcurl%60%5Cn-%20Install%20%60uv%60%3A%20%60curl%20-LsSf%20https%3A%2F%2Fastral.sh%2Fuv%2Finstall.sh%20%7C%20sh%60%20%5Cn-%20Install%20%60rustup%60%3A%20%60curl%20--proto%20'%3Dhttps'%20--tlsv1.2%20-sSf%20https%3A%2F%2Fsh.rustup.rs%20%7C%20sh%60%5Cn-%20Restart%20your%20shell%20to%20make%20sure%20%60cargo%60%20is%20available%5Cn-%20Install%20the%20other%20dependencies%3A%20%60.%2Fmach%20bootstrap%60%5Cn-%20Build%20servoshell%3A%20%60.%2Fmach%20build%60%5Cn%5Cn%23%23%23%20Windows%5Cn%5Cn-%20Download%20%5B%60uv%60%5D(https%3A%2F%2Fdocs.astral.sh%2Fuv%2Fgetting-started%2Finstallation%2F%23standalone-installer)%2C%20and%20%5B%60rustup%60%5D(https%3A%2F%2Fwin.rustup.rs%2F)%5Cn%20%20-%20Be%20sure%20to%20select%20*Quick%20install%20via%20the%20Visual%20Studio%20Community%20installer*%5Cn-%20Ensure%20that%20%5B%60winget%60%5D(https%3A%2F%2Flearn.microsoft.com%2Fen-us%2Fwindows%2Fpackage-manager%2Fwinget%2F)%20is%20available.%20It%20should%20be%20preinstalled%20on%20Windows%2010%201809%2B%20and%20Windows%2011%2C%20otherwise%20can%20be%20%5B%60manually%20installed%60%5D(https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fwinget-cli%23installing-the-client).%5Cn-%20In%20the%20Visual%20Studio%20Installer%2C%20ensure%20the%20following%20components%20are%20installed%3A%5Cn%20%20-%20**Windows%2010%2F11%20SDK%20(anything%20%3E%3D%2010.0.19041.0)**%20(%60Microsoft.VisualStudio.Component.Windows%7B10%2C%2011%7DSDK.%7B%3E%3D19041%7D%60)%5Cn%20%20-%20**MSVC%20v143%20-%20VS%202022%20C%2B%2B%20x64%2Fx86%20build%20tools%20(Latest)**%20(%60Microsoft.VisualStudio.Component.VC.Tools.x86.x64%60)%5Cn%20%20-%20**C%2B%2B%20ATL%20for%20latest%20v143%20build%20tools%20(x86%20%26%20x64)**%20(%60Microsoft.VisualStudio.Component.VC.ATL%60)%5Cn-%20Restart%20your%20shell%20to%20make%20sure%20%60cargo%60%20is%20available%5Cn-%20Install%20the%20other%20dependencies%3A%20%60.%5C%5Cmach%20bootstrap%60%5Cn-%20Build%20servoshell%3A%20%60.%5C%5Cmach%20build%60%5Cn%5Cn%23%23%23%20Android%5Cn%5Cn-%20Ensure%20that%20the%20following%20environment%20variables%20are%20set%3A%5Cn%20%20-%20%60ANDROID_SDK_ROOT%60%5Cn%20%20-%20%60ANDROID_NDK_ROOT%60%3A%20%60%24ANDROID_SDK_ROOT%2Fndk%2F28.2.13676358%2F%60%5Cn%20%60ANDROID_SDK_ROOT%60%20can%20be%20any%20directory%20(such%20as%20%60~%2Fandroid-sdk%60).%5Cn%20%20All%20of%20the%20Android%20build%20dependencies%20will%20be%20installed%20there.%5Cn-%20Install%20the%20latest%20version%20of%20the%20%5BAndroid%20command-line%5Cn%20%20tools%5D(https%3A%2F%2Fdeveloper.android.com%2Fstudio%23command-tools)%20to%5Cn%20%20%60%24ANDROID_SDK_ROOT%2Fcmdline-tools%2Flatest%60.%5Cn-%20Run%20the%20following%20command%20to%20install%20the%20necessary%20components%3A%5Cn%20%20%60%60%60shell%5Cn%20%20sudo%20%24ANDROID_SDK_ROOT%2Fcmdline-tools%2Flatest%2Fbin%2Fsdkmanager%20--install%20%5C%5C%5Cn%20%20%20%5C%22build-tools%3B36.0.0%5C%22%20%5C%5C%5Cn%20%20%20%5C%22emulator%5C%22%20%5C%5C%5Cn%20%20%20%5C%22ndk%3B29.0.14206865%5C%22%20%5C%5C%5Cn%20%20%20%5C%22platform-tools%5C%22%20%5C%5C%5Cn%20%20%20%5C%22platforms%3Bandroid-37%5C%22%20%5C%5C%5Cn%20%20%20%5C%22system-images%3Bandroid-37%3Bgoogle_apis%3Bx86_64%5C%22%5Cn%20%20%60%60%60%5Cn-%20Follow%20the%20instructions%20above%20for%20the%20platform%20you%20are%20building%20on%5Cn%5Cn%23%23%23%20OpenHarmony%5Cn%5Cn-%20Follow%20the%20instructions%20above%20for%20the%20platform%20you%20are%20building%20on%20to%20prepare%20the%20environment.%5Cn-%20Depending%20on%20the%20target%20distribution%20(e.g.%20%60HarmonyOS%20NEXT%60%20vs%20pure%20%60OpenHarmony%60)%20the%20build%20configuration%20will%20differ%20slightly.%5Cn-%20Ensure%20that%20the%20following%20environment%20variables%20are%20set%5Cn%20%20-%20%60DEVECO_SDK_HOME%60%20(Required%20when%20targeting%20%60HarmonyOS%20NEXT%60)%5Cn%20%20-%20%60OHOS_BASE_SDK_HOME%60%20(Required%20when%20targeting%20%60OpenHarmony%60)%5Cn%20%20-%20%60OHOS_SDK_NATIVE%60%20(e.g.%20%60%24%7BDEVECO_SDK_HOME%7D%2Fdefault%2Fopenharmony%2Fnative%60%20or%20%60%24%7BOHOS_BASE_SDK_HOME%7D%2F%24%7BAPI_VERSION%7D%2Fnative%60)%5Cn%20%20-%20%60SERVO_OHOS_SIGNING_CONFIG%60%3A%20Path%20to%20json%20file%20containing%20a%20valid%20signing%20configuration%20for%20the%20demo%20app.%5Cn-%20Review%20the%20detailed%20instructions%20at%20%5BBuilding%20for%20OpenHarmony%5D.%5Cn-%20The%20target%20distribution%20can%20be%20modified%20by%20passing%20%60--flavor%3D%3Cdefault%7Charmonyos%3E%60%20to%20%60mach%20%3Cbuild%7Cpackage%7Cinstall%3E%60.%5Cn%22%7D"},"zoneReducer":{"zoneDetail":"","newsDetail":""}}
目录
Psychpsyo (Cameron)

script: Implement outdent editing command (#47459)

This implements the outdent command.

Testing: More WPT passes

There is some interesting behavior that’s still making some of the test fail though. Consider this setup:

<!DOCTYPE html>
<div contenteditable="true">
  <ol>
    <li>foo
    <ol>
      <li id="target">bar
    </ol>
    <li>baz
  </ol>
</div>
<script>
  document.getSelection().collapse(target.firstChild, 1);
  document.getSelection().extend(target.firstChild, 2);
  document.execCommand("outdent");
</script>

Here we’re trying to outdent an LI inside of a list. WPT asserts, that the entire nested OL should just be gotten rid of. This makes sense and matches Chrome. (Firefox also removes the OL but then additionally merges the LI with the preceding one)

But from what I can tell, the spec as written accomplishes none of that: The outdent command first block-extends the range (step 3), which means that it now wraps the inner LI. Then, (step 5) it makes a list of all ‘leaf’ nodes in the range. (A leaf node being one with no further editable children, or, alternatively, an OL or UL or correctly parented LI) In our example, node list contains only the LI now. And now, (step 6.1) the spec specifically does not outdent children of OL/UL elements… which includes our LI. So outdent is never called.

Not sure what to make of this yet, but I’ll investigate it a bit more to see how the WPT tests ended up that way. (and maybe go and compare homework with Ladybird to see if they ended up doing anything different here.)


Signed-off-by: Psychpsyo (Cameron) 60073468+Psychpsyo@users.noreply.github.com

10小时前59101次提交

The Servo Parallel Browser Engine Project

Servo is a prototype web browser engine written in the Rust language. It is currently developed on 64-bit macOS, 64-bit Linux, 64-bit Windows, 64-bit OpenHarmony, and Android.

Servo welcomes contribution from everyone. Check out:

Coordination of Servo development happens:

Getting started

For more detailed build instructions, see the Servo Book under Getting the Code and Building Servo.

macOS

  • Download and install Xcode and brew.
  • Install uv: curl -LsSf https://astral.sh/uv/install.sh | sh
  • Install rustup: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Restart your shell to make sure cargo is available
  • Install the other dependencies: ./mach bootstrap
  • Build servoshell: ./mach build

Linux

  • Install curl:
    • Arch: sudo pacman -S --needed curl
    • Debian, Ubuntu: sudo apt install curl
    • Fedora: sudo dnf install curl
    • Gentoo: sudo emerge net-misc/curl
  • Install uv: curl -LsSf https://astral.sh/uv/install.sh | sh
  • Install rustup: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Restart your shell to make sure cargo is available
  • Install the other dependencies: ./mach bootstrap
  • Build servoshell: ./mach build

Windows

  • Download uv, and rustup
    • Be sure to select Quick install via the Visual Studio Community installer
  • Ensure that winget is available. It should be preinstalled on Windows 10 1809+ and Windows 11, otherwise can be manually installed.
  • In the Visual Studio Installer, ensure the following components are installed:
    • Windows 10/11 SDK (anything >= 10.0.19041.0) (Microsoft.VisualStudio.Component.Windows{10, 11}SDK.{>=19041})
    • MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest) (Microsoft.VisualStudio.Component.VC.Tools.x86.x64)
    • C++ ATL for latest v143 build tools (x86 & x64) (Microsoft.VisualStudio.Component.VC.ATL)
  • Restart your shell to make sure cargo is available
  • Install the other dependencies: .\mach bootstrap
  • Build servoshell: .\mach build

Android

  • Ensure that the following environment variables are set:
    • ANDROID_SDK_ROOT
    • ANDROID_NDK_ROOT: $ANDROID_SDK_ROOT/ndk/28.2.13676358/ ANDROID_SDK_ROOT can be any directory (such as ~/android-sdk). All of the Android build dependencies will be installed there.
  • Install the latest version of the Android command-line tools to $ANDROID_SDK_ROOT/cmdline-tools/latest.
  • Run the following command to install the necessary components:
    sudo $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --install \
     "build-tools;36.0.0" \
     "emulator" \
     "ndk;29.0.14206865" \
     "platform-tools" \
     "platforms;android-37" \
     "system-images;android-37;google_apis;x86_64"
  • Follow the instructions above for the platform you are building on

OpenHarmony

  • Follow the instructions above for the platform you are building on to prepare the environment.
  • Depending on the target distribution (e.g. HarmonyOS NEXT vs pure OpenHarmony) the build configuration will differ slightly.
  • Ensure that the following environment variables are set
    • DEVECO_SDK_HOME (Required when targeting HarmonyOS NEXT)
    • OHOS_BASE_SDK_HOME (Required when targeting OpenHarmony)
    • OHOS_SDK_NATIVE (e.g. ${DEVECO_SDK_HOME}/default/openharmony/native or ${OHOS_BASE_SDK_HOME}/${API_VERSION}/native)
    • SERVO_OHOS_SIGNING_CONFIG: Path to json file containing a valid signing configuration for the demo app.
  • Review the detailed instructions at [Building for OpenHarmony].
  • The target distribution can be modified by passing --flavor=<default|harmonyos> to mach <build|package|install>.
关于
1.7 GB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号