diff --git a/data/accelerometer.json b/data/accelerometer.json index c7e52ebc..fd31833a 100644 --- a/data/accelerometer.json +++ b/data/accelerometer.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/accelerometer/", "impl": { "caniuse": "accelerometer", "chromestatus": 5698781827825664 diff --git a/data/ambientlight.json b/data/ambient-light.json similarity index 95% rename from data/ambientlight.json rename to data/ambient-light.json index 52eddab9..39f5f901 100644 --- a/data/ambientlight.json +++ b/data/ambient-light.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/ambient-light/", "impl": { "caniuse": "ambient-light", "edgestatus": "Ambient Light Sensor API", diff --git a/data/annotation-model.json b/data/annotation-model.json index b8e003bf..94ed6823 100644 --- a/data/annotation-model.json +++ b/data/annotation-model.json @@ -1,10 +1,3 @@ { - "url": "https://www.w3.org/TR/annotation-model/", - "wgs": [ - { - "label": "Web Annotation Working Group", - "url": "https://www.w3.org/annotation/" - } - ], "impl" : {} } diff --git a/data/appmanifest.json b/data/appmanifest.json index 6246e2e5..23bba151 100644 --- a/data/appmanifest.json +++ b/data/appmanifest.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/appmanifest/", "impl": { "caniuse": "web-app-manifest", "chromestatus": 6488656873259008, diff --git a/data/atag20.json b/data/atag20.json index 94c94f55..7a73a41b 100644 --- a/data/atag20.json +++ b/data/atag20.json @@ -1,3 +1,2 @@ { - "url": "https://www.w3.org/TR/ATAG20/" } \ No newline at end of file diff --git a/data/audio-output.json b/data/audio-output.json index 7209f0c2..b32686e2 100644 --- a/data/audio-output.json +++ b/data/audio-output.json @@ -5,7 +5,6 @@ "edgestatus": "Audio Output Devices API", "webkitstatus": null }, - "url": "https://www.w3.org/TR/audio-output/", "features": { "sinkId": { "title": "ID of the audio device", diff --git a/data/audiobooks.json b/data/audiobooks.json index 793becfd..7a73a41b 100644 --- a/data/audiobooks.json +++ b/data/audiobooks.json @@ -1,3 +1,2 @@ { - "url": "https://www.w3.org/TR/audiobooks/" } \ No newline at end of file diff --git a/data/background-fetch.json b/data/background-fetch.json index 4073fd2f..9fbbf5de 100644 --- a/data/background-fetch.json +++ b/data/background-fetch.json @@ -1,6 +1,4 @@ { - "url": "https://wicg.github.io/background-fetch/", - "title": "Background Fetch", "impl": { "chromestatus": 5712608971718656 } diff --git a/data/background-sync.json b/data/background-sync.json index baf09bef..039eba93 100644 --- a/data/background-sync.json +++ b/data/background-sync.json @@ -1,5 +1,4 @@ { - "url": "https://wicg.github.io/background-sync/spec/", "impl": { "caniuse": "background-sync", "chromestatus": 6170807885627392, diff --git a/data/badging.json b/data/badging.json index 57d1a75e..24419681 100644 --- a/data/badging.json +++ b/data/badging.json @@ -1,6 +1,4 @@ { - "url": "https://w3c.github.io/badging/", - "title": "Badging API", "wgs": [ { "label": "Web Applications Working Group", diff --git a/data/beacon.json b/data/beacon.json index 7348e867..44875fa5 100644 --- a/data/beacon.json +++ b/data/beacon.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/beacon/", "impl": { "caniuse": "beacon", "chromestatus": 5517433905348608, diff --git a/data/clipboard-apis.json b/data/clipboard-apis.json index 3fdbb5b4..9177eff3 100644 --- a/data/clipboard-apis.json +++ b/data/clipboard-apis.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/clipboard-apis/", "impl": { "chromestatus": 5861289330999296 } diff --git a/data/construct-stylesheets.json b/data/construct-stylesheets.json index 68424629..fabb5d1a 100644 --- a/data/construct-stylesheets.json +++ b/data/construct-stylesheets.json @@ -1,6 +1,4 @@ { - "url": "https://wicg.github.io/construct-stylesheets/", - "title": "Constructable Stylesheet Objects", "impl": { "chromestatus": 5394843094220800 } diff --git a/data/cookie-store.json b/data/cookie-store.json index 0654eea1..57b6ee9b 100644 --- a/data/cookie-store.json +++ b/data/cookie-store.json @@ -1,5 +1,4 @@ { - "url": "https://wicg.github.io/cookie-store/", "impl": { "chromestatus": 5658847691669504 } diff --git a/data/csp3.json b/data/csp3.json index 57bd36d4..93c8b41d 100644 --- a/data/csp3.json +++ b/data/csp3.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/CSP3/", "impl": { "webkitstatus": "specification-content-security-policy-level-3" }, diff --git a/data/css-animations.json b/data/css-animations.json index d41e0a86..2511f33e 100644 --- a/data/css-animations.json +++ b/data/css-animations.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/css-animations-1/", "impl": { "caniuse": "css-animation", "chromestatus": 6121990213599232 diff --git a/data/css-break-3.json b/data/css-break-3.json index bdfa72d6..bf021683 100644 --- a/data/css-break-3.json +++ b/data/css-break-3.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/css-break-3/", "features": { "box-decoration-break": { "title": "box-decoration-break property", diff --git a/data/css-content-3.json b/data/css-content-3.json index b0c62f70..3bc4444b 100644 --- a/data/css-content-3.json +++ b/data/css-content-3.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/css-content-3/", "impl": { "mdn": "css.properties.content" } diff --git a/data/css-device-adapt.json b/data/css-device-adapt.json index cb38662d..63c99e5b 100644 --- a/data/css-device-adapt.json +++ b/data/css-device-adapt.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/css-device-adapt-1/", "impl": { "caniuse": "css-deviceadaptation", "chromestatus": 4737164243894272, diff --git a/data/css-flexbox.json b/data/css-flexbox.json index 491bb4f0..32465892 100644 --- a/data/css-flexbox.json +++ b/data/css-flexbox.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/css-flexbox-1/", "impl": { "caniuse": "flexbox", "chromestatus": 4837301406400512, diff --git a/data/css-font-loading.json b/data/css-font-loading.json index a42c7ea9..24612fc2 100644 --- a/data/css-font-loading.json +++ b/data/css-font-loading.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/css-font-loading-3/", "impl": { "caniuse": "font-loading", "chromestatus": 6244676289953792, diff --git a/data/css-fonts-4.json b/data/css-fonts-4.json index 4974a468..86afb714 100644 --- a/data/css-fonts-4.json +++ b/data/css-fonts-4.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/css-fonts-4/", "features": { "variable": { "title": "Variable fonts", diff --git a/data/css-gcpm-3.json b/data/css-gcpm-3.json index f1c3f3ca..04674699 100644 --- a/data/css-gcpm-3.json +++ b/data/css-gcpm-3.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/css-gcpm-3/", "impl": { "chromestatus": 5400251359821824, "edgestatus": "Generated Content for Paged Media" diff --git a/data/css-grid-1.json b/data/css-grid-1.json index 19423e27..9dad0774 100644 --- a/data/css-grid-1.json +++ b/data/css-grid-1.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/css-grid-1/", "impl": { "caniuse": "css-grid", "chromestatus": 4589636412243968, diff --git a/data/css-line-grid-1.json b/data/css-line-grid-1.json index 161e26bf..2c63c085 100644 --- a/data/css-line-grid-1.json +++ b/data/css-line-grid-1.json @@ -1,3 +1,2 @@ { - "url": "https://www.w3.org/TR/css-line-grid-1/" } diff --git a/data/css-overscroll.json b/data/css-overscroll.json index 5fb92cdd..0ef0f767 100644 --- a/data/css-overscroll.json +++ b/data/css-overscroll.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/css-overscroll-1/", "impl": { "caniuse": "css-overscroll-behavior", "chromestatus": 5734614437986304, diff --git a/data/css-page-3.json b/data/css-page-3.json index 4ba95a02..f598ecba 100644 --- a/data/css-page-3.json +++ b/data/css-page-3.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/css-page-3/", "impl": { "caniuse": "css-paged-media" } diff --git a/data/css-page-floats-3.json b/data/css-page-floats-3.json index 897ade01..2c63c085 100644 --- a/data/css-page-floats-3.json +++ b/data/css-page-floats-3.json @@ -1,3 +1,2 @@ { - "url": "https://www.w3.org/TR/css-page-floats-3/" } diff --git a/data/css-paint-api.json b/data/css-paint-api.json index 4bbcebc6..53cf98bf 100644 --- a/data/css-paint-api.json +++ b/data/css-paint-api.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/css-paint-api-1/", "impl": { "caniuse": "css-paint-api", "chromestatus": 5685444318593024, diff --git a/data/css-rhythm-1.json b/data/css-rhythm-1.json index a3b95da1..16b19c93 100644 --- a/data/css-rhythm-1.json +++ b/data/css-rhythm-1.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/css-rhythm-1/", "impl": { "webkitstatus": "specification-css-rhythmic-sizing" }, diff --git a/data/css-ruby.json b/data/css-ruby.json index c700153a..0bc5373b 100644 --- a/data/css-ruby.json +++ b/data/css-ruby.json @@ -1,8 +1,7 @@ { - "url": "https://www.w3.org/TR/css-ruby-1/", "features": { "ruby-align": { - "url": "https://www.w3.org/TR/css-ruby-1/#ruby-align-property", + "url": "#ruby-align-property", "title": "The ruby-align property", "impl": { "mdn": "css.properties.ruby-align" @@ -10,7 +9,7 @@ }, "ruby-position": { - "url": "https://www.w3.org/TR/css-ruby-1/#rubypos", + "url": "#rubypos", "title": "The ruby-position property", "impl": { "mdn": "css.properties.ruby-position" diff --git a/data/css-scoping.json b/data/css-scoping.json index dbac3945..50e970cd 100644 --- a/data/css-scoping.json +++ b/data/css-scoping.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/css-scoping-1/", "features": { "host": { "url": "#selectordef-host", diff --git a/data/css-scroll-snap.json b/data/css-scroll-snap.json index bf844c78..0a54777d 100644 --- a/data/css-scroll-snap.json +++ b/data/css-scroll-snap.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/css-scroll-snap-1/", "impl": { "caniuse": "css-snappoints", "chromestatus": 5721832506261504, diff --git a/data/css-shadow-parts.json b/data/css-shadow-parts.json index 41de1392..0adb8e5a 100644 --- a/data/css-shadow-parts.json +++ b/data/css-shadow-parts.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/css-shadow-parts-1/", "impl": { "chromestatus": 5763933658939392, "webkitstatus": "specification-css-shadow-parts", diff --git a/data/css-size-adjust.json b/data/css-size-adjust.json index a431c8e6..b2be0e0b 100644 --- a/data/css-size-adjust.json +++ b/data/css-size-adjust.json @@ -1,6 +1,4 @@ { - "url": "https://drafts.csswg.org/css-size-adjust/", - "title": "CSS Mobile Text Size Adjustment Module Level 1", "wgs": [ { "url": "https://www.w3.org/Style/CSS/members", diff --git a/data/css-transitions.json b/data/css-transitions.json index ded7d05b..f3e4e487 100644 --- a/data/css-transitions.json +++ b/data/css-transitions.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/css-transitions-1/", "impl": { "caniuse": "css-transitions" } diff --git a/data/css-will-change.json b/data/css-will-change.json index 032df3d3..771110ae 100644 --- a/data/css-will-change.json +++ b/data/css-will-change.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/css-will-change-1/", "impl": { "caniuse": "will-change", "chromestatus": 5954199330226176, diff --git a/data/css2.json b/data/css2.json index baf15614..2c63c085 100644 --- a/data/css2.json +++ b/data/css2.json @@ -1,3 +1,2 @@ { - "url": "https://www.w3.org/TR/CSS2/" } diff --git a/data/cssom-view.json b/data/cssom-view.json index d83da93f..1bfdf2d5 100644 --- a/data/cssom-view.json +++ b/data/cssom-view.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/cssom-view-1/", "features": { "scroll-behavior": { "title": "scroll-behavior property", diff --git a/data/device-memory.json b/data/device-memory.json index 3737d014..fe374735 100644 --- a/data/device-memory.json +++ b/data/device-memory.json @@ -1,6 +1,4 @@ { - "url": "https://w3c.github.io/device-memory/", - "title": "Device Memory 1", "features": { "header": { "title": "Header field", diff --git a/data/dom.json b/data/dom.json index 29600d62..78e1bc7e 100644 --- a/data/dom.json +++ b/data/dom.json @@ -1,6 +1,4 @@ { - "url": "https://dom.spec.whatwg.org/", - "title": "DOM", "features": { "shadow": { "url": "#shadow-trees", diff --git a/data/element-timing.json b/data/element-timing.json index b0f0608c..96c98980 100644 --- a/data/element-timing.json +++ b/data/element-timing.json @@ -1,6 +1,4 @@ { - "url": "https://wicg.github.io/element-timing/", - "title": "Element Timing API", "features": { "img": { "title": "Support for images", diff --git a/data/event-timing.json b/data/event-timing.json index b7230a5e..7e6852ab 100644 --- a/data/event-timing.json +++ b/data/event-timing.json @@ -1,6 +1,4 @@ { - "url": "https://wicg.github.io/event-timing/", - "title": "Event Timing API", "impl": { "chromestatus": 5167290693713920 } diff --git a/data/fetch.json b/data/fetch.json index 0de5ed48..ce1159dc 100644 --- a/data/fetch.json +++ b/data/fetch.json @@ -1,6 +1,4 @@ { - "url": "https://fetch.spec.whatwg.org/", - "title": "Fetch", "impl": { "caniuse": "fetch", "chromestatus": 6730533392351232, diff --git a/data/fileapi.json b/data/fileapi.json index 413afb29..a02a3d27 100644 --- a/data/fileapi.json +++ b/data/fileapi.json @@ -1,6 +1,4 @@ { - "url" : "https://www.w3.org/TR/FileAPI/", - "title" : "File API", "impl": { "caniuse": "fileapi" } diff --git a/data/frame-timing.json b/data/frame-timing.json index f87e1b6b..e6454022 100644 --- a/data/frame-timing.json +++ b/data/frame-timing.json @@ -1,5 +1,4 @@ { - "url": "https://wicg.github.io/frame-timing/", "impl": { "chromestatus": 5558926443544576, "edgestatus": "Frame Timing", diff --git a/data/fullscreen.json b/data/fullscreen.json index 80606f6a..cd4d1f64 100644 --- a/data/fullscreen.json +++ b/data/fullscreen.json @@ -1,6 +1,4 @@ { - "url": "https://fullscreen.spec.whatwg.org/", - "title": "Fullscreen API", "impl": { "caniuse": "fullscreen", "chromestatus": 5259513871466496, diff --git a/data/gamepad.json b/data/gamepad.json index 3c4f19b0..6723da66 100644 --- a/data/gamepad.json +++ b/data/gamepad.json @@ -1,6 +1,4 @@ { - "url" : "https://www.w3.org/TR/gamepad/", - "title" : "Gamepad", "impl": { "caniuse": "gamepad", "chromestatus": 5118776383111168, diff --git a/data/generic-sensor.json b/data/generic-sensor.json index 901f0fcb..2c63c085 100644 --- a/data/generic-sensor.json +++ b/data/generic-sensor.json @@ -1,3 +1,2 @@ { - "url": "https://www.w3.org/TR/generic-sensor/" } diff --git a/data/geolocation-sensor.json b/data/geolocation-sensor.json index d55ce5a0..16a4a0c8 100644 --- a/data/geolocation-sensor.json +++ b/data/geolocation-sensor.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/geolocation-sensor/", "polyfills": [ { "label": "sensor-polyfills", diff --git a/data/gyroscope.json b/data/gyroscope.json index f7e38e80..e3f251d0 100644 --- a/data/gyroscope.json +++ b/data/gyroscope.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/gyroscope/", "impl": { "caniuse": "gyroscope", "chromestatus": 5698781827825664 diff --git a/data/html-media-capture.json b/data/html-media-capture.json index f2087ac0..f9a8c763 100644 --- a/data/html-media-capture.json +++ b/data/html-media-capture.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/html-media-capture", "impl": { "caniuse": "html-media-capture" } diff --git a/data/html.json b/data/html.json index b439640b..e7504159 100644 --- a/data/html.json +++ b/data/html.json @@ -1,6 +1,4 @@ { - "url": "https://html.spec.whatwg.org/multipage/", - "title": "HTML", "features": { "template": { "url": "https://html.spec.whatwg.org/multipage/scripting.html#the-template-element", diff --git a/data/ime-api.json b/data/ime-api.json index e2497db9..eac756a2 100644 --- a/data/ime-api.json +++ b/data/ime-api.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/ime-api/", "impl": { "caniuse": "ime", "chromestatus": 6366722080636928 diff --git a/data/indie-ui-events.json b/data/indie-ui-events.json index 82ff81d0..2c63c085 100644 --- a/data/indie-ui-events.json +++ b/data/indie-ui-events.json @@ -1,3 +1,2 @@ { - "url": "https://www.w3.org/TR/indie-ui-events/" } diff --git a/data/is-input-pending.json b/data/is-input-pending.json index 61740aa3..250c3d9e 100644 --- a/data/is-input-pending.json +++ b/data/is-input-pending.json @@ -1,6 +1,4 @@ { - "url": "https://wicg.github.io/is-input-pending/", - "title": "Early detection of input events", "impl": { "chromestatus": 5719830432841728 } diff --git a/data/js-self-profiling.json b/data/js-self-profiling.json index 4f0a2b06..7a73a41b 100644 --- a/data/js-self-profiling.json +++ b/data/js-self-profiling.json @@ -1,4 +1,2 @@ { - "url": "https://wicg.github.io/js-self-profiling/", - "title": "JS Self-Profiling API" } \ No newline at end of file diff --git a/data/layout-instability.json b/data/layout-instability.json index b6208784..a65375bd 100644 --- a/data/layout-instability.json +++ b/data/layout-instability.json @@ -1,6 +1,4 @@ { - "url": "https://wicg.github.io/layout-instability/", - "title": "Layout Instability API", "impl" : { "chromestatus": 5110682739539968 } diff --git a/data/longtasks.json b/data/longtasks.json index 9bcca2eb..bbb6d247 100644 --- a/data/longtasks.json +++ b/data/longtasks.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/longtasks-1/", "impl": { "chromestatus": 5738471184400384, "mdn": "api.PerformanceLongTaskTiming" diff --git a/data/magnetometer.json b/data/magnetometer.json index 672a8cb3..486dcfba 100644 --- a/data/magnetometer.json +++ b/data/magnetometer.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/magnetometer/", "impl": { "caniuse": "magnetometer", "chromestatus": 5698781827825664 diff --git a/data/me-media-timed-events.json b/data/me-media-timed-events.json index 85f46ef6..1b369381 100644 --- a/data/me-media-timed-events.json +++ b/data/me-media-timed-events.json @@ -1,5 +1,5 @@ { - "url": "https://w3c.github.io/me-media-timed-events/", + "url": "https://www.w3.org/TR/media-timed-events/", "title": "Media Timed Events", "wgs": [ { diff --git a/data/media-capabilities.json b/data/media-capabilities.json index 525e93f1..3ed06692 100644 --- a/data/media-capabilities.json +++ b/data/media-capabilities.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/media-capabilities/", "features": { "encoding": { "title": "Encoding capabilities", diff --git a/data/media-playback-quality.json b/data/media-playback-quality.json index 6dacd497..b55c0d7c 100644 --- a/data/media-playback-quality.json +++ b/data/media-playback-quality.json @@ -1,5 +1,4 @@ { - "url": "https://w3c.github.io/media-playback-quality/", "wgs": [ { "label": "Media Working Group", diff --git a/data/mediasession.json b/data/mediasession.json index 9d312007..aa25ce93 100644 --- a/data/mediasession.json +++ b/data/mediasession.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/mediasession/", "impl": { "caniuse": null, "chromestatus": 5639924124483584, diff --git a/data/mst-content-hint.json b/data/mst-content-hint.json index e1dd8588..a470078f 100644 --- a/data/mst-content-hint.json +++ b/data/mst-content-hint.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/mst-content-hint/", "impl": { "chromestatus": 5689466211532800 } diff --git a/data/native-file-system.json b/data/native-file-system.json index 6a85d997..4b2627d7 100644 --- a/data/native-file-system.json +++ b/data/native-file-system.json @@ -1,6 +1,4 @@ { - "url": "https://wicg.github.io/native-file-system/", - "title": "Native File System", "impl": { "chromestatus": 6284708426022912 } diff --git a/data/navigation-timing.json b/data/navigation-timing.json index 646ddeec..77794c8b 100644 --- a/data/navigation-timing.json +++ b/data/navigation-timing.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/navigation-timing/", "impl": { "caniuse": "nav-timing", "chromestatus": 5584144679567360, diff --git a/data/netinfo.json b/data/netinfo.json index 34edd246..8226ab0c 100644 --- a/data/netinfo.json +++ b/data/netinfo.json @@ -1,5 +1,4 @@ { - "url": "https://wicg.github.io/netinfo/", "impl": { "caniuse": "netinfo", "chromestatus": 6338383617982464 diff --git a/data/notifications.json b/data/notifications.json index 1868e1f9..1993bc1c 100644 --- a/data/notifications.json +++ b/data/notifications.json @@ -1,6 +1,4 @@ { - "url": "https://notifications.spec.whatwg.org/", - "title": "Notifications API", "impl": { "caniuse": "notifications", "chromestatus": 5064350557536256, diff --git a/data/page-lifecycle.json b/data/page-lifecycle.json index ee4fc4cb..e85608c6 100644 --- a/data/page-lifecycle.json +++ b/data/page-lifecycle.json @@ -1,5 +1,4 @@ { - "url": "https://wicg.github.io/page-lifecycle/", "impl": { "chromestatus": 5644602711212032 } diff --git a/data/page-visibility.json b/data/page-visibility.json index e31d586d..072d178b 100644 --- a/data/page-visibility.json +++ b/data/page-visibility.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/page-visibility/", "impl": { "caniuse": "pagevisibility", "chromestatus": 5689697795833856, diff --git a/data/paint-timing.json b/data/paint-timing.json index 11b0e1c7..9af439b6 100644 --- a/data/paint-timing.json +++ b/data/paint-timing.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/paint-timing/", "impl": { "chromestatus": 5688621814251520, "mdn": "api.PerformancePaintTiming" diff --git a/data/payment-handler.json b/data/payment-handler.json index 6070c00f..d4bd7299 100644 --- a/data/payment-handler.json +++ b/data/payment-handler.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/payment-handler/", "impl": { "chromestatus": 5160285237149696, "mdn": "api.PaymentManager" diff --git a/data/payment-method-basic-card.json b/data/payment-method-basic-card.json index 6df0b4b8..6b5c9ddb 100644 --- a/data/payment-method-basic-card.json +++ b/data/payment-method-basic-card.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/payment-method-basic-card/", "impl": { "chromestatus": 5408502604365824, "mdn": "api.BasicCardRequest" diff --git a/data/payment-method-id.json b/data/payment-method-id.json index 8254dce9..7a73a41b 100644 --- a/data/payment-method-id.json +++ b/data/payment-method-id.json @@ -1,3 +1,2 @@ { - "url": "https://www.w3.org/TR/payment-method-id/" } \ No newline at end of file diff --git a/data/payment-method-manifest.json b/data/payment-method-manifest.json index 62612b87..d8fc76f6 100644 --- a/data/payment-method-manifest.json +++ b/data/payment-method-manifest.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/payment-method-manifest/", "impl": { "chromestatus": 5716168929181696 } diff --git a/data/payment-request.json b/data/payment-request.json index 4cfb2d89..12a31b5d 100644 --- a/data/payment-request.json +++ b/data/payment-request.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/payment-request/", "impl": { "caniuse": "payment-request", "chromestatus": 5639348045217792, diff --git a/data/performance-timeline.json b/data/performance-timeline.json index 512999f8..fc82aba3 100644 --- a/data/performance-timeline.json +++ b/data/performance-timeline.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/performance-timeline/", "features": { "observer": { "title": "PerformanceObserver interface", diff --git a/data/permissions-policy.json b/data/permissions-policy.json index 5399549e..d68d1015 100644 --- a/data/permissions-policy.json +++ b/data/permissions-policy.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/permissions-policy-1/", "impl": { "caniuse": "permissions-policy", "chromestatus": 5745992911552512 diff --git a/data/permissions-request.json b/data/permissions-request.json index ceda823e..691fdb24 100644 --- a/data/permissions-request.json +++ b/data/permissions-request.json @@ -1,6 +1,4 @@ { - "url": "https://wicg.github.io/permissions-request/", - "title": "Requesting Permissions", "impl": { "chromestatus": 5707368532803584 } diff --git a/data/permissions-revoke.json b/data/permissions-revoke.json index 18df7a44..691fdb24 100644 --- a/data/permissions-revoke.json +++ b/data/permissions-revoke.json @@ -1,6 +1,4 @@ { - "url": "https://wicg.github.io/permissions-revoke/", - "title": "Relinquishing Permissions", "impl": { "chromestatus": 5707368532803584 } diff --git a/data/permissions.json b/data/permissions.json index 6e6a08ed..00c03a58 100644 --- a/data/permissions.json +++ b/data/permissions.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/permissions/", "impl": { "caniuse": "permissions-api", "chromestatus": 6376494003650560 diff --git a/data/picture-in-picture.json b/data/picture-in-picture.json index d7f2dbed..814bb58c 100644 --- a/data/picture-in-picture.json +++ b/data/picture-in-picture.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/picture-in-picture/", "impl": { "caniuse": "picture-in-picture", "chromestatus": 5729206566649856, diff --git a/data/pointerlock.json b/data/pointerlock.json index 94fc1743..87af5cac 100644 --- a/data/pointerlock.json +++ b/data/pointerlock.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/pointerlock", "impl": { "caniuse": "pointerlock", "chromestatus": 6753200417800192, diff --git a/data/portals.json b/data/portals.json index 870e08dc..e0a77dbf 100644 --- a/data/portals.json +++ b/data/portals.json @@ -1,6 +1,4 @@ { - "url": "https://github.com/WICG/portals/blob/master/explainer.md", - "title": "Portals", "impl": { "chromestatus": 4828882419056640 } diff --git a/data/preload.json b/data/preload.json index 0ee35954..886ba98d 100644 --- a/data/preload.json +++ b/data/preload.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/preload/", "impl": { "caniuse": "link-rel-preload", "chromestatus": 5757468554559488, diff --git a/data/priority-hints.json b/data/priority-hints.json index f9cfe778..53f6b40f 100644 --- a/data/priority-hints.json +++ b/data/priority-hints.json @@ -1,6 +1,4 @@ { - "url": "https://wicg.github.io/priority-hints/", - "title": "Priority Hints", "impl": { "chromestatus": 5273474901737472 } diff --git a/data/proximity.json b/data/proximity.json index ba58a53c..6ae792fe 100644 --- a/data/proximity.json +++ b/data/proximity.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/proximity/", "impl": { "caniuse": "proximity", "other": [ diff --git a/data/referrer-policy.json b/data/referrer-policy.json index 6f87972e..b7d23f48 100644 --- a/data/referrer-policy.json +++ b/data/referrer-policy.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/referrer-policy/", "impl": { "caniuse": "referrer-policy", "chromestatus": 5639972996513792 diff --git a/data/remote-playback.json b/data/remote-playback.json index 2527b5b5..a25b7aba 100644 --- a/data/remote-playback.json +++ b/data/remote-playback.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/remote-playback/", "impl": { "chromestatus": 5778318691401728 } diff --git a/data/requestidlecallback.json b/data/requestidlecallback.json index 122045a6..b1f79950 100644 --- a/data/requestidlecallback.json +++ b/data/requestidlecallback.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/requestidlecallback/", "impl": { "caniuse": "requestidlecallback", "chromestatus": 5572795866021888, diff --git a/data/resize-observer.json b/data/resize-observer.json index 8475158c..58b56f1a 100644 --- a/data/resize-observer.json +++ b/data/resize-observer.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/resize-observer-1/", "impl": { "caniuse": "resizeobserver", "chromestatus": 5705346022637568 diff --git a/data/resource-hints.json b/data/resource-hints.json index 2e09b9e5..742a5229 100644 --- a/data/resource-hints.json +++ b/data/resource-hints.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/resource-hints/", "features": { "dns-prefetch": { "title": "DNS prefetch", diff --git a/data/resource-timing.json b/data/resource-timing.json index def7f471..8c599701 100644 --- a/data/resource-timing.json +++ b/data/resource-timing.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/resource-timing-1/", "impl": { "caniuse": "resource-timing", "chromestatus": 5796350423728128, diff --git a/data/screen-orientation.json b/data/screen-orientation.json index 6488e1fd..11964335 100644 --- a/data/screen-orientation.json +++ b/data/screen-orientation.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/screen-orientation/", "impl": { "caniuse": "screen-orientation", "chromestatus": 6191285283061760, diff --git a/data/scroll-animations.json b/data/scroll-animations.json index ddc54f36..7a73a41b 100644 --- a/data/scroll-animations.json +++ b/data/scroll-animations.json @@ -1,3 +1,2 @@ { - "url": "https://wicg.github.io/scroll-animations/" } \ No newline at end of file diff --git a/data/selectors-states.json b/data/selectors-states.json index 74e79927..e172a34a 100644 --- a/data/selectors-states.json +++ b/data/selectors-states.json @@ -1,10 +1,4 @@ { "url": "https://www.w3.org/TR/selectors-states/", - "wgs": [ - { - "label": "Web Annotation Working Group", - "url": "https://www.w3.org/annotation/" - } - ], "impl" : {} } diff --git a/data/server-timing.json b/data/server-timing.json index 669169bb..db1b0f66 100644 --- a/data/server-timing.json +++ b/data/server-timing.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/server-timing", "impl": { "chromestatus": 5695708376072192, "edgestatus": "Server Timing", diff --git a/data/speech-api.json b/data/speech-api.json index 70bc3cb4..00886fc3 100644 --- a/data/speech-api.json +++ b/data/speech-api.json @@ -1,12 +1,4 @@ { - "url": "https://w3c.github.io/speech-api/", - "title": "Web Speech API", - "wgs": [ - { - "url": "https://www.w3.org/community/speech-api/", - "label": "Speech API Community Group" - } - ], "features": { "recognition": { "title": "Speech recognition", diff --git a/data/storage.json b/data/storage.json index 70d05fb3..0986d20d 100644 --- a/data/storage.json +++ b/data/storage.json @@ -1,6 +1,4 @@ { - "url": "https://storage.spec.whatwg.org/", - "title": "Storage", "impl": { "mdn": "api.StorageManager" }, diff --git a/data/streams.json b/data/streams.json index 7197263c..7a38f383 100644 --- a/data/streams.json +++ b/data/streams.json @@ -1,6 +1,4 @@ { - "url": "https://streams.spec.whatwg.org/", - "title": "Streams", "impl": { "caniuse": "streams", "chromestatus": 6605041225957376, diff --git a/data/task-scheduler.json b/data/task-scheduler.json index eb7f0fb9..7a73a41b 100644 --- a/data/task-scheduler.json +++ b/data/task-scheduler.json @@ -1,3 +1,2 @@ { - "url": "https://www.w3.org/TR/task-scheduler/" } \ No newline at end of file diff --git a/data/timing-entrytypes-registry.json b/data/timing-entrytypes-registry.json index f82284d5..7a73a41b 100644 --- a/data/timing-entrytypes-registry.json +++ b/data/timing-entrytypes-registry.json @@ -1,3 +1,2 @@ { - "url": "https://www.w3.org/TR/timing-entrytypes-registry/" } \ No newline at end of file diff --git a/data/vibration.json b/data/vibration.json index 5b0434d2..72006acb 100644 --- a/data/vibration.json +++ b/data/vibration.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/vibration/", "impl": { "caniuse": "vibration", "chromestatus": 5698768766763008, diff --git a/data/video-rvfc.json b/data/video-rvfc.json index 5c5f0c3b..3ab75f39 100644 --- a/data/video-rvfc.json +++ b/data/video-rvfc.json @@ -1,6 +1,4 @@ { - "url": "https://wicg.github.io/video-rvfc/", - "title": "HTMLVideoElement.requestVideoFrameCallback()", "impl": { "chromestatus": 6335927192387584 } diff --git a/data/wake-lock.json b/data/wake-lock.json index 775f7558..2c63c085 100644 --- a/data/wake-lock.json +++ b/data/wake-lock.json @@ -1,3 +1,2 @@ { - "url": "https://www.w3.org/TR/wake-lock/" } diff --git a/data/wasm-core.json b/data/wasm-core.json index bd6ab689..f8c80a66 100644 --- a/data/wasm-core.json +++ b/data/wasm-core.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/wasm-core-1/", "impl": { "caniuse": "wasm", "chromestatus": 5453022515691520, diff --git a/data/web-animations.json b/data/web-animations.json index ae9abec6..f2bea889 100644 --- a/data/web-animations.json +++ b/data/web-animations.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/web-animations-1/", "impl": { "caniuse": "web-animation", "chromestatus": 5650817352728576, diff --git a/data/web-locks.json b/data/web-locks.json index a9d0d9c4..722e6c2a 100644 --- a/data/web-locks.json +++ b/data/web-locks.json @@ -1,6 +1,4 @@ { - "url": "https://wicg.github.io/web-locks/", - "title": "Web Locks API", "impl": { "chromestatus": 5712361335816192, "mdn": "api.Navigator.locks" diff --git a/data/web-share-target.json b/data/web-share-target.json index f39edb51..9cbb4eb8 100644 --- a/data/web-share-target.json +++ b/data/web-share-target.json @@ -1,6 +1,4 @@ { - "url": "https://w3c.github.io/web-share-target/", - "title": "Web Share Target API", "wgs": [ { "label": "Web Applications Working Group", diff --git a/data/web-share.json b/data/web-share.json index cfe9a2a1..0c38e178 100644 --- a/data/web-share.json +++ b/data/web-share.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/web-share/", "impl": { "caniuse": "web-share", "chromestatus": 5668769141620736, diff --git a/data/web-transport.json b/data/web-transport.json index 4da66354..7a73a41b 100644 --- a/data/web-transport.json +++ b/data/web-transport.json @@ -1,4 +1,2 @@ { - "url": "https://wicg.github.io/web-transport/", - "title": "WebTransport" } \ No newline at end of file diff --git a/data/webaudio.json b/data/webaudio.json index 1436b2c4..e03dff2c 100644 --- a/data/webaudio.json +++ b/data/webaudio.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/webaudio/", "impl": { "caniuse": "audio-api", "chromestatus": 6261718720184320, diff --git a/data/webauthn.json b/data/webauthn.json index ecc1b523..4fad4bb7 100644 --- a/data/webauthn.json +++ b/data/webauthn.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/webauthn-1/", "impl": { "caniuse": "webauthn", "chromestatus": 5669923372138496, diff --git a/data/webgpu.json b/data/webgpu.json index b1cffdf5..f3e3747a 100644 --- a/data/webgpu.json +++ b/data/webgpu.json @@ -1,6 +1,5 @@ { "url": "https://gpuweb.github.io/gpuweb/", - "title": "WebGPU", "wgs": [ { "url": "https://www.w3.org/2020/gpu/", diff --git a/data/webhid.json b/data/webhid.json index dbad79dd..d645406b 100644 --- a/data/webhid.json +++ b/data/webhid.json @@ -1,6 +1,4 @@ { - "url": "https://wicg.github.io/webhid/", - "title": "WebHID API", "impl": { "chromestatus": 5172464636133376 } diff --git a/data/webrtc-stats.json b/data/webrtc-stats.json index aab0bbdd..fad5c79f 100644 --- a/data/webrtc-stats.json +++ b/data/webrtc-stats.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/webrtc-stats/", "impl": { "chromestatus": 5665052275245056 } diff --git a/data/webrtc-svc.json b/data/webrtc-svc.json index 6ea43ec3..1d5af89a 100644 --- a/data/webrtc-svc.json +++ b/data/webrtc-svc.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/webrtc-svc/", "impl": { "chromestatus": 5769626174619648 } diff --git a/data/websockets.json b/data/websockets.json index bd7c05e5..4f67d760 100644 --- a/data/websockets.json +++ b/data/websockets.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/websockets/", "impl": { "caniuse": "websockets", "chromestatus": 6555138000945152, diff --git a/data/webusb.json b/data/webusb.json index 19414093..a1b948a9 100644 --- a/data/webusb.json +++ b/data/webusb.json @@ -1,5 +1,4 @@ { - "url": "https://wicg.github.io/webusb/", "impl": { "caniuse": "webusb", "chromestatus": 5651917954875392, diff --git a/data/webvtt.json b/data/webvtt.json index 115e437f..146b145e 100644 --- a/data/webvtt.json +++ b/data/webvtt.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/webvtt1/", "impl": { "caniuse": "webvtt" } diff --git a/data/webxr-ar-module.json b/data/webxr-ar-module.json index 504c61ef..7a73a41b 100644 --- a/data/webxr-ar-module.json +++ b/data/webxr-ar-module.json @@ -1,3 +1,2 @@ { - "url": "https://www.w3.org/TR/webxr-ar-module/" } \ No newline at end of file diff --git a/data/webxr-gamepads-module.json b/data/webxr-gamepads-module.json index 698d46f3..d9b8a6cd 100644 --- a/data/webxr-gamepads-module.json +++ b/data/webxr-gamepads-module.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/webxr-gamepads-module/", "impl": { "chromestatus": 5659025263820800 } diff --git a/data/webxr.json b/data/webxr.json index d6f7a0a9..5e51f824 100644 --- a/data/webxr.json +++ b/data/webxr.json @@ -1,5 +1,4 @@ { - "url": "https://www.w3.org/TR/webxr/", "impl": { "caniuse": "webxr", "chromestatus": 5680169905815552, diff --git a/data/xhr.json b/data/xhr.json index e3609ff5..756f0dba 100644 --- a/data/xhr.json +++ b/data/xhr.json @@ -1,6 +1,4 @@ { - "url": "https://xhr.spec.whatwg.org/", - "title": "XMLHttpRequest", "impl": { "caniuse": "xhr2" } diff --git a/games/userinput.html b/games/userinput.html index 37734223..0c6af3e4 100644 --- a/games/userinput.html +++ b/games/userinput.html @@ -58,7 +58,7 @@

Technologies in progress

The Generic Sensor API defines a framework for exposing sensor data to the Web platform in a consistent way. In particular, the specification defines a blueprint for writing specifications of concrete sensors along with an abstract Sensor interface that can be extended to accommodate different sensor types.

-

A number of sensor APIs are being built on top of the Generic Sensor API. The Proximity Sensor specification defines an API to monitor the presence of nearby objects without physical contact. The Ambient Light Sensor specification defines an API to monitor the ambient light level or illuminance of the device's environment..

+

A number of sensor APIs are being built on top of the Generic Sensor API. The Proximity Sensor specification defines an API to monitor the presence of nearby objects without physical contact. The Ambient Light Sensor specification defines an API to monitor the ambient light level or illuminance of the device's environment..

The detection of motion is made possible by a combination of low-level and high-level motion sensor specifications, also built on top of the Generic Sensor API:

diff --git a/games/userinput.ja.html b/games/userinput.ja.html index 18b622d9..b25bc542 100644 --- a/games/userinput.ja.html +++ b/games/userinput.ja.html @@ -58,7 +58,7 @@

仕様化が進行中の仕様

Generic Sensor API はセンサーからのデータをウェブプラットフォームに統一的な形で公開するためのフレームワークを定義します。特に、この仕様では異なったセンサーに対応させるために拡張可能な抽象化された Sensor インターフェースにより、特定のセンサーについての仕様を作成するための青写真を提供します。

-

この Generic Sensor API に基づいて様々なセンサー API が定義されつつあります。Proximity Sensor 仕様は物理的接触がない近接オブジェクトの存在を検出するための API を定義しています。Ambient Light Sensor 仕様は背景光レベルや照度を検出するための APIを定義しています。

+

この Generic Sensor API に基づいて様々なセンサー API が定義されつつあります。Proximity Sensor 仕様は物理的接触がない近接オブジェクトの存在を検出するための API を定義しています。Ambient Light Sensor 仕様は背景光レベルや照度を検出するための APIを定義しています。

動作の検出は Generic Sensor API の上に定義された低レベル・高レベルのモーションセンサー仕様の組み合わせで実現されています:

diff --git a/mobile/sensors.html b/mobile/sensors.html index 01c84014..fbb3c647 100644 --- a/mobile/sensors.html +++ b/mobile/sensors.html @@ -31,7 +31,7 @@

Technologies in progress

The Proximity Sensor specification defines an API to monitor the presence of nearby objects without physical contact.

-

The Ambient Light Sensor specification defines an API to monitor the ambient light level or illuminance of the device's environment.

+

The Ambient Light Sensor specification defines an API to monitor the ambient light level or illuminance of the device's environment.

The Battery Status API exposes information about the battery status of the hosting service (however, note the future of this last specification is uncertain due to identified potential privacy-invasive usage of the API).

diff --git a/mobile/sensors.zh.html b/mobile/sensors.zh.html index 7946154f..0893b505 100644 --- a/mobile/sensors.zh.html +++ b/mobile/sensors.zh.html @@ -31,7 +31,7 @@

开发中的技术

接近度传感器规范定义了一个API来监控附近物体的存在,而无需物理接触。

-

环境光线传感器规范定义了一个API来监控环境光照水平。

+

环境光线传感器规范定义了一个API来监控环境光照水平。

电池状态API公开了有关设备的电池状态信息(但是,请注意,最后一个规范的未来由于其隐私侵入性还不明朗)。

diff --git a/package.json b/package.json index c56f56f6..54f19330 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "web-roadmaps", "dependencies": { "ajv-cli": "^3.0.0", + "browser-specs": "^1.14.0", "fetch-filecache-for-crawling": "^3.0.2", "jsdom": "^16.2.2", "mdn-browser-compat-data": "^1.0.0", diff --git a/tools/extract-spec-data.js b/tools/extract-spec-data.js index 85dbf2a4..151ff6c1 100644 --- a/tools/extract-spec-data.js +++ b/tools/extract-spec-data.js @@ -1,6 +1,7 @@ /******************************************************************************* Helper script that parses data files and fetches additional information from -the W3C API for TR specs and from Specref for other specs. +browser-specs (title, ED, repository), the W3C API (WG, status, etc.) and from +Specref for specs that are neither in browser-specs nor in the W3C API. To parse files: node tools/extract-spec-data.js data/3dcamera.json data/webvtt.json @@ -10,6 +11,7 @@ const fetch = require('fetch-filecache-for-crawling'); const path = require('path'); const fs = require('fs'); const https = require('https'); +const browserSpecs = require('browser-specs'); /** @@ -73,6 +75,13 @@ const publishers = { parentPublisher: 'W3C', isGroup: true }, + 'CSSWG': { + label: 'Cascading Style Sheets (CSS) Working Group', + url: 'https://www.w3.org/Style/CSS/', + urlPattern: /drafts\.(csswg|fxtf|css-houdini)\.org/i, + isGroup: true, + parentPublisher: 'W3C' + }, 'OGC': { label: 'Open Geospatial Consortium', url: 'http://www.opengeospatial.org/', @@ -124,6 +133,44 @@ function requireFromWorkingDirectory(filename) { } +/** + * Return the entry in browser-specs that matches the given spec, or null if the + * given spec does not exist in browser-specs + * + * @function + * @param {Object} spec The spec object to parse + * @return {Object} The entry in browser-specs that matches spec, or null + */ +function getBrowserSpec(spec) { + let data = spec.data || {}; + let specUrl = data.url || data.TR || data.edDraft || data.editors || data.ls; + return browserSpecs.find(s => { + if (specUrl) { + return (s.url === specUrl) || + (s.nightly.url === specUrl) || + (s.release && s.release.url === specUrl); + } + else { + return (s.shortname === spec.id) || + ((s.series.shortname === spec.id) && + (s.series.currentSpecification === s.shortname)); + } + }); +} + + +/** + * Return true if given spec is in browser-specs + * + * @function + * @param {Object} spec The spec object to parse + * @return {Boolean} True if spec should be considered to be a TR spec + */ +function isBrowserSpec(spec) { + return !!getBrowserSpec(spec); +} + + /** * Return true if given spec is a TR document. * @@ -323,7 +370,21 @@ async function extractSpecData(files, config) { } } - // Fetch spec info from Specref when spec is not a TR spec. + // Complete spec info with info from browser-specs + specs = specs.map(spec => { + const browserSpec = getBrowserSpec(spec); + if (!browserSpec) { + return spec; + } + const data = spec.data; + data.url = data.url || browserSpec.url; + data.edDraft = data.edDraft || browserSpec.nightly.url; + data.repository = data.repository || browserSpec.nightly.repository; + data.title = data.title || browserSpec.title; + return spec; + }); + + // Fetch spec info from Specref when spec is not a TR spec // (Proceed in chunks not to end up with a URL that is thousands of bytes // long, and only fetch a given lookup URL once) let lookupUrls = specs