From 8126e1a10584d36af973187d72deee4fb0e6c1f6 Mon Sep 17 00:00:00 2001 From: Peter Snyder Date: Fri, 13 Oct 2017 23:23:49 -0500 Subject: [PATCH] add ability to use aggressive and conservative default blocking sets --- background_scripts/bootstrap.js | 5 +- config/index.html | 4 +- config/js/components/web-api-standards.vue.js | 22 +- content_scripts/src/defaults.js | 56 ++++- data/standards/AJAX.json | 24 +- data/standards/ALS.json | 12 +- data/standards/BA.json | 13 +- data/standards/BE.json | 12 +- data/standards/CO.json | 34 ++- data/standards/CSS-CR.json | 12 +- data/standards/CSS-FO.json | 23 +- data/standards/CSS-OM.json | 26 ++- data/standards/CSS-VM.json | 39 +++- data/standards/DO.json | 13 +- data/standards/DOM-PS.json | 14 +- data/standards/DOM.json | 47 +++- data/standards/DOM1.json | 58 ++++- data/standards/DOM2-C.json | 42 +++- data/standards/DOM2-E.json | 18 +- data/standards/DOM2-H.json | 22 +- data/standards/DOM2-S.json | 30 ++- data/standards/DOM2-T.json | 47 +++- data/standards/DOM3-C.json | 21 +- data/standards/DOM3-X.json | 20 +- data/standards/DOM4.json | 14 +- data/standards/DU.json | 12 +- data/standards/E.json | 13 +- data/standards/EC.json | 23 +- data/standards/EME.json | 24 +- data/standards/F.json | 32 ++- data/standards/FA.json | 20 +- data/standards/FULL.json | 20 +- data/standards/GEO.json | 15 +- data/standards/GIM.json | 41 +++- data/standards/GP.json | 12 +- data/standards/H-B.json | 13 +- data/standards/H-C.json | 65 +++++- data/standards/H-CM.json | 15 +- data/standards/H-HI.json | 17 +- data/standards/H-P.json | 21 +- data/standards/H-WB.json | 19 +- data/standards/H-WS.json | 13 +- data/standards/H-WW.json | 13 +- data/standards/HRT.json | 12 +- data/standards/HTML.json | 206 +++++++++++++++++- data/standards/HTML5.json | 80 ++++++- data/standards/HTML51.json | 17 +- data/standards/IDB.json | 59 ++++- data/standards/MCD.json | 13 +- data/standards/MCS.json | 15 +- data/standards/MSE.json | 19 +- data/standards/MSR.json | 21 +- data/standards/NS.json | 76 ++++++- data/standards/NT.json | 36 ++- data/standards/PE.json | 13 +- data/standards/PL.json | 18 +- data/standards/PT.json | 13 +- data/standards/PT2.json | 12 +- data/standards/PV.json | 15 +- data/standards/RT.json | 14 +- data/standards/SD.json | 12 +- data/standards/SEL.json | 25 ++- data/standards/SLC.json | 17 +- data/standards/SO.json | 20 +- data/standards/SVG.json | 149 ++++++++++++- data/standards/SW.json | 24 +- data/standards/TC.json | 12 +- data/standards/TPE.json | 12 +- data/standards/UIE.json | 19 +- data/standards/URL.json | 17 +- data/standards/UTL.json | 15 +- data/standards/V.json | 12 +- data/standards/WCR.json | 25 ++- data/standards/WEBA.json | 63 +++++- data/standards/WEBGL.json | 147 ++++++++++++- data/standards/WEBVTT.json | 12 +- data/standards/WN.json | 16 +- data/standards/WRTC.json | 39 +++- gulpfile.js | 11 +- lib/pack.js | 24 +- manifest.json | 2 +- 81 files changed, 2231 insertions(+), 97 deletions(-) diff --git a/background_scripts/bootstrap.js b/background_scripts/bootstrap.js index 4cd2277..aa7e29d 100644 --- a/background_scripts/bootstrap.js +++ b/background_scripts/bootstrap.js @@ -40,16 +40,12 @@ return prev; }; - const requestFilter = { urls: [""], types: ["main_frame", "sub_frame"] }; const requestOptions = ["blocking", "responseHeaders"]; - - - chrome.webRequest.onHeadersReceived.addListener(function (details) { const url = details.url; @@ -78,5 +74,6 @@ return { responseHeaders: details.responseHeaders }; + }, requestFilter, requestOptions); }()); \ No newline at end of file diff --git a/config/index.html b/config/index.html index d73eac8..9a66ca7 100644 --- a/config/index.html +++ b/config/index.html @@ -13,13 +13,13 @@
-
+
-
+
diff --git a/config/js/components/web-api-standards.vue.js b/config/js/components/web-api-standards.vue.js index d394b92..1a55a7d 100644 --- a/config/js/components/web-api-standards.vue.js +++ b/config/js/components/web-api-standards.vue.js @@ -2,17 +2,29 @@ /*global window, browser, Vue*/ (function () { + const standardsDefaults = window.WEB_API_MANAGER.defaults; + Vue.component("web-api-standards", { props: ["standards", "selectedStandards"], template: `
+
+
+ + +
+
@@ -21,6 +33,12 @@ methods: { onStandardChecked: function () { this.$root.$data.setSelectedStandards(this.selectedStandards); + }, + onConservativeClicked: function () { + this.$root.$data.setSelectedStandards(standardsDefaults.conservative); + }, + onAggressiveClicked: function () { + this.$root.$data.setSelectedStandards(standardsDefaults.aggressive); } } }); diff --git a/content_scripts/src/defaults.js b/content_scripts/src/defaults.js index 977c489..8d4262f 100644 --- a/content_scripts/src/defaults.js +++ b/content_scripts/src/defaults.js @@ -3,8 +3,54 @@ * overwritten, either by the extension user, or by a subscribed policy * list. */ -window.WEB_API_MANAGER.defaults = { - "conservative": [ - "MediaStream Recording" - ] -}; \ No newline at end of file +window.WEB_API_MANAGER.defaults = {}; + +window.WEB_API_MANAGER.defaults.conservative = [ + "MediaStream Recording", + "DOM Parsing and Serialization", + "Fullscreen API", + "High Resolution Time Level 2", + "HTML: Web Sockets", + "HTML: Channel Messaging", + "HTML: Web Workers", + "Indexed Database API", + "Performance Timeline Level 2", + "Resource Timing", + "Scalable Vector Graphics 1.1", + "UI Events Specification", + "Web Audio API", + "WebGL Specification" +]; + +window.WEB_API_MANAGER.defaults.aggressive = window.WEB_API_MANAGER.defaults.conservative.concat([ + "Ambient Light Sensor API", + "Battery Status API", + "CSS Conditional Rules Module Level 3", + "CSS Font Loading Module Level 3", + "CSSOM View Module", + "DOM Level 2: Traversal and Range", + "Encrypted Media Extensions", + "execCommand", + "Fetch", + "File API", + "Gamepad", + "Geolocation API", + "HTML: Broadcasting", + "HTML: Plugins", + "HTML: History Interface", + "HTML: Web Storage", + "Media Capture and Streams", + "Media Source Extensions", + "Navigation Timing", + "Performance Timeline Level 2", + "Pointer Lock", + "Proximity Events", + "Selection API", + "The Screen Orientation API", + "Timing Control for Script-Based Animations", + "URL", + "User Timing Level 2", + "W3C DOM4", + "Web Notifications", + "WebRTC 1.0" +]); \ No newline at end of file diff --git a/data/standards/AJAX.json b/data/standards/AJAX.json index f4218d9..0c22858 100644 --- a/data/standards/AJAX.json +++ b/data/standards/AJAX.json @@ -1 +1,23 @@ -{"info": {"name": "XMLHttpRequest", "subsection_number": null, "subsection_name": null, "url": "https://xhr.spec.whatwg.org/"}, "features": ["FormData.prototype.append", "FormData.prototype.delete", "FormData.prototype.get", "FormData.prototype.getAll", "FormData.prototype.has", "FormData.prototype.set", "XMLHttpRequest.prototype.abort", "XMLHttpRequest.prototype.getAllResponseHeaders", "XMLHttpRequest.prototype.getResponseHeader", "XMLHttpRequest.prototype.open", "XMLHttpRequest.prototype.overrideMimeType", "XMLHttpRequest.prototype.send", "XMLHttpRequest.prototype.setRequestHeader"]} \ No newline at end of file +{ + "info": { + "name": "XMLHttpRequest", + "subsection_number": null, + "subsection_name": null, + "url": "https://xhr.spec.whatwg.org/" + }, + "features": [ + "FormData.prototype.append", + "FormData.prototype.delete", + "FormData.prototype.get", + "FormData.prototype.getAll", + "FormData.prototype.has", + "FormData.prototype.set", + "XMLHttpRequest.prototype.abort", + "XMLHttpRequest.prototype.getAllResponseHeaders", + "XMLHttpRequest.prototype.getResponseHeader", + "XMLHttpRequest.prototype.open", + "XMLHttpRequest.prototype.overrideMimeType", + "XMLHttpRequest.prototype.send", + "XMLHttpRequest.prototype.setRequestHeader" + ] +} diff --git a/data/standards/ALS.json b/data/standards/ALS.json index 928ed7b..7a59451 100644 --- a/data/standards/ALS.json +++ b/data/standards/ALS.json @@ -1 +1,11 @@ -{"info": {"name": "Ambient Light Sensor API", "subsection_number": null, "subsection_name": null, "url": "https://w3c.github.io/ambient-light/"}, "features": ["window.ondevicelight"]} \ No newline at end of file +{ + "info": { + "name": "Ambient Light Sensor API", + "subsection_number": null, + "subsection_name": null, + "url": "https://w3c.github.io/ambient-light/" + }, + "features": [ + "window.ondevicelight" + ] +} diff --git a/data/standards/BA.json b/data/standards/BA.json index 9ffca67..391d849 100644 --- a/data/standards/BA.json +++ b/data/standards/BA.json @@ -1 +1,12 @@ -{"info": {"name": "Battery Status API", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/battery-status/"}, "features": ["navigator.battery", "Navigator.prototype.getBattery"]} \ No newline at end of file +{ + "info": { + "name": "Battery Status API", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/battery-status/" + }, + "features": [ + "navigator.battery", + "Navigator.prototype.getBattery" + ] +} diff --git a/data/standards/BE.json b/data/standards/BE.json index 66bef86..b6ef38e 100644 --- a/data/standards/BE.json +++ b/data/standards/BE.json @@ -1 +1,11 @@ -{"info": {"name": "Beacon", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/beacon/"}, "features": ["Navigator.prototype.sendBeacon"]} \ No newline at end of file +{ + "info": { + "name": "Beacon", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/beacon/" + }, + "features": [ + "Navigator.prototype.sendBeacon" + ] +} diff --git a/data/standards/CO.json b/data/standards/CO.json index fde55a0..8daf351 100644 --- a/data/standards/CO.json +++ b/data/standards/CO.json @@ -1 +1,33 @@ -{"info": {"name": "Console API", "subsection_number": null, "subsection_name": null, "url": "https://github.com/DeveloperToolsWG/console-object"}, "features": ["Console.prototype.assert", "Console.prototype.clear", "Console.prototype.count", "Console.prototype.debug", "Console.prototype.dir", "Console.prototype.dirxml", "Console.prototype.error", "Console.prototype.group", "Console.prototype.groupCollapsed", "Console.prototype.groupEnd", "Console.prototype.info", "Console.prototype.log", "Console.prototype.markTimeline", "Console.prototype.profile", "Console.prototype.profileEnd", "Console.prototype.table", "Console.prototype.time", "Console.prototype.timeEnd", "Console.prototype.timeline", "Console.prototype.timelineEnd", "Console.prototype.timeStamp", "Console.prototype.trace", "Console.prototype.warn"]} \ No newline at end of file +{ + "info": { + "name": "Console API", + "subsection_number": null, + "subsection_name": null, + "url": "https://github.com/DeveloperToolsWG/console-object" + }, + "features": [ + "Console.prototype.assert", + "Console.prototype.clear", + "Console.prototype.count", + "Console.prototype.debug", + "Console.prototype.dir", + "Console.prototype.dirxml", + "Console.prototype.error", + "Console.prototype.group", + "Console.prototype.groupCollapsed", + "Console.prototype.groupEnd", + "Console.prototype.info", + "Console.prototype.log", + "Console.prototype.markTimeline", + "Console.prototype.profile", + "Console.prototype.profileEnd", + "Console.prototype.table", + "Console.prototype.time", + "Console.prototype.timeEnd", + "Console.prototype.timeline", + "Console.prototype.timelineEnd", + "Console.prototype.timeStamp", + "Console.prototype.trace", + "Console.prototype.warn" + ] +} diff --git a/data/standards/CSS-CR.json b/data/standards/CSS-CR.json index e0992e2..fd7a93b 100644 --- a/data/standards/CSS-CR.json +++ b/data/standards/CSS-CR.json @@ -1 +1,11 @@ -{"info": {"name": "CSS Conditional Rules Module Level 3", "subsection_number": null, "subsection_name": null, "url": "https://drafts.csswg.org/css-conditional-3/"}, "features": ["CSS.supports"]} \ No newline at end of file +{ + "info": { + "name": "CSS Conditional Rules Module Level 3", + "subsection_number": null, + "subsection_name": null, + "url": "https://drafts.csswg.org/css-conditional-3/" + }, + "features": [ + "CSS.supports" + ] +} diff --git a/data/standards/CSS-FO.json b/data/standards/CSS-FO.json index cb265ba..87af0ff 100644 --- a/data/standards/CSS-FO.json +++ b/data/standards/CSS-FO.json @@ -1 +1,22 @@ -{"info": {"name": "CSS Font Loading Module Level 3", "subsection_number": null, "subsection_name": null, "url": "https://drafts.csswg.org/css-font-loading/"}, "features": ["document.fonts", "FontFace.prototype.load", "FontFaceSet.prototype.add", "FontFaceSet.prototype.check", "FontFaceSet.prototype.clear", "FontFaceSet.prototype.delete", "FontFaceSet.prototype.entries", "FontFaceSet.prototype.forEach", "FontFaceSet.prototype.has", "FontFaceSet.prototype.keys", "FontFaceSet.prototype.load", "FontFaceSet.prototype.values"]} \ No newline at end of file +{ + "info": { + "name": "CSS Font Loading Module Level 3", + "subsection_number": null, + "subsection_name": null, + "url": "https://drafts.csswg.org/css-font-loading/" + }, + "features": [ + "document.fonts", + "FontFace.prototype.load", + "FontFaceSet.prototype.add", + "FontFaceSet.prototype.check", + "FontFaceSet.prototype.clear", + "FontFaceSet.prototype.delete", + "FontFaceSet.prototype.entries", + "FontFaceSet.prototype.forEach", + "FontFaceSet.prototype.has", + "FontFaceSet.prototype.keys", + "FontFaceSet.prototype.load", + "FontFaceSet.prototype.values" + ] +} diff --git a/data/standards/CSS-OM.json b/data/standards/CSS-OM.json index f120230..972f33d 100644 --- a/data/standards/CSS-OM.json +++ b/data/standards/CSS-OM.json @@ -1 +1,25 @@ -{"info": {"name": "CSS Object Model (CSSOM)", "subsection_number": null, "subsection_name": null, "url": "https://drafts.csswg.org/cssom/"}, "features": ["CSS.escape", "Document.prototype.caretPositionFromPoint", "Document.prototype.elementFromPoint", "Element.prototype.getBoundingClientRect", "Element.prototype.getClientRects", "Element.prototype.scroll", "Element.prototype.scrollBy", "Element.prototype.scrollIntoView", "Element.prototype.scrollTo", "MediaList.prototype.appendMedium", "MediaList.prototype.deleteMedium", "MediaList.prototype.item", "MediaQueryList.prototype.addListener", "MediaQueryList.prototype.removeListener", "StyleSheetList.prototype.item"]} \ No newline at end of file +{ + "info": { + "name": "CSS Object Model (CSSOM)", + "subsection_number": null, + "subsection_name": null, + "url": "https://drafts.csswg.org/cssom/" + }, + "features": [ + "CSS.escape", + "Document.prototype.caretPositionFromPoint", + "Document.prototype.elementFromPoint", + "Element.prototype.getBoundingClientRect", + "Element.prototype.getClientRects", + "Element.prototype.scroll", + "Element.prototype.scrollBy", + "Element.prototype.scrollIntoView", + "Element.prototype.scrollTo", + "MediaList.prototype.appendMedium", + "MediaList.prototype.deleteMedium", + "MediaList.prototype.item", + "MediaQueryList.prototype.addListener", + "MediaQueryList.prototype.removeListener", + "StyleSheetList.prototype.item" + ] +} diff --git a/data/standards/CSS-VM.json b/data/standards/CSS-VM.json index d15c59f..9ac21d2 100644 --- a/data/standards/CSS-VM.json +++ b/data/standards/CSS-VM.json @@ -1 +1,38 @@ -{"info": {"name": "CSSOM View Module", "subsection_number": null, "subsection_name": null, "url": "https://drafts.csswg.org/cssom-view/"}, "features": ["CaretPosition.prototype.getClientRect", "screen.availHeight", "screen.availWidth", "screen.colorDepth", "screen.height", "screen.left", "screen.pixelDepth", "screen.width", "window.devicePixelRatio", "window.innerHeight", "window.innerWidth", "window.matchMedia", "window.moveBy", "window.moveTo", "window.outerHeight", "window.outerWidth", "window.pageXOffset", "window.pageYOffset", "window.resizeBy", "window.resizeTo", "window.screen", "window.screenX", "window.screenY", "window.scroll", "window.scrollBy", "window.scrollTo", "window.scrollX", "window.scrollY"]} \ No newline at end of file +{ + "info": { + "name": "CSSOM View Module", + "subsection_number": null, + "subsection_name": null, + "url": "https://drafts.csswg.org/cssom-view/" + }, + "features": [ + "CaretPosition.prototype.getClientRect", + "screen.availHeight", + "screen.availWidth", + "screen.colorDepth", + "screen.height", + "screen.left", + "screen.pixelDepth", + "screen.width", + "window.devicePixelRatio", + "window.innerHeight", + "window.innerWidth", + "window.matchMedia", + "window.moveBy", + "window.moveTo", + "window.outerHeight", + "window.outerWidth", + "window.pageXOffset", + "window.pageYOffset", + "window.resizeBy", + "window.resizeTo", + "window.screen", + "window.screenX", + "window.screenY", + "window.scroll", + "window.scrollBy", + "window.scrollTo", + "window.scrollX", + "window.scrollY" + ] +} diff --git a/data/standards/DO.json b/data/standards/DO.json index c468078..f85af29 100644 --- a/data/standards/DO.json +++ b/data/standards/DO.json @@ -1 +1,12 @@ -{"info": {"name": "DeviceOrientation Event Specification", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/orientation-event/"}, "features": ["DeviceMotionEvent.prototype.initDeviceMotionEvent", "DeviceOrientationEvent.prototype.initDeviceOrientationEvent"]} \ No newline at end of file +{ + "info": { + "name": "DeviceOrientation Event Specification", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/orientation-event/" + }, + "features": [ + "DeviceMotionEvent.prototype.initDeviceMotionEvent", + "DeviceOrientationEvent.prototype.initDeviceOrientationEvent" + ] +} diff --git a/data/standards/DOM-PS.json b/data/standards/DOM-PS.json index 1d3afdc..f7f83da 100644 --- a/data/standards/DOM-PS.json +++ b/data/standards/DOM-PS.json @@ -1 +1,13 @@ -{"info": {"name": "DOM Parsing and Serialization", "subsection_number": null, "subsection_name": null, "url": "https://w3c.github.io/DOM-Parsing/"}, "features": ["DOMParser.prototype.parseFromString", "Element.prototype.insertAdjacentHTML", "XMLSerializer.prototype.serializeToString"]} \ No newline at end of file +{ + "info": { + "name": "DOM Parsing and Serialization", + "subsection_number": null, + "subsection_name": null, + "url": "https://w3c.github.io/DOM-Parsing/" + }, + "features": [ + "DOMParser.prototype.parseFromString", + "Element.prototype.insertAdjacentHTML", + "XMLSerializer.prototype.serializeToString" + ] +} diff --git a/data/standards/DOM.json b/data/standards/DOM.json index af3e0d7..85dc8d4 100644 --- a/data/standards/DOM.json +++ b/data/standards/DOM.json @@ -1 +1,46 @@ -{"info": {"name": "DOM", "subsection_number": null, "subsection_name": null, "url": "https://dom.spec.whatwg.org/"}, "features": ["CharacterData.prototype.appendData", "CharacterData.prototype.deleteData", "CharacterData.prototype.insertData", "CharacterData.prototype.remove", "CharacterData.prototype.replaceData", "CharacterData.prototype.substringData", "CustomEvent.prototype.initCustomEvent", "document.characterSet", "document.childElementCount", "document.children", "document.close", "document.compatMode", "document.contentType", "document.firstElementChild", "document.inputEncoding", "document.lastElementChild", "Document.prototype.createAttribute", "Document.prototype.createElement", "Document.prototype.createProcessingInstruction", "Document.prototype.getElementsByClassName", "document.scripts", "DocumentFragment.prototype.getElementById", "DocumentType.prototype.remove", "DOMImplementation.prototype.createHTMLDocument", "DOMTokenList.prototype.add", "DOMTokenList.prototype.contains", "DOMTokenList.prototype.item", "DOMTokenList.prototype.remove", "DOMTokenList.prototype.toggle", "Element.prototype.closest", "Element.prototype.getElementsByClassName", "Element.prototype.matches", "Element.prototype.mozMatchesSelector", "Element.prototype.remove", "window.clearInterval", "window.clearTimeout"]} \ No newline at end of file +{ + "info": { + "name": "DOM", + "subsection_number": null, + "subsection_name": null, + "url": "https://dom.spec.whatwg.org/" + }, + "features": [ + "CharacterData.prototype.appendData", + "CharacterData.prototype.deleteData", + "CharacterData.prototype.insertData", + "CharacterData.prototype.remove", + "CharacterData.prototype.replaceData", + "CharacterData.prototype.substringData", + "CustomEvent.prototype.initCustomEvent", + "document.characterSet", + "document.childElementCount", + "document.children", + "document.close", + "document.compatMode", + "document.contentType", + "document.firstElementChild", + "document.inputEncoding", + "document.lastElementChild", + "Document.prototype.createAttribute", + "Document.prototype.createElement", + "Document.prototype.createProcessingInstruction", + "Document.prototype.getElementsByClassName", + "document.scripts", + "DocumentFragment.prototype.getElementById", + "DocumentType.prototype.remove", + "DOMImplementation.prototype.createHTMLDocument", + "DOMTokenList.prototype.add", + "DOMTokenList.prototype.contains", + "DOMTokenList.prototype.item", + "DOMTokenList.prototype.remove", + "DOMTokenList.prototype.toggle", + "Element.prototype.closest", + "Element.prototype.getElementsByClassName", + "Element.prototype.matches", + "Element.prototype.mozMatchesSelector", + "Element.prototype.remove", + "window.clearInterval", + "window.clearTimeout" + ] +} diff --git a/data/standards/DOM1.json b/data/standards/DOM1.json index 94d7c33..dd898ea 100644 --- a/data/standards/DOM1.json +++ b/data/standards/DOM1.json @@ -1 +1,57 @@ -{"info": {"name": "Document Object Model (DOM) Level 1 Specification", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/REC-DOM-Level-1/"}, "features": ["Document.prototype.getElementById", "Document.prototype.getElementsByTagName", "Element.prototype.getAttribute", "Element.prototype.getAttributeNode", "Element.prototype.getElementsByTagName", "Element.prototype.removeAttribute", "Element.prototype.removeAttributeNode", "Element.prototype.setAttribute", "Element.prototype.setAttributeNode", "HTMLCollection.prototype.item", "HTMLCollection.prototype.namedItem", "HTMLDocument.prototype.close", "HTMLDocument.prototype.open", "HTMLDocument.prototype.write", "HTMLDocument.prototype.writeln", "HTMLElement.prototype.click", "HTMLElement.prototype.focus", "HTMLFormElement.prototype.reset", "HTMLFormElement.prototype.submit", "HTMLInputElement.prototype.select", "HTMLSelectElement.prototype.add", "HTMLSelectElement.prototype.item", "HTMLSelectElement.prototype.namedItem", "HTMLSelectElement.prototype.remove", "HTMLTableElement.prototype.createCaption", "HTMLTableElement.prototype.createTBody", "HTMLTableElement.prototype.createTFoot", "HTMLTableElement.prototype.createTHead", "HTMLTableElement.prototype.deleteCaption", "HTMLTableElement.prototype.deleteRow", "HTMLTableElement.prototype.deleteTFoot", "HTMLTableElement.prototype.deleteTHead", "HTMLTableElement.prototype.insertRow", "HTMLTableRowElement.prototype.deleteCell", "HTMLTableRowElement.prototype.insertCell", "HTMLTableSectionElement.prototype.deleteRow", "HTMLTableSectionElement.prototype.insertRow", "HTMLTextAreaElement.prototype.select", "Node.prototype.appendChild", "Node.prototype.cloneNode", "Node.prototype.hasChildNodes", "Node.prototype.insertBefore", "Node.prototype.normalize", "Node.prototype.removeChild", "Node.prototype.replaceChild", "NodeList.prototype.item", "Text.prototype.splitText"]} \ No newline at end of file +{ + "info": { + "name": "Document Object Model (DOM) Level 1 Specification", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/REC-DOM-Level-1/" + }, + "features": [ + "Document.prototype.getElementById", + "Document.prototype.getElementsByTagName", + "Element.prototype.getAttribute", + "Element.prototype.getAttributeNode", + "Element.prototype.getElementsByTagName", + "Element.prototype.removeAttribute", + "Element.prototype.removeAttributeNode", + "Element.prototype.setAttribute", + "Element.prototype.setAttributeNode", + "HTMLCollection.prototype.item", + "HTMLCollection.prototype.namedItem", + "HTMLDocument.prototype.close", + "HTMLDocument.prototype.open", + "HTMLDocument.prototype.write", + "HTMLDocument.prototype.writeln", + "HTMLElement.prototype.click", + "HTMLElement.prototype.focus", + "HTMLFormElement.prototype.reset", + "HTMLFormElement.prototype.submit", + "HTMLInputElement.prototype.select", + "HTMLSelectElement.prototype.add", + "HTMLSelectElement.prototype.item", + "HTMLSelectElement.prototype.namedItem", + "HTMLSelectElement.prototype.remove", + "HTMLTableElement.prototype.createCaption", + "HTMLTableElement.prototype.createTBody", + "HTMLTableElement.prototype.createTFoot", + "HTMLTableElement.prototype.createTHead", + "HTMLTableElement.prototype.deleteCaption", + "HTMLTableElement.prototype.deleteRow", + "HTMLTableElement.prototype.deleteTFoot", + "HTMLTableElement.prototype.deleteTHead", + "HTMLTableElement.prototype.insertRow", + "HTMLTableRowElement.prototype.deleteCell", + "HTMLTableRowElement.prototype.insertCell", + "HTMLTableSectionElement.prototype.deleteRow", + "HTMLTableSectionElement.prototype.insertRow", + "HTMLTextAreaElement.prototype.select", + "Node.prototype.appendChild", + "Node.prototype.cloneNode", + "Node.prototype.hasChildNodes", + "Node.prototype.insertBefore", + "Node.prototype.normalize", + "Node.prototype.removeChild", + "Node.prototype.replaceChild", + "NodeList.prototype.item", + "Text.prototype.splitText" + ] +} diff --git a/data/standards/DOM2-C.json b/data/standards/DOM2-C.json index 82456fd..98ed01e 100644 --- a/data/standards/DOM2-C.json +++ b/data/standards/DOM2-C.json @@ -1 +1,41 @@ -{"info": {"name": "Document Object Model (DOM) Level 2 Core Specification", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/DOM-Level-2-Core/"}, "features": ["document.doctype", "document.documentElement", "document.domain", "document.implementation", "Document.prototype.createAttributeNS", "Document.prototype.createCDATASection", "Document.prototype.createComment", "Document.prototype.createDocumentFragment", "Document.prototype.createElementNS", "Document.prototype.createTextNode", "Document.prototype.getElementsByTagNameNS", "Document.prototype.importNode", "DOMImplementation.prototype.createDocument", "DOMImplementation.prototype.createDocumentType", "DOMImplementation.prototype.hasFeature", "Element.prototype.getAttributeNodeNS", "Element.prototype.getAttributeNS", "Element.prototype.getElementsByTagNameNS", "Element.prototype.hasAttribute", "Element.prototype.hasAttributeNS", "Element.prototype.hasAttributes", "Element.prototype.removeAttributeNS", "Element.prototype.setAttributeNodeNS", "Element.prototype.setAttributeNS", "NamedNodeMap.prototype.getNamedItem", "NamedNodeMap.prototype.getNamedItemNS", "NamedNodeMap.prototype.item", "NamedNodeMap.prototype.removeNamedItem", "NamedNodeMap.prototype.removeNamedItemNS", "NamedNodeMap.prototype.setNamedItem", "NamedNodeMap.prototype.setNamedItemNS"]} \ No newline at end of file +{ + "info": { + "name": "DOM Level 2: Core", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/DOM-Level-2-Core/" + }, + "features": [ + "document.doctype", + "document.documentElement", + "document.domain", + "document.implementation", + "Document.prototype.createAttributeNS", + "Document.prototype.createCDATASection", + "Document.prototype.createComment", + "Document.prototype.createDocumentFragment", + "Document.prototype.createElementNS", + "Document.prototype.createTextNode", + "Document.prototype.getElementsByTagNameNS", + "Document.prototype.importNode", + "DOMImplementation.prototype.createDocument", + "DOMImplementation.prototype.createDocumentType", + "DOMImplementation.prototype.hasFeature", + "Element.prototype.getAttributeNodeNS", + "Element.prototype.getAttributeNS", + "Element.prototype.getElementsByTagNameNS", + "Element.prototype.hasAttribute", + "Element.prototype.hasAttributeNS", + "Element.prototype.hasAttributes", + "Element.prototype.removeAttributeNS", + "Element.prototype.setAttributeNodeNS", + "Element.prototype.setAttributeNS", + "NamedNodeMap.prototype.getNamedItem", + "NamedNodeMap.prototype.getNamedItemNS", + "NamedNodeMap.prototype.item", + "NamedNodeMap.prototype.removeNamedItem", + "NamedNodeMap.prototype.removeNamedItemNS", + "NamedNodeMap.prototype.setNamedItem", + "NamedNodeMap.prototype.setNamedItemNS" + ] +} diff --git a/data/standards/DOM2-E.json b/data/standards/DOM2-E.json index fdd6598..ab62ba6 100644 --- a/data/standards/DOM2-E.json +++ b/data/standards/DOM2-E.json @@ -1 +1,17 @@ -{"info": {"name": "Document Object Model (DOM) Level 2 Events Specification", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/DOM-Level-2-Events/"}, "features": ["Document.prototype.createEvent", "Event.prototype.initEvent", "Event.prototype.preventDefault", "Event.prototype.stopPropagation", "EventTarget.prototype.addEventListener", "EventTarget.prototype.dispatchEvent", "EventTarget.prototype.removeEventListener"]} \ No newline at end of file +{ + "info": { + "name": "DOM Level 2: Events", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/DOM-Level-2-Events/" + }, + "features": [ + "Document.prototype.createEvent", + "Event.prototype.initEvent", + "Event.prototype.preventDefault", + "Event.prototype.stopPropagation", + "EventTarget.prototype.addEventListener", + "EventTarget.prototype.dispatchEvent", + "EventTarget.prototype.removeEventListener" + ] +} diff --git a/data/standards/DOM2-H.json b/data/standards/DOM2-H.json index b61b286..fc69a24 100644 --- a/data/standards/DOM2-H.json +++ b/data/standards/DOM2-H.json @@ -1 +1,21 @@ -{"info": {"name": "Document Object Model (DOM) Level 2 HTML Specification", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/DOM-Level-2-HTML/"}, "features": ["document.cookie", "document.forms", "document.getElementsByName", "document.open", "document.referrer", "document.title", "document.URL", "document.write", "document.writeln", "HTMLDocument.prototype.getElementsByName", "HTMLElement.prototype.blur"]} \ No newline at end of file +{ + "info": { + "name": "DOM Level 2: HTML", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/DOM-Level-2-HTML/" + }, + "features": [ + "document.cookie", + "document.forms", + "document.getElementsByName", + "document.open", + "document.referrer", + "document.title", + "document.URL", + "document.write", + "document.writeln", + "HTMLDocument.prototype.getElementsByName", + "HTMLElement.prototype.blur" + ] +} diff --git a/data/standards/DOM2-S.json b/data/standards/DOM2-S.json index 886d1ab..26e25e3 100644 --- a/data/standards/DOM2-S.json +++ b/data/standards/DOM2-S.json @@ -1 +1,29 @@ -{"info": {"name": "Document Object Model (DOM) Level 2 Style Specification", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/DOM-Level-2-Style/"}, "features": ["CSSPrimitiveValue.prototype.getCounterValue", "CSSPrimitiveValue.prototype.getFloatValue", "CSSPrimitiveValue.prototype.getRectValue", "CSSPrimitiveValue.prototype.getRGBColorValue", "CSSPrimitiveValue.prototype.getStringValue", "CSSPrimitiveValue.prototype.setFloatValue", "CSSPrimitiveValue.prototype.setStringValue", "CSSRuleList.prototype.item", "CSSStyleDeclaration.prototype.getPropertyCSSValue", "CSSStyleDeclaration.prototype.getPropertyPriority", "CSSStyleDeclaration.prototype.getPropertyValue", "CSSStyleDeclaration.prototype.item", "CSSStyleDeclaration.prototype.removeProperty", "CSSStyleDeclaration.prototype.setProperty", "CSSStyleSheet.prototype.deleteRule", "CSSStyleSheet.prototype.insertRule", "CSSValueList.prototype.item", "document.styleSheets", "window.getComputedStyle"]} \ No newline at end of file +{ + "info": { + "name": "DOM Level 2: Style", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/DOM-Level-2-Style/" + }, + "features": [ + "CSSPrimitiveValue.prototype.getCounterValue", + "CSSPrimitiveValue.prototype.getFloatValue", + "CSSPrimitiveValue.prototype.getRectValue", + "CSSPrimitiveValue.prototype.getRGBColorValue", + "CSSPrimitiveValue.prototype.getStringValue", + "CSSPrimitiveValue.prototype.setFloatValue", + "CSSPrimitiveValue.prototype.setStringValue", + "CSSRuleList.prototype.item", + "CSSStyleDeclaration.prototype.getPropertyCSSValue", + "CSSStyleDeclaration.prototype.getPropertyPriority", + "CSSStyleDeclaration.prototype.getPropertyValue", + "CSSStyleDeclaration.prototype.item", + "CSSStyleDeclaration.prototype.removeProperty", + "CSSStyleDeclaration.prototype.setProperty", + "CSSStyleSheet.prototype.deleteRule", + "CSSStyleSheet.prototype.insertRule", + "CSSValueList.prototype.item", + "document.styleSheets", + "window.getComputedStyle" + ] +} diff --git a/data/standards/DOM2-T.json b/data/standards/DOM2-T.json index 4aa9f2c..05d05b0 100644 --- a/data/standards/DOM2-T.json +++ b/data/standards/DOM2-T.json @@ -1 +1,46 @@ -{"info": {"name": "Document Object Model (DOM) Level 2 Traversal and Range Specification", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/DOM-Level-2-Traversal-Range/"}, "features": ["Document.prototype.createNodeIterator", "Document.prototype.createRange", "Document.prototype.createTreeWalker", "NodeIterator.prototype.detach", "NodeIterator.prototype.nextNode", "NodeIterator.prototype.previousNode", "Range.prototype.cloneContents", "Range.prototype.cloneRange", "Range.prototype.collapse", "Range.prototype.compareBoundaryPoints", "Range.prototype.comparePoint", "Range.prototype.createContextualFragment", "Range.prototype.deleteContents", "Range.prototype.detach", "Range.prototype.extractContents", "Range.prototype.getBoundingClientRect", "Range.prototype.getClientRects", "Range.prototype.insertNode", "Range.prototype.intersectsNode", "Range.prototype.isPointInRange", "Range.prototype.selectNode", "Range.prototype.selectNodeContents", "Range.prototype.setEnd", "Range.prototype.setEndAfter", "Range.prototype.setEndBefore", "Range.prototype.setStart", "Range.prototype.setStartAfter", "Range.prototype.setStartBefore", "Range.prototype.surroundContents", "TreeWalker.prototype.firstChild", "TreeWalker.prototype.lastChild", "TreeWalker.prototype.nextNode", "TreeWalker.prototype.nextSibling", "TreeWalker.prototype.parentNode", "TreeWalker.prototype.previousNode", "TreeWalker.prototype.previousSibling"]} \ No newline at end of file +{ + "info": { + "name": "DOM Level 2: Traversal and Range", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/DOM-Level-2-Traversal-Range/" + }, + "features": [ + "Document.prototype.createNodeIterator", + "Document.prototype.createRange", + "Document.prototype.createTreeWalker", + "NodeIterator.prototype.detach", + "NodeIterator.prototype.nextNode", + "NodeIterator.prototype.previousNode", + "Range.prototype.cloneContents", + "Range.prototype.cloneRange", + "Range.prototype.collapse", + "Range.prototype.compareBoundaryPoints", + "Range.prototype.comparePoint", + "Range.prototype.createContextualFragment", + "Range.prototype.deleteContents", + "Range.prototype.detach", + "Range.prototype.extractContents", + "Range.prototype.getBoundingClientRect", + "Range.prototype.getClientRects", + "Range.prototype.insertNode", + "Range.prototype.intersectsNode", + "Range.prototype.isPointInRange", + "Range.prototype.selectNode", + "Range.prototype.selectNodeContents", + "Range.prototype.setEnd", + "Range.prototype.setEndAfter", + "Range.prototype.setEndBefore", + "Range.prototype.setStart", + "Range.prototype.setStartAfter", + "Range.prototype.setStartBefore", + "Range.prototype.surroundContents", + "TreeWalker.prototype.firstChild", + "TreeWalker.prototype.lastChild", + "TreeWalker.prototype.nextNode", + "TreeWalker.prototype.nextSibling", + "TreeWalker.prototype.parentNode", + "TreeWalker.prototype.previousNode", + "TreeWalker.prototype.previousSibling" + ] +} diff --git a/data/standards/DOM3-C.json b/data/standards/DOM3-C.json index bb21c4b..9776656 100644 --- a/data/standards/DOM3-C.json +++ b/data/standards/DOM3-C.json @@ -1 +1,20 @@ -{"info": {"name": "Document Object Model (DOM) Level 3 Core Specification", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/DOM-Level-3-Core/"}, "features": ["document.documentURI", "Document.prototype.adoptNode", "DOMStringList.prototype.contains", "DOMStringList.prototype.item", "Node.prototype.compareDocumentPosition", "Node.prototype.contains", "Node.prototype.isDefaultNamespace", "Node.prototype.isEqualNode", "Node.prototype.lookupNamespaceURI", "Node.prototype.lookupPrefix"]} \ No newline at end of file +{ + "info": { + "name": "DOM Level 3: Core", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/DOM-Level-3-Core/" + }, + "features": [ + "document.documentURI", + "Document.prototype.adoptNode", + "DOMStringList.prototype.contains", + "DOMStringList.prototype.item", + "Node.prototype.compareDocumentPosition", + "Node.prototype.contains", + "Node.prototype.isDefaultNamespace", + "Node.prototype.isEqualNode", + "Node.prototype.lookupNamespaceURI", + "Node.prototype.lookupPrefix" + ] +} diff --git a/data/standards/DOM3-X.json b/data/standards/DOM3-X.json index 6709224..6eed2af 100644 --- a/data/standards/DOM3-X.json +++ b/data/standards/DOM3-X.json @@ -1 +1,19 @@ -{"info": {"name": "Document Object Model (DOM) Level 3 XPath Specification", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/DOM-Level-3-XPath/"}, "features": ["Document.prototype.createExpression", "Document.prototype.createNSResolver", "Document.prototype.evaluate", "XPathEvaluator.prototype.createExpression", "XPathEvaluator.prototype.createNSResolver", "XPathEvaluator.prototype.evaluate", "XPathExpression.prototype.evaluate", "XPathResult.prototype.iterateNext", "XPathResult.prototype.snapshotItem"]} \ No newline at end of file +{ + "info": { + "name": "DOM Level 3: XPath", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/DOM-Level-3-XPath/" + }, + "features": [ + "Document.prototype.createExpression", + "Document.prototype.createNSResolver", + "Document.prototype.evaluate", + "XPathEvaluator.prototype.createExpression", + "XPathEvaluator.prototype.createNSResolver", + "XPathEvaluator.prototype.evaluate", + "XPathExpression.prototype.evaluate", + "XPathResult.prototype.iterateNext", + "XPathResult.prototype.snapshotItem" + ] +} diff --git a/data/standards/DOM4.json b/data/standards/DOM4.json index 6ddf514..cdeaad1 100644 --- a/data/standards/DOM4.json +++ b/data/standards/DOM4.json @@ -1 +1,13 @@ -{"info": {"name": "W3C DOM4", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/dom/"}, "features": ["MutationObserver.prototype.disconnect", "MutationObserver.prototype.observe", "MutationObserver.prototype.takeRecords"]} \ No newline at end of file +{ + "info": { + "name": "W3C DOM4", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/dom/" + }, + "features": [ + "MutationObserver.prototype.disconnect", + "MutationObserver.prototype.observe", + "MutationObserver.prototype.takeRecords" + ] +} diff --git a/data/standards/DU.json b/data/standards/DU.json index cbe4950..2b1326f 100644 --- a/data/standards/DU.json +++ b/data/standards/DU.json @@ -1 +1,11 @@ -{"info": {"name": "Directory Upload", "subsection_number": null, "subsection_name": null, "url": "https://wicg.github.io/directory-upload/proposal.html"}, "features": ["Directory.prototype.getFilesAndDirectories"]} \ No newline at end of file +{ + "info": { + "name": "Directory Upload", + "subsection_number": null, + "subsection_name": null, + "url": "https://wicg.github.io/directory-upload/proposal.html" + }, + "features": [ + "Directory.prototype.getFilesAndDirectories" + ] +} diff --git a/data/standards/E.json b/data/standards/E.json index 6407817..6e6f1c9 100644 --- a/data/standards/E.json +++ b/data/standards/E.json @@ -1 +1,12 @@ -{"info": {"name": "Encoding", "subsection_number": null, "subsection_name": null, "url": "https://encoding.spec.whatwg.org/"}, "features": ["TextDecoder.prototype.decode", "TextEncoder.prototype.encode"]} \ No newline at end of file +{ + "info": { + "name": "Encoding", + "subsection_number": null, + "subsection_name": null, + "url": "https://encoding.spec.whatwg.org/" + }, + "features": [ + "TextDecoder.prototype.decode", + "TextEncoder.prototype.encode" + ] +} diff --git a/data/standards/EC.json b/data/standards/EC.json index 8258802..c4c0677 100644 --- a/data/standards/EC.json +++ b/data/standards/EC.json @@ -1 +1,22 @@ -{"info": {"name": "execCommand", "subsection_number": null, "subsection_name": null, "url": "https://w3c.github.io/editing/execCommand.html"}, "features": ["document.execCommand", "document.queryCommandEnabled", "document.queryCommandIndeterm", "document.queryCommandState", "document.queryCommandSupported", "document.queryCommandValue", "HTMLDocument.prototype.execCommand", "HTMLDocument.prototype.queryCommandEnabled", "HTMLDocument.prototype.queryCommandIndeterm", "HTMLDocument.prototype.queryCommandState", "HTMLDocument.prototype.queryCommandSupported", "HTMLDocument.prototype.queryCommandValue"]} \ No newline at end of file +{ + "info": { + "name": "execCommand", + "subsection_number": null, + "subsection_name": null, + "url": "https://w3c.github.io/editing/execCommand.html" + }, + "features": [ + "document.execCommand", + "document.queryCommandEnabled", + "document.queryCommandIndeterm", + "document.queryCommandState", + "document.queryCommandSupported", + "document.queryCommandValue", + "HTMLDocument.prototype.execCommand", + "HTMLDocument.prototype.queryCommandEnabled", + "HTMLDocument.prototype.queryCommandIndeterm", + "HTMLDocument.prototype.queryCommandState", + "HTMLDocument.prototype.queryCommandSupported", + "HTMLDocument.prototype.queryCommandValue" + ] +} diff --git a/data/standards/EME.json b/data/standards/EME.json index 529221b..a3fb560 100644 --- a/data/standards/EME.json +++ b/data/standards/EME.json @@ -1 +1,23 @@ -{"info": {"name": "Encrypted Media Extensions", "subsection_number": null, "subsection_name": null, "url": "https://w3c.github.io/encrypted-media/"}, "features": ["MediaKeys.prototype.createSession", "MediaKeys.prototype.setServerCertificate", "MediaKeySession.prototype.close", "MediaKeySession.prototype.generateRequest", "MediaKeySession.prototype.load", "MediaKeySession.prototype.remove", "MediaKeySession.prototype.update", "MediaKeyStatusMap.prototype.entries", "MediaKeyStatusMap.prototype.keys", "MediaKeyStatusMap.prototype.values", "MediaKeySystemAccess.prototype.createMediaKeys", "MediaKeySystemAccess.prototype.getConfiguration", "Navigator.prototype.requestMediaKeySystemAccess"]} \ No newline at end of file +{ + "info": { + "name": "Encrypted Media Extensions", + "subsection_number": null, + "subsection_name": null, + "url": "https://w3c.github.io/encrypted-media/" + }, + "features": [ + "MediaKeys.prototype.createSession", + "MediaKeys.prototype.setServerCertificate", + "MediaKeySession.prototype.close", + "MediaKeySession.prototype.generateRequest", + "MediaKeySession.prototype.load", + "MediaKeySession.prototype.remove", + "MediaKeySession.prototype.update", + "MediaKeyStatusMap.prototype.entries", + "MediaKeyStatusMap.prototype.keys", + "MediaKeyStatusMap.prototype.values", + "MediaKeySystemAccess.prototype.createMediaKeys", + "MediaKeySystemAccess.prototype.getConfiguration", + "Navigator.prototype.requestMediaKeySystemAccess" + ] +} diff --git a/data/standards/F.json b/data/standards/F.json index 0275f26..4a5e668 100644 --- a/data/standards/F.json +++ b/data/standards/F.json @@ -1 +1,31 @@ -{"info": {"name": "Fetch", "subsection_number": null, "subsection_name": null, "url": "https://fetch.spec.whatwg.org/"}, "features": ["Headers.prototype.append", "Headers.prototype.delete", "Headers.prototype.get", "Headers.prototype.getAll", "Headers.prototype.has", "Headers.prototype.set", "Request.prototype.arrayBuffer", "Request.prototype.blob", "Request.prototype.clone", "Request.prototype.formData", "Request.prototype.json", "Request.prototype.text", "Response.error", "Response.prototype.arrayBuffer", "Response.prototype.blob", "Response.prototype.clone", "Response.prototype.formData", "Response.prototype.json", "Response.prototype.text", "Response.redirect", "window.fetch"]} \ No newline at end of file +{ + "info": { + "name": "Fetch", + "subsection_number": null, + "subsection_name": null, + "url": "https://fetch.spec.whatwg.org/" + }, + "features": [ + "Headers.prototype.append", + "Headers.prototype.delete", + "Headers.prototype.get", + "Headers.prototype.getAll", + "Headers.prototype.has", + "Headers.prototype.set", + "Request.prototype.arrayBuffer", + "Request.prototype.blob", + "Request.prototype.clone", + "Request.prototype.formData", + "Request.prototype.json", + "Request.prototype.text", + "Response.error", + "Response.prototype.arrayBuffer", + "Response.prototype.blob", + "Response.prototype.clone", + "Response.prototype.formData", + "Response.prototype.json", + "Response.prototype.text", + "Response.redirect", + "window.fetch" + ] +} diff --git a/data/standards/FA.json b/data/standards/FA.json index 22773fe..4fc11ef 100644 --- a/data/standards/FA.json +++ b/data/standards/FA.json @@ -1 +1,19 @@ -{"info": {"name": "File API", "subsection_number": null, "subsection_name": null, "url": "https://w3c.github.io/FileAPI/"}, "features": ["Blob.prototype.slice", "FileList.prototype.item", "FileReader.prototype.abort", "FileReader.prototype.readAsArrayBuffer", "FileReader.prototype.readAsBinaryString", "FileReader.prototype.readAsDataURL", "FileReader.prototype.readAsText", "URL.createObjectURL", "URL.revokeObjectURL"]} \ No newline at end of file +{ + "info": { + "name": "File API", + "subsection_number": null, + "subsection_name": null, + "url": "https://w3c.github.io/FileAPI/" + }, + "features": [ + "Blob.prototype.slice", + "FileList.prototype.item", + "FileReader.prototype.abort", + "FileReader.prototype.readAsArrayBuffer", + "FileReader.prototype.readAsBinaryString", + "FileReader.prototype.readAsDataURL", + "FileReader.prototype.readAsText", + "URL.createObjectURL", + "URL.revokeObjectURL" + ] +} diff --git a/data/standards/FULL.json b/data/standards/FULL.json index 53f313f..a98db8f 100644 --- a/data/standards/FULL.json +++ b/data/standards/FULL.json @@ -1 +1,19 @@ -{"info": {"name": "Fullscreen API", "subsection_number": null, "subsection_name": null, "url": "https://fullscreen.spec.whatwg.org/"}, "features": ["document.mozFullScreen", "document.mozFullScreenElement", "document.mozFullScreenEnabled", "document.onmozfullscreenchange", "document.onmozfullscreenerror", "Document.prototype.mozCancelFullScreen", "Element.prototype.mozRequestFullScreen", "window.onmozfullscreenchange", "window.onmozfullscreenerror"]} \ No newline at end of file +{ + "info": { + "name": "Fullscreen API", + "subsection_number": null, + "subsection_name": null, + "url": "https://fullscreen.spec.whatwg.org/" + }, + "features": [ + "document.mozFullScreen", + "document.mozFullScreenElement", + "document.mozFullScreenEnabled", + "document.onmozfullscreenchange", + "document.onmozfullscreenerror", + "Document.prototype.mozCancelFullScreen", + "Element.prototype.mozRequestFullScreen", + "window.onmozfullscreenchange", + "window.onmozfullscreenerror" + ] +} diff --git a/data/standards/GEO.json b/data/standards/GEO.json index c9b691a..0196629 100644 --- a/data/standards/GEO.json +++ b/data/standards/GEO.json @@ -1 +1,14 @@ -{"info": {"name": "Geolocation API Specification", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/geolocation-API/"}, "features": ["navigator.geolocation", "navigator.geolocation.getCurrentPosition", "navigator.geolocation.watchPosition", "navigator.geolocation.clearWatch"]} \ No newline at end of file +{ + "info": { + "name": "Geolocation API", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/geolocation-API/" + }, + "features": [ + "navigator.geolocation", + "navigator.geolocation.getCurrentPosition", + "navigator.geolocation.watchPosition", + "navigator.geolocation.clearWatch" + ] +} diff --git a/data/standards/GIM.json b/data/standards/GIM.json index a8459d0..f8e1966 100644 --- a/data/standards/GIM.json +++ b/data/standards/GIM.json @@ -1 +1,40 @@ -{"info": {"name": "Geometry Interfaces Module Level 1", "subsection_number": null, "subsection_name": null, "url": "https://drafts.fxtf.org/geometry/"}, "features": ["DOMMatrix.prototype.invertSelf", "DOMMatrix.prototype.multiplySelf", "DOMMatrix.prototype.preMultiplySelf", "DOMMatrix.prototype.rotateAxisAngleSelf", "DOMMatrix.prototype.rotateFromVectorSelf", "DOMMatrix.prototype.rotateSelf", "DOMMatrix.prototype.scale3dSelf", "DOMMatrix.prototype.scaleNonUniformSelf", "DOMMatrix.prototype.scaleSelf", "DOMMatrix.prototype.setMatrixValue", "DOMMatrix.prototype.skewXSelf", "DOMMatrix.prototype.skewYSelf", "DOMMatrix.prototype.translateSelf", "DOMMatrixReadOnly.prototype.flipX", "DOMMatrixReadOnly.prototype.flipY", "DOMMatrixReadOnly.prototype.inverse", "DOMMatrixReadOnly.prototype.multiply", "DOMMatrixReadOnly.prototype.rotate", "DOMMatrixReadOnly.prototype.rotateAxisAngle", "DOMMatrixReadOnly.prototype.rotateFromVector", "DOMMatrixReadOnly.prototype.scale", "DOMMatrixReadOnly.prototype.scale3d", "DOMMatrixReadOnly.prototype.scaleNonUniform", "DOMMatrixReadOnly.prototype.skewX", "DOMMatrixReadOnly.prototype.skewY", "DOMMatrixReadOnly.prototype.toFloat32Array", "DOMMatrixReadOnly.prototype.toFloat64Array", "DOMMatrixReadOnly.prototype.transformPoint", "DOMMatrixReadOnly.prototype.translate", "DOMRectList.prototype.item"]} \ No newline at end of file +{ + "info": { + "name": "Geometry Interfaces Module Level 1", + "subsection_number": null, + "subsection_name": null, + "url": "https://drafts.fxtf.org/geometry/" + }, + "features": [ + "DOMMatrix.prototype.invertSelf", + "DOMMatrix.prototype.multiplySelf", + "DOMMatrix.prototype.preMultiplySelf", + "DOMMatrix.prototype.rotateAxisAngleSelf", + "DOMMatrix.prototype.rotateFromVectorSelf", + "DOMMatrix.prototype.rotateSelf", + "DOMMatrix.prototype.scale3dSelf", + "DOMMatrix.prototype.scaleNonUniformSelf", + "DOMMatrix.prototype.scaleSelf", + "DOMMatrix.prototype.setMatrixValue", + "DOMMatrix.prototype.skewXSelf", + "DOMMatrix.prototype.skewYSelf", + "DOMMatrix.prototype.translateSelf", + "DOMMatrixReadOnly.prototype.flipX", + "DOMMatrixReadOnly.prototype.flipY", + "DOMMatrixReadOnly.prototype.inverse", + "DOMMatrixReadOnly.prototype.multiply", + "DOMMatrixReadOnly.prototype.rotate", + "DOMMatrixReadOnly.prototype.rotateAxisAngle", + "DOMMatrixReadOnly.prototype.rotateFromVector", + "DOMMatrixReadOnly.prototype.scale", + "DOMMatrixReadOnly.prototype.scale3d", + "DOMMatrixReadOnly.prototype.scaleNonUniform", + "DOMMatrixReadOnly.prototype.skewX", + "DOMMatrixReadOnly.prototype.skewY", + "DOMMatrixReadOnly.prototype.toFloat32Array", + "DOMMatrixReadOnly.prototype.toFloat64Array", + "DOMMatrixReadOnly.prototype.transformPoint", + "DOMMatrixReadOnly.prototype.translate", + "DOMRectList.prototype.item" + ] +} diff --git a/data/standards/GP.json b/data/standards/GP.json index 3ff07c6..869e5a5 100644 --- a/data/standards/GP.json +++ b/data/standards/GP.json @@ -1 +1,11 @@ -{"info": {"name": "Gamepad", "subsection_number": null, "subsection_name": null, "url": "https://w3c.github.io/gamepad/"}, "features": ["Navigator.prototype.getGamepads"]} \ No newline at end of file +{ + "info": { + "name": "Gamepad", + "subsection_number": null, + "subsection_name": null, + "url": "https://w3c.github.io/gamepad/" + }, + "features": [ + "Navigator.prototype.getGamepads" + ] +} diff --git a/data/standards/H-B.json b/data/standards/H-B.json index a9edd6c..4106797 100644 --- a/data/standards/H-B.json +++ b/data/standards/H-B.json @@ -1 +1,12 @@ -{"info": {"name": "HTML", "subsection_number": "9.6", "subsection_name": "Broadcasting to other browsing contexts", "url": "https://html.spec.whatwg.org/multipage/comms.html#dom-broadcastchannel-postmessage"}, "features": ["BroadcastChannel.prototype.close", "BroadcastChannel.prototype.postMessage"]} \ No newline at end of file +{ + "info": { + "name": "HTML", + "subsection_number": "9.6", + "subsection_name": "Broadcasting", + "url": "https://html.spec.whatwg.org/multipage/comms.html#dom-broadcastchannel-postmessage" + }, + "features": [ + "BroadcastChannel.prototype.close", + "BroadcastChannel.prototype.postMessage" + ] +} diff --git a/data/standards/H-C.json b/data/standards/H-C.json index 81a29af..ed9af2a 100644 --- a/data/standards/H-C.json +++ b/data/standards/H-C.json @@ -1 +1,64 @@ -{"info": {"name": "HTML", "subsection_number": "4.12.4", "subsection_name": "The canvas element", "url": "https://html.spec.whatwg.org/multipage/scripting.html#the-canvas-element"}, "features": ["CanvasGradient.prototype.addColorStop", "CanvasPattern.prototype.setTransform", "CanvasRenderingContext2D.prototype.arc", "CanvasRenderingContext2D.prototype.arcTo", "CanvasRenderingContext2D.prototype.beginPath", "CanvasRenderingContext2D.prototype.bezierCurveTo", "CanvasRenderingContext2D.prototype.clearRect", "CanvasRenderingContext2D.prototype.clip", "CanvasRenderingContext2D.prototype.closePath", "CanvasRenderingContext2D.prototype.createImageData", "CanvasRenderingContext2D.prototype.createLinearGradient", "CanvasRenderingContext2D.prototype.createPattern", "CanvasRenderingContext2D.prototype.createRadialGradient", "CanvasRenderingContext2D.prototype.drawFocusIfNeeded", "CanvasRenderingContext2D.prototype.drawImage", "CanvasRenderingContext2D.prototype.fill", "CanvasRenderingContext2D.prototype.fillRect", "CanvasRenderingContext2D.prototype.fillText", "CanvasRenderingContext2D.prototype.getImageData", "CanvasRenderingContext2D.prototype.getLineDash", "CanvasRenderingContext2D.prototype.isPointInPath", "CanvasRenderingContext2D.prototype.isPointInStroke", "CanvasRenderingContext2D.prototype.lineTo", "CanvasRenderingContext2D.prototype.measureText", "CanvasRenderingContext2D.prototype.moveTo", "CanvasRenderingContext2D.prototype.putImageData", "CanvasRenderingContext2D.prototype.quadraticCurveTo", "CanvasRenderingContext2D.prototype.rect", "CanvasRenderingContext2D.prototype.resetTransform", "CanvasRenderingContext2D.prototype.restore", "CanvasRenderingContext2D.prototype.rotate", "CanvasRenderingContext2D.prototype.save", "CanvasRenderingContext2D.prototype.scale", "CanvasRenderingContext2D.prototype.setLineDash", "CanvasRenderingContext2D.prototype.setTransform", "CanvasRenderingContext2D.prototype.stroke", "CanvasRenderingContext2D.prototype.strokeRect", "CanvasRenderingContext2D.prototype.strokeText", "CanvasRenderingContext2D.prototype.transform", "CanvasRenderingContext2D.prototype.translate", "HTMLCanvasElement.prototype.getContext", "HTMLCanvasElement.prototype.mozGetAsFile", "HTMLCanvasElement.prototype.toBlob", "HTMLCanvasElement.prototype.toDataURL", "Path2D.prototype.addPath", "Path2D.prototype.arc", "Path2D.prototype.arcTo", "Path2D.prototype.bezierCurveTo", "Path2D.prototype.closePath", "Path2D.prototype.lineTo", "Path2D.prototype.moveTo", "Path2D.prototype.quadraticCurveTo", "Path2D.prototype.rect", "window.requestAnimationFrame"]} \ No newline at end of file +{ + "info": { + "name": "HTML", + "subsection_number": "4.12.4", + "subsection_name": "The canvas element", + "url": "https://html.spec.whatwg.org/multipage/scripting.html#the-canvas-element" + }, + "features": [ + "CanvasGradient.prototype.addColorStop", + "CanvasPattern.prototype.setTransform", + "CanvasRenderingContext2D.prototype.arc", + "CanvasRenderingContext2D.prototype.arcTo", + "CanvasRenderingContext2D.prototype.beginPath", + "CanvasRenderingContext2D.prototype.bezierCurveTo", + "CanvasRenderingContext2D.prototype.clearRect", + "CanvasRenderingContext2D.prototype.clip", + "CanvasRenderingContext2D.prototype.closePath", + "CanvasRenderingContext2D.prototype.createImageData", + "CanvasRenderingContext2D.prototype.createLinearGradient", + "CanvasRenderingContext2D.prototype.createPattern", + "CanvasRenderingContext2D.prototype.createRadialGradient", + "CanvasRenderingContext2D.prototype.drawFocusIfNeeded", + "CanvasRenderingContext2D.prototype.drawImage", + "CanvasRenderingContext2D.prototype.fill", + "CanvasRenderingContext2D.prototype.fillRect", + "CanvasRenderingContext2D.prototype.fillText", + "CanvasRenderingContext2D.prototype.getImageData", + "CanvasRenderingContext2D.prototype.getLineDash", + "CanvasRenderingContext2D.prototype.isPointInPath", + "CanvasRenderingContext2D.prototype.isPointInStroke", + "CanvasRenderingContext2D.prototype.lineTo", + "CanvasRenderingContext2D.prototype.measureText", + "CanvasRenderingContext2D.prototype.moveTo", + "CanvasRenderingContext2D.prototype.putImageData", + "CanvasRenderingContext2D.prototype.quadraticCurveTo", + "CanvasRenderingContext2D.prototype.rect", + "CanvasRenderingContext2D.prototype.resetTransform", + "CanvasRenderingContext2D.prototype.restore", + "CanvasRenderingContext2D.prototype.rotate", + "CanvasRenderingContext2D.prototype.save", + "CanvasRenderingContext2D.prototype.scale", + "CanvasRenderingContext2D.prototype.setLineDash", + "CanvasRenderingContext2D.prototype.setTransform", + "CanvasRenderingContext2D.prototype.stroke", + "CanvasRenderingContext2D.prototype.strokeRect", + "CanvasRenderingContext2D.prototype.strokeText", + "CanvasRenderingContext2D.prototype.transform", + "CanvasRenderingContext2D.prototype.translate", + "HTMLCanvasElement.prototype.getContext", + "HTMLCanvasElement.prototype.mozGetAsFile", + "HTMLCanvasElement.prototype.toBlob", + "HTMLCanvasElement.prototype.toDataURL", + "Path2D.prototype.addPath", + "Path2D.prototype.arc", + "Path2D.prototype.arcTo", + "Path2D.prototype.bezierCurveTo", + "Path2D.prototype.closePath", + "Path2D.prototype.lineTo", + "Path2D.prototype.moveTo", + "Path2D.prototype.quadraticCurveTo", + "Path2D.prototype.rect", + "window.requestAnimationFrame" + ] +} diff --git a/data/standards/H-CM.json b/data/standards/H-CM.json index 08739cb..e5735e5 100644 --- a/data/standards/H-CM.json +++ b/data/standards/H-CM.json @@ -1 +1,14 @@ -{"info": {"name": "HTML", "subsection_number": "9.5", "subsection_name": "Channel Messaging", "url": "https://html.spec.whatwg.org/multipage/comms.html#channel-messaging"}, "features": ["MessagePort.prototype.close", "MessagePort.prototype.postMessage", "MessagePort.prototype.start", "window.postMessage"]} \ No newline at end of file +{ + "info": { + "name": "HTML", + "subsection_number": "9.5", + "subsection_name": "Channel Messaging", + "url": "https://html.spec.whatwg.org/multipage/comms.html#channel-messaging" + }, + "features": [ + "MessagePort.prototype.close", + "MessagePort.prototype.postMessage", + "MessagePort.prototype.start", + "window.postMessage" + ] +} diff --git a/data/standards/H-HI.json b/data/standards/H-HI.json index d956249..30be4da 100644 --- a/data/standards/H-HI.json +++ b/data/standards/H-HI.json @@ -1 +1,16 @@ -{"info": {"name": "HTML", "subsection_number": "7.5.2", "subsection_name": "History Interface", "url": "https://html.spec.whatwg.org/multipage/browsers.html#the-history-interface"}, "features": ["History.prototype.back", "History.prototype.forward", "History.prototype.go", "History.prototype.pushState", "History.prototype.replaceState", "window.history"]} \ No newline at end of file +{ + "info": { + "name": "HTML", + "subsection_number": "7.5.2", + "subsection_name": "History Interface", + "url": "https://html.spec.whatwg.org/multipage/browsers.html#the-history-interface" + }, + "features": [ + "History.prototype.back", + "History.prototype.forward", + "History.prototype.go", + "History.prototype.pushState", + "History.prototype.replaceState", + "window.history" + ] +} diff --git a/data/standards/H-P.json b/data/standards/H-P.json index cb64296..d37fb84 100644 --- a/data/standards/H-P.json +++ b/data/standards/H-P.json @@ -1 +1,20 @@ -{"info": {"name": "HTML", "subsection_number": "8.6.1.5", "subsection_name": "Plugins", "url": "https://html.spec.whatwg.org/multipage/webappapis.html#plugins-2"}, "features": ["document.plugins", "MimeTypeArray.prototype.item", "MimeTypeArray.prototype.namedItem", "navigator.mimeTypes", "navigator.plugins", "Plugin.prototype.item", "Plugin.prototype.namedItem", "PluginArray.prototype.item", "PluginArray.prototype.namedItem", "PluginArray.prototype.refresh"]} \ No newline at end of file +{ + "info": { + "name": "HTML", + "subsection_number": "8.6.1.5", + "subsection_name": "Plugins", + "url": "https://html.spec.whatwg.org/multipage/webappapis.html#plugins-2" + }, + "features": [ + "document.plugins", + "MimeTypeArray.prototype.item", + "MimeTypeArray.prototype.namedItem", + "navigator.mimeTypes", + "navigator.plugins", + "Plugin.prototype.item", + "Plugin.prototype.namedItem", + "PluginArray.prototype.item", + "PluginArray.prototype.namedItem", + "PluginArray.prototype.refresh" + ] +} diff --git a/data/standards/H-WB.json b/data/standards/H-WB.json index 6b31db1..9b3891d 100644 --- a/data/standards/H-WB.json +++ b/data/standards/H-WB.json @@ -1 +1,18 @@ -{"info": {"name": "HTML", "subsection_number": "11", "subsection_name": "Web Storage", "url": "https://html.spec.whatwg.org/multipage/webstorage.html"}, "features": ["Storage.prototype.clear", "Storage.prototype.getItem", "Storage.prototype.key", "Storage.prototype.removeItem", "Storage.prototype.setItem", "StorageEvent.prototype.initStorageEvent", "window.localStorage", "window.sessionStorage"]} \ No newline at end of file +{ + "info": { + "name": "HTML", + "subsection_number": "11", + "subsection_name": "Web Storage", + "url": "https://html.spec.whatwg.org/multipage/webstorage.html" + }, + "features": [ + "Storage.prototype.clear", + "Storage.prototype.getItem", + "Storage.prototype.key", + "Storage.prototype.removeItem", + "Storage.prototype.setItem", + "StorageEvent.prototype.initStorageEvent", + "window.localStorage", + "window.sessionStorage" + ] +} diff --git a/data/standards/H-WS.json b/data/standards/H-WS.json index 0b5c49e..0575410 100644 --- a/data/standards/H-WS.json +++ b/data/standards/H-WS.json @@ -1 +1,12 @@ -{"info": {"name": "HTML", "subsection_number": "9.3", "subsection_name": "Web Sockets", "url": "https://html.spec.whatwg.org/multipage/comms.html#network"}, "features": ["WebSocket.prototype.close", "WebSocket.prototype.send"]} \ No newline at end of file +{ + "info": { + "name": "HTML", + "subsection_number": "9.3", + "subsection_name": "Web Sockets", + "url": "https://html.spec.whatwg.org/multipage/comms.html#network" + }, + "features": [ + "WebSocket.prototype.close", + "WebSocket.prototype.send" + ] +} diff --git a/data/standards/H-WW.json b/data/standards/H-WW.json index 6ba188d..fe0db92 100644 --- a/data/standards/H-WW.json +++ b/data/standards/H-WW.json @@ -1 +1,12 @@ -{"info": {"name": "HTML", "subsection_number": "10", "subsection_name": "Web Workers", "url": "https://html.spec.whatwg.org/multipage/workers.html"}, "features": ["Worker.prototype.postMessage", "Worker.prototype.terminate"]} \ No newline at end of file +{ + "info": { + "name": "HTML", + "subsection_number": "10", + "subsection_name": "Web Workers", + "url": "https://html.spec.whatwg.org/multipage/workers.html" + }, + "features": [ + "Worker.prototype.postMessage", + "Worker.prototype.terminate" + ] +} diff --git a/data/standards/HRT.json b/data/standards/HRT.json index 5b499fa..31761a1 100644 --- a/data/standards/HRT.json +++ b/data/standards/HRT.json @@ -1 +1,11 @@ -{"info": {"name": "High Resolution Time Level 2", "subsection_number": null, "subsection_name": null, "url": "https://w3c.github.io/hr-time/"}, "features": ["Performance.prototype.now"]} \ No newline at end of file +{ + "info": { + "name": "High Resolution Time Level 2", + "subsection_number": null, + "subsection_name": null, + "url": "https://w3c.github.io/hr-time/" + }, + "features": [ + "Performance.prototype.now" + ] +} diff --git a/data/standards/HTML.json b/data/standards/HTML.json index 9356fc0..e6d3cce 100644 --- a/data/standards/HTML.json +++ b/data/standards/HTML.json @@ -1 +1,205 @@ -{"info": {"name": "HTML", "subsection_number": null, "subsection_name": null, "url": "https://html.spec.whatwg.org"}, "features": ["DataTransfer.prototype.addElement", "DataTransfer.prototype.clearData", "DataTransfer.prototype.getData", "DataTransfer.prototype.mozClearDataAt", "DataTransfer.prototype.mozGetDataAt", "DataTransfer.prototype.mozSetDataAt", "DataTransfer.prototype.mozTypesAt", "DataTransfer.prototype.setData", "DataTransfer.prototype.setDragImage", "document.activeElement", "document.body", "document.currentScript", "document.designMode", "document.dir", "document.getItems", "document.head", "document.images", "document.lastModified", "document.lastStyleSheetSet", "document.links", "document.onabort", "document.onblur", "document.oncanplay", "document.oncanplaythrough", "document.onchange", "document.onclick", "document.oncontextmenu", "document.oncopy", "document.oncut", "document.ondblclick", "document.ondrag", "document.ondragend", "document.ondragenter", "document.ondragleave", "document.ondragover", "document.ondragstart", "document.ondrop", "document.ondurationchange", "document.onemptied", "document.onended", "document.onerror", "document.onfocus", "document.oninput", "document.oninvalid", "document.onkeydown", "document.onkeypress", "document.onkeyup", "document.onload", "document.onloadeddata", "document.onloadedmetadata", "document.onloadstart", "document.onmousedown", "document.onmouseenter", "document.onmouseleave", "document.onmousemove", "document.onmouseout", "document.onmouseover", "document.onmouseup", "document.onpaste", "document.onpause", "document.onplay", "document.onplaying", "document.onprogress", "document.onratechange", "document.onreadystatechange", "document.onreset", "document.onresize", "document.onscroll", "document.onseeked", "document.onseeking", "document.onselect", "document.onshow", "document.onstalled", "document.onsubmit", "document.onsuspend", "document.ontimeupdate", "document.onvolumechange", "document.onwaiting", "document.onwheel", "Document.prototype.enableStyleSheetsForSet", "Document.prototype.hasFocus", "document.selectedStyleSheetSet", "document.styleSheetSets", "EventSource.prototype.close", "HashChangeEvent.prototype.initHashChangeEvent", "HTMLAllCollection.prototype.item", "HTMLAllCollection.prototype.namedItem", "HTMLDocument.prototype.clear", "HTMLDocument.prototype.getItems", "navigator.appCodeName", "navigator.appName", "navigator.appVersion", "navigator.cookieEnabled", "navigator.onLine", "navigator.platform", "navigator.product", "navigator.productSub", "Navigator.prototype.registerContentHandler", "Navigator.prototype.registerProtocolHandler", "navigator.userAgent", "navigator.vendor", "navigator.vendorSub", "PropertyNodeList.prototype.getValues", "TimeRanges.prototype.end", "TimeRanges.prototype.start", "window.blur", "window.close", "window.closed", "window.console", "window.createImageBitmap", "window.document", "window.focus", "window.frameElement", "window.frames", "window.length", "window.location", "window.name", "window.navigator", "window.onabort", "window.onafterprint", "window.onbeforeprint", "window.onbeforeunload", "window.onblur", "window.oncanplay", "window.oncanplaythrough", "window.onchange", "window.onclick", "window.oncontextmenu", "window.ondblclick", "window.ondrag", "window.ondragend", "window.ondragenter", "window.ondragleave", "window.ondragover", "window.ondragstart", "window.ondurationchange", "window.onemptied", "window.onended", "window.onerror", "window.onfocus", "window.onhashchange", "window.oninput", "window.oninvalid", "window.onkeydown", "window.onkeypress", "window.onkeyup", "window.onlanguagechange", "window.onloadeddata", "window.onloadedmetadata", "window.onloadstart", "window.onmessage", "window.onmousedown", "window.onmouseenter", "window.onmouseleave", "window.onmousemove", "window.onmouseout", "window.onmouseover", "window.onmouseup", "window.onoffline", "window.ononline", "window.onpagehide", "window.onpageshow", "window.onpause", "window.onplay", "window.onplaying", "window.onpopstate", "window.onprogress", "window.onratechange", "window.onreset", "window.onresize", "window.onscroll", "window.onseeked", "window.onseeking", "window.onselect", "window.onshow", "window.onstalled", "window.onsubmit", "window.onsuspend", "window.ontimeupdate", "window.onunload", "window.onvolumechange", "window.onwaiting", "window.onwheel", "window.open", "window.opener", "window.parent", "window.self", "window.setInterval", "window.setResizable", "window.setTimeout", "window.showModalDialog", "window.stop", "window.top", "window.window", "XMLDocument.prototype.load"]} \ No newline at end of file +{ + "info": { + "name": "HTML", + "subsection_number": null, + "subsection_name": null, + "url": "https://html.spec.whatwg.org" + }, + "features": [ + "DataTransfer.prototype.addElement", + "DataTransfer.prototype.clearData", + "DataTransfer.prototype.getData", + "DataTransfer.prototype.mozClearDataAt", + "DataTransfer.prototype.mozGetDataAt", + "DataTransfer.prototype.mozSetDataAt", + "DataTransfer.prototype.mozTypesAt", + "DataTransfer.prototype.setData", + "DataTransfer.prototype.setDragImage", + "document.activeElement", + "document.body", + "document.currentScript", + "document.designMode", + "document.dir", + "document.getItems", + "document.head", + "document.images", + "document.lastModified", + "document.lastStyleSheetSet", + "document.links", + "document.onabort", + "document.onblur", + "document.oncanplay", + "document.oncanplaythrough", + "document.onchange", + "document.onclick", + "document.oncontextmenu", + "document.oncopy", + "document.oncut", + "document.ondblclick", + "document.ondrag", + "document.ondragend", + "document.ondragenter", + "document.ondragleave", + "document.ondragover", + "document.ondragstart", + "document.ondrop", + "document.ondurationchange", + "document.onemptied", + "document.onended", + "document.onerror", + "document.onfocus", + "document.oninput", + "document.oninvalid", + "document.onkeydown", + "document.onkeypress", + "document.onkeyup", + "document.onload", + "document.onloadeddata", + "document.onloadedmetadata", + "document.onloadstart", + "document.onmousedown", + "document.onmouseenter", + "document.onmouseleave", + "document.onmousemove", + "document.onmouseout", + "document.onmouseover", + "document.onmouseup", + "document.onpaste", + "document.onpause", + "document.onplay", + "document.onplaying", + "document.onprogress", + "document.onratechange", + "document.onreadystatechange", + "document.onreset", + "document.onresize", + "document.onscroll", + "document.onseeked", + "document.onseeking", + "document.onselect", + "document.onshow", + "document.onstalled", + "document.onsubmit", + "document.onsuspend", + "document.ontimeupdate", + "document.onvolumechange", + "document.onwaiting", + "document.onwheel", + "Document.prototype.enableStyleSheetsForSet", + "Document.prototype.hasFocus", + "document.selectedStyleSheetSet", + "document.styleSheetSets", + "EventSource.prototype.close", + "HashChangeEvent.prototype.initHashChangeEvent", + "HTMLAllCollection.prototype.item", + "HTMLAllCollection.prototype.namedItem", + "HTMLDocument.prototype.clear", + "HTMLDocument.prototype.getItems", + "navigator.appCodeName", + "navigator.appName", + "navigator.appVersion", + "navigator.cookieEnabled", + "navigator.onLine", + "navigator.platform", + "navigator.product", + "navigator.productSub", + "Navigator.prototype.registerContentHandler", + "Navigator.prototype.registerProtocolHandler", + "navigator.userAgent", + "navigator.vendor", + "navigator.vendorSub", + "PropertyNodeList.prototype.getValues", + "TimeRanges.prototype.end", + "TimeRanges.prototype.start", + "window.blur", + "window.close", + "window.closed", + "window.console", + "window.createImageBitmap", + "window.document", + "window.focus", + "window.frameElement", + "window.frames", + "window.length", + "window.location", + "window.name", + "window.navigator", + "window.onabort", + "window.onafterprint", + "window.onbeforeprint", + "window.onbeforeunload", + "window.onblur", + "window.oncanplay", + "window.oncanplaythrough", + "window.onchange", + "window.onclick", + "window.oncontextmenu", + "window.ondblclick", + "window.ondrag", + "window.ondragend", + "window.ondragenter", + "window.ondragleave", + "window.ondragover", + "window.ondragstart", + "window.ondurationchange", + "window.onemptied", + "window.onended", + "window.onerror", + "window.onfocus", + "window.onhashchange", + "window.oninput", + "window.oninvalid", + "window.onkeydown", + "window.onkeypress", + "window.onkeyup", + "window.onlanguagechange", + "window.onloadeddata", + "window.onloadedmetadata", + "window.onloadstart", + "window.onmessage", + "window.onmousedown", + "window.onmouseenter", + "window.onmouseleave", + "window.onmousemove", + "window.onmouseout", + "window.onmouseover", + "window.onmouseup", + "window.onoffline", + "window.ononline", + "window.onpagehide", + "window.onpageshow", + "window.onpause", + "window.onplay", + "window.onplaying", + "window.onpopstate", + "window.onprogress", + "window.onratechange", + "window.onreset", + "window.onresize", + "window.onscroll", + "window.onseeked", + "window.onseeking", + "window.onselect", + "window.onshow", + "window.onstalled", + "window.onsubmit", + "window.onsuspend", + "window.ontimeupdate", + "window.onunload", + "window.onvolumechange", + "window.onwaiting", + "window.onwheel", + "window.open", + "window.opener", + "window.parent", + "window.self", + "window.setInterval", + "window.setResizable", + "window.setTimeout", + "window.showModalDialog", + "window.stop", + "window.top", + "window.window", + "XMLDocument.prototype.load" + ] +} diff --git a/data/standards/HTML5.json b/data/standards/HTML5.json index 54896d6..7078148 100644 --- a/data/standards/HTML5.json +++ b/data/standards/HTML5.json @@ -1 +1,79 @@ -{"info": {"name": "HTML 5", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/html5/"}, "features": ["document.defaultView", "document.location", "document.onafterscriptexecute", "document.onbeforescriptexecute", "document.preferredStyleSheetSet", "document.readyState", "HTMLButtonElement.prototype.checkValidity", "HTMLButtonElement.prototype.setCustomValidity", "HTMLFieldSetElement.prototype.checkValidity", "HTMLFieldSetElement.prototype.setCustomValidity", "HTMLFormControlsCollection.prototype.item", "HTMLFormElement.prototype.checkValidity", "HTMLInputElement.prototype.checkValidity", "HTMLInputElement.prototype.setCustomValidity", "HTMLInputElement.prototype.setRangeText", "HTMLInputElement.prototype.setSelectionRange", "HTMLInputElement.prototype.stepDown", "HTMLInputElement.prototype.stepUp", "HTMLMediaElement.prototype.addTextTrack", "HTMLMediaElement.prototype.canPlayType", "HTMLMediaElement.prototype.fastSeek", "HTMLMediaElement.prototype.load", "HTMLMediaElement.prototype.mozCaptureStream", "HTMLMediaElement.prototype.mozCaptureStreamUntilEnded", "HTMLMediaElement.prototype.mozGetMetadata", "HTMLMediaElement.prototype.pause", "HTMLMediaElement.prototype.play", "HTMLMediaElement.prototype.setMediaKeys", "HTMLObjectElement.prototype.checkValidity", "HTMLObjectElement.prototype.setCustomValidity", "HTMLOptionsCollection.prototype.add", "HTMLOptionsCollection.prototype.remove", "HTMLOutputElement.prototype.checkValidity", "HTMLOutputElement.prototype.setCustomValidity", "HTMLSelectElement.prototype.checkValidity", "HTMLSelectElement.prototype.setCustomValidity", "HTMLTextAreaElement.prototype.checkValidity", "HTMLTextAreaElement.prototype.setCustomValidity", "HTMLTextAreaElement.prototype.setRangeText", "HTMLTextAreaElement.prototype.setSelectionRange", "location.assign", "location.reload", "location.replace", "OfflineResourceList.prototype.mozAdd", "OfflineResourceList.prototype.mozHasItem", "OfflineResourceList.prototype.mozItem", "OfflineResourceList.prototype.mozRemove", "OfflineResourceList.prototype.swapCache", "OfflineResourceList.prototype.update", "TextTrack.prototype.addCue", "TextTrack.prototype.removeCue", "TextTrackCueList.prototype.getCueById", "TextTrackList.prototype.getTrackById", "TimeEvent.prototype.initTimeEvent", "window.alert", "window.applicationCache", "window.atob", "window.btoa", "window.confirm", "window.locationbar", "window.menubar", "window.personalbar", "window.print", "window.prompt", "window.scrollbars", "window.status", "window.statusbar", "window.toolbar", "location.href"]} \ No newline at end of file +{ + "info": { + "name": "HTML 5", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/html5/" + }, + "features": [ + "document.defaultView", + "document.location", + "document.onafterscriptexecute", + "document.onbeforescriptexecute", + "document.preferredStyleSheetSet", + "document.readyState", + "HTMLButtonElement.prototype.checkValidity", + "HTMLButtonElement.prototype.setCustomValidity", + "HTMLFieldSetElement.prototype.checkValidity", + "HTMLFieldSetElement.prototype.setCustomValidity", + "HTMLFormControlsCollection.prototype.item", + "HTMLFormElement.prototype.checkValidity", + "HTMLInputElement.prototype.checkValidity", + "HTMLInputElement.prototype.setCustomValidity", + "HTMLInputElement.prototype.setRangeText", + "HTMLInputElement.prototype.setSelectionRange", + "HTMLInputElement.prototype.stepDown", + "HTMLInputElement.prototype.stepUp", + "HTMLMediaElement.prototype.addTextTrack", + "HTMLMediaElement.prototype.canPlayType", + "HTMLMediaElement.prototype.fastSeek", + "HTMLMediaElement.prototype.load", + "HTMLMediaElement.prototype.mozCaptureStream", + "HTMLMediaElement.prototype.mozCaptureStreamUntilEnded", + "HTMLMediaElement.prototype.mozGetMetadata", + "HTMLMediaElement.prototype.pause", + "HTMLMediaElement.prototype.play", + "HTMLMediaElement.prototype.setMediaKeys", + "HTMLObjectElement.prototype.checkValidity", + "HTMLObjectElement.prototype.setCustomValidity", + "HTMLOptionsCollection.prototype.add", + "HTMLOptionsCollection.prototype.remove", + "HTMLOutputElement.prototype.checkValidity", + "HTMLOutputElement.prototype.setCustomValidity", + "HTMLSelectElement.prototype.checkValidity", + "HTMLSelectElement.prototype.setCustomValidity", + "HTMLTextAreaElement.prototype.checkValidity", + "HTMLTextAreaElement.prototype.setCustomValidity", + "HTMLTextAreaElement.prototype.setRangeText", + "HTMLTextAreaElement.prototype.setSelectionRange", + "location.assign", + "location.reload", + "location.replace", + "OfflineResourceList.prototype.mozAdd", + "OfflineResourceList.prototype.mozHasItem", + "OfflineResourceList.prototype.mozItem", + "OfflineResourceList.prototype.mozRemove", + "OfflineResourceList.prototype.swapCache", + "OfflineResourceList.prototype.update", + "TextTrack.prototype.addCue", + "TextTrack.prototype.removeCue", + "TextTrackCueList.prototype.getCueById", + "TextTrackList.prototype.getTrackById", + "TimeEvent.prototype.initTimeEvent", + "window.alert", + "window.applicationCache", + "window.atob", + "window.btoa", + "window.confirm", + "window.locationbar", + "window.menubar", + "window.personalbar", + "window.print", + "window.prompt", + "window.scrollbars", + "window.status", + "window.statusbar", + "window.toolbar", + "location.href" + ] +} diff --git a/data/standards/HTML51.json b/data/standards/HTML51.json index ffbb86c..4e764aa 100644 --- a/data/standards/HTML51.json +++ b/data/standards/HTML51.json @@ -1 +1,16 @@ -{"info": {"name": "HTML 5.1", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/html51/"}, "features": ["DragEvent.prototype.initDragEvent", "External.prototype.addSearchEngine", "External.prototype.AddSearchProvider", "External.prototype.IsSearchProviderInstalled", "navigator.language", "navigator.languages"]} \ No newline at end of file +{ + "info": { + "name": "HTML 5.1", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/html51/" + }, + "features": [ + "DragEvent.prototype.initDragEvent", + "External.prototype.addSearchEngine", + "External.prototype.AddSearchProvider", + "External.prototype.IsSearchProviderInstalled", + "navigator.language", + "navigator.languages" + ] +} diff --git a/data/standards/IDB.json b/data/standards/IDB.json index 2864aa3..4eb7b2b 100644 --- a/data/standards/IDB.json +++ b/data/standards/IDB.json @@ -1 +1,58 @@ -{"info": {"name": "Indexed Database API", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/IndexedDB/"}, "features": ["IDBCursor.prototype.advance", "IDBCursor.prototype.continue", "IDBCursor.prototype.delete", "IDBCursor.prototype.update", "IDBDatabase.prototype.close", "IDBDatabase.prototype.createMutableFile", "IDBDatabase.prototype.createObjectStore", "IDBDatabase.prototype.deleteObjectStore", "IDBDatabase.prototype.mozCreateFileHandle", "IDBDatabase.prototype.transaction", "IDBFactory.prototype.cmp", "IDBFactory.prototype.deleteDatabase", "IDBFactory.prototype.open", "IDBFileHandle.prototype.abort", "IDBFileHandle.prototype.append", "IDBFileHandle.prototype.flush", "IDBFileHandle.prototype.getMetadata", "IDBFileHandle.prototype.readAsArrayBuffer", "IDBFileHandle.prototype.readAsText", "IDBFileHandle.prototype.truncate", "IDBFileHandle.prototype.write", "IDBIndex.prototype.count", "IDBIndex.prototype.get", "IDBIndex.prototype.getKey", "IDBIndex.prototype.mozGetAll", "IDBIndex.prototype.mozGetAllKeys", "IDBIndex.prototype.openCursor", "IDBIndex.prototype.openKeyCursor", "IDBKeyRange.bound", "IDBKeyRange.lowerBound", "IDBKeyRange.only", "IDBKeyRange.upperBound", "IDBMutableFile.prototype.getFile", "IDBMutableFile.prototype.open", "IDBObjectStore.prototype.add", "IDBObjectStore.prototype.clear", "IDBObjectStore.prototype.count", "IDBObjectStore.prototype.createIndex", "IDBObjectStore.prototype.delete", "IDBObjectStore.prototype.deleteIndex", "IDBObjectStore.prototype.get", "IDBObjectStore.prototype.index", "IDBObjectStore.prototype.mozGetAll", "IDBObjectStore.prototype.openCursor", "IDBObjectStore.prototype.put", "IDBTransaction.prototype.abort", "IDBTransaction.prototype.objectStore", "window.indexedDB"]} \ No newline at end of file +{ + "info": { + "name": "Indexed Database API", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/IndexedDB/" + }, + "features": [ + "IDBCursor.prototype.advance", + "IDBCursor.prototype.continue", + "IDBCursor.prototype.delete", + "IDBCursor.prototype.update", + "IDBDatabase.prototype.close", + "IDBDatabase.prototype.createMutableFile", + "IDBDatabase.prototype.createObjectStore", + "IDBDatabase.prototype.deleteObjectStore", + "IDBDatabase.prototype.mozCreateFileHandle", + "IDBDatabase.prototype.transaction", + "IDBFactory.prototype.cmp", + "IDBFactory.prototype.deleteDatabase", + "IDBFactory.prototype.open", + "IDBFileHandle.prototype.abort", + "IDBFileHandle.prototype.append", + "IDBFileHandle.prototype.flush", + "IDBFileHandle.prototype.getMetadata", + "IDBFileHandle.prototype.readAsArrayBuffer", + "IDBFileHandle.prototype.readAsText", + "IDBFileHandle.prototype.truncate", + "IDBFileHandle.prototype.write", + "IDBIndex.prototype.count", + "IDBIndex.prototype.get", + "IDBIndex.prototype.getKey", + "IDBIndex.prototype.mozGetAll", + "IDBIndex.prototype.mozGetAllKeys", + "IDBIndex.prototype.openCursor", + "IDBIndex.prototype.openKeyCursor", + "IDBKeyRange.bound", + "IDBKeyRange.lowerBound", + "IDBKeyRange.only", + "IDBKeyRange.upperBound", + "IDBMutableFile.prototype.getFile", + "IDBMutableFile.prototype.open", + "IDBObjectStore.prototype.add", + "IDBObjectStore.prototype.clear", + "IDBObjectStore.prototype.count", + "IDBObjectStore.prototype.createIndex", + "IDBObjectStore.prototype.delete", + "IDBObjectStore.prototype.deleteIndex", + "IDBObjectStore.prototype.get", + "IDBObjectStore.prototype.index", + "IDBObjectStore.prototype.mozGetAll", + "IDBObjectStore.prototype.openCursor", + "IDBObjectStore.prototype.put", + "IDBTransaction.prototype.abort", + "IDBTransaction.prototype.objectStore", + "window.indexedDB" + ] +} diff --git a/data/standards/MCD.json b/data/standards/MCD.json index 708556a..877bbfb 100644 --- a/data/standards/MCD.json +++ b/data/standards/MCD.json @@ -1 +1,12 @@ -{"info": {"name": "Media Capture from DOM Elements", "subsection_number": null, "subsection_name": null, "url": "https://w3c.github.io/mediacapture-fromelement/"}, "features": ["CanvasCaptureMediaStream.prototype.requestFrame", "HTMLCanvasElement.prototype.captureStream"]} \ No newline at end of file +{ + "info": { + "name": "Media Capture from DOM Elements", + "subsection_number": null, + "subsection_name": null, + "url": "https://w3c.github.io/mediacapture-fromelement/" + }, + "features": [ + "CanvasCaptureMediaStream.prototype.requestFrame", + "HTMLCanvasElement.prototype.captureStream" + ] +} diff --git a/data/standards/MCS.json b/data/standards/MCS.json index 8ced269..c8bbd6e 100644 --- a/data/standards/MCS.json +++ b/data/standards/MCS.json @@ -1 +1,14 @@ -{"info": {"name": "Media Capture and Streams", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/mediacapture-streams/"}, "features": ["LocalMediaStream.prototype.stop", "MediaDevices.prototype.enumerateDevices", "MediaDevices.prototype.getUserMedia", "navigator.mediaDevices"]} \ No newline at end of file +{ + "info": { + "name": "Media Capture and Streams", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/mediacapture-streams/" + }, + "features": [ + "LocalMediaStream.prototype.stop", + "MediaDevices.prototype.enumerateDevices", + "MediaDevices.prototype.getUserMedia", + "navigator.mediaDevices" + ] +} diff --git a/data/standards/MSE.json b/data/standards/MSE.json index 8f9157c..a83f3c0 100644 --- a/data/standards/MSE.json +++ b/data/standards/MSE.json @@ -1 +1,18 @@ -{"info": {"name": "Media Source Extensions", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/media-source/"}, "features": ["HTMLVideoElement.prototype.getVideoPlaybackQuality", "MediaSource.isTypeSupported", "MediaSource.prototype.addSourceBuffer", "MediaSource.prototype.endOfStream", "MediaSource.prototype.removeSourceBuffer", "SourceBuffer.prototype.abort", "SourceBuffer.prototype.appendBuffer", "SourceBuffer.prototype.remove"]} \ No newline at end of file +{ + "info": { + "name": "Media Source Extensions", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/media-source/" + }, + "features": [ + "HTMLVideoElement.prototype.getVideoPlaybackQuality", + "MediaSource.isTypeSupported", + "MediaSource.prototype.addSourceBuffer", + "MediaSource.prototype.endOfStream", + "MediaSource.prototype.removeSourceBuffer", + "SourceBuffer.prototype.abort", + "SourceBuffer.prototype.appendBuffer", + "SourceBuffer.prototype.remove" + ] +} diff --git a/data/standards/MSR.json b/data/standards/MSR.json index 4ce273b..700c4fa 100644 --- a/data/standards/MSR.json +++ b/data/standards/MSR.json @@ -1 +1,20 @@ -{"info": {"name": "MediaStream Recording", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/mediastream-recording/"}, "features": ["MediaRecorder.prototype.pause", "MediaRecorder.prototype.requestData", "MediaRecorder.prototype.resume", "MediaRecorder.prototype.start", "MediaRecorder.prototype.stop", "MediaStream.prototype.getAudioTracks", "MediaStream.prototype.getTracks", "MediaStream.prototype.getVideoTracks", "MediaStreamTrack.prototype.applyConstraints", "MediaStreamTrack.prototype.stop"]} \ No newline at end of file +{ + "info": { + "name": "MediaStream Recording", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/mediastream-recording/" + }, + "features": [ + "MediaRecorder.prototype.pause", + "MediaRecorder.prototype.requestData", + "MediaRecorder.prototype.resume", + "MediaRecorder.prototype.start", + "MediaRecorder.prototype.stop", + "MediaStream.prototype.getAudioTracks", + "MediaStream.prototype.getTracks", + "MediaStream.prototype.getVideoTracks", + "MediaStreamTrack.prototype.applyConstraints", + "MediaStreamTrack.prototype.stop" + ] +} diff --git a/data/standards/NS.json b/data/standards/NS.json index 02a9d23..aec2413 100644 --- a/data/standards/NS.json +++ b/data/standards/NS.json @@ -1 +1,75 @@ -{"info": {"name": "Non-Standard", "subsection_number": null, "subsection_name": null, "url": null}, "features": ["AnonymousContent.prototype.getAttributeForElement", "AnonymousContent.prototype.getTextContentForElement", "AnonymousContent.prototype.removeAttributeForElement", "AnonymousContent.prototype.setAttributeForElement", "AnonymousContent.prototype.setTextContentForElement", "CommandEvent.prototype.initCommandEvent", "document.embeds", "Document.prototype.mozSetImageElement", "Document.prototype.releaseCapture", "DOMCursor.prototype.continue", "DOMRequest.prototype.then", "Element.prototype.releaseCapture", "Element.prototype.setCapture", "Event.prototype.getPreventDefault", "HTMLDocument.prototype.captureEvents", "HTMLDocument.prototype.releaseEvents", "HTMLInputElement.prototype.mozIsTextField", "HTMLPropertiesCollection.prototype.item", "HTMLPropertiesCollection.prototype.namedItem", "window.captureEvents", "MouseEvent.prototype.initNSMouseEvent", "MouseScrollEvent.prototype.initMouseScrollEvent", "mozContact.prototype.init", "MozPowerManager.prototype.addWakeLockListener", "MozPowerManager.prototype.factoryReset", "MozPowerManager.prototype.getWakeLockState", "MozPowerManager.prototype.powerOff", "MozPowerManager.prototype.reboot", "MozPowerManager.prototype.removeWakeLockListener", "navigator.buildID", "navigator.oscpu", "Navigator.prototype.javaEnabled", "PaintRequestList.prototype.item", "screen.availLeft", "screen.availTop", "screen.top", "ScrollAreaEvent.prototype.initScrollAreaEvent", "SimpleGestureEvent.prototype.initSimpleGestureEvent", "window.content", "window.controllers", "window.dump", "window.external", "window.find", "window.fullScreen", "window.getDefaultComputedStyle", "window.mozInnerScreenX", "window.mozInnerScreenY", "window.mozPaintCount", "window.ondrop", "window.releaseEvents", "window.scrollByLines", "window.scrollByPages", "window.scrollMaxX", "window.scrollMaxY", "window.sidebar", "window.sizeToContent", "window.updateCommands", "XSLTProcessor.prototype.clearParameters", "XSLTProcessor.prototype.getParameter", "XSLTProcessor.prototype.importStylesheet", "XSLTProcessor.prototype.removeParameter", "XSLTProcessor.prototype.reset", "XSLTProcessor.prototype.setParameter", "XSLTProcessor.prototype.transformToDocument", "XSLTProcessor.prototype.transformToFragment"]} \ No newline at end of file +{ + "info": { + "name": "Non-Standard", + "subsection_number": null, + "subsection_name": null, + "url": null + }, + "features": [ + "AnonymousContent.prototype.getAttributeForElement", + "AnonymousContent.prototype.getTextContentForElement", + "AnonymousContent.prototype.removeAttributeForElement", + "AnonymousContent.prototype.setAttributeForElement", + "AnonymousContent.prototype.setTextContentForElement", + "CommandEvent.prototype.initCommandEvent", + "document.embeds", + "Document.prototype.mozSetImageElement", + "Document.prototype.releaseCapture", + "DOMCursor.prototype.continue", + "DOMRequest.prototype.then", + "Element.prototype.releaseCapture", + "Element.prototype.setCapture", + "Event.prototype.getPreventDefault", + "HTMLDocument.prototype.captureEvents", + "HTMLDocument.prototype.releaseEvents", + "HTMLInputElement.prototype.mozIsTextField", + "HTMLPropertiesCollection.prototype.item", + "HTMLPropertiesCollection.prototype.namedItem", + "window.captureEvents", + "MouseEvent.prototype.initNSMouseEvent", + "MouseScrollEvent.prototype.initMouseScrollEvent", + "mozContact.prototype.init", + "MozPowerManager.prototype.addWakeLockListener", + "MozPowerManager.prototype.factoryReset", + "MozPowerManager.prototype.getWakeLockState", + "MozPowerManager.prototype.powerOff", + "MozPowerManager.prototype.reboot", + "MozPowerManager.prototype.removeWakeLockListener", + "navigator.buildID", + "navigator.oscpu", + "Navigator.prototype.javaEnabled", + "PaintRequestList.prototype.item", + "screen.availLeft", + "screen.availTop", + "screen.top", + "ScrollAreaEvent.prototype.initScrollAreaEvent", + "SimpleGestureEvent.prototype.initSimpleGestureEvent", + "window.content", + "window.controllers", + "window.dump", + "window.external", + "window.find", + "window.fullScreen", + "window.getDefaultComputedStyle", + "window.mozInnerScreenX", + "window.mozInnerScreenY", + "window.mozPaintCount", + "window.ondrop", + "window.releaseEvents", + "window.scrollByLines", + "window.scrollByPages", + "window.scrollMaxX", + "window.scrollMaxY", + "window.sidebar", + "window.sizeToContent", + "window.updateCommands", + "XSLTProcessor.prototype.clearParameters", + "XSLTProcessor.prototype.getParameter", + "XSLTProcessor.prototype.importStylesheet", + "XSLTProcessor.prototype.removeParameter", + "XSLTProcessor.prototype.reset", + "XSLTProcessor.prototype.setParameter", + "XSLTProcessor.prototype.transformToDocument", + "XSLTProcessor.prototype.transformToFragment" + ] +} diff --git a/data/standards/NT.json b/data/standards/NT.json index a3e5996..46fe364 100644 --- a/data/standards/NT.json +++ b/data/standards/NT.json @@ -1 +1,35 @@ -{"info": {"name": "Navigation Timing", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/navigation-timing/"}, "features": ["performance.navigation", "performance.navigation.redirectCount", "performance.navigation.type", "performance.timing", "performance.timing.connectEnd", "performance.timing.connectStart", "performance.timing.domainLookupEnd", "performance.timing.domainLookupStart", "performance.timing.domComplete", "performance.timing.domContentLoadedEventEnd", "performance.timing.domContentLoadedEventStart", "performance.timing.domInteractive", "performance.timing.domLoading", "performance.timing.fetchStart", "performance.timing.loadEventEnd", "performance.timing.loadEventStart", "performance.timing.navigationStart", "performance.timing.redirectEnd", "performance.timing.redirectStart", "performance.timing.requestStart", "performance.timing.responseEnd", "performance.timing.responseStart", "performance.timing.unloadEventEnd", "performance.timing.unloadEventStart", "window.performance"]} \ No newline at end of file +{ + "info": { + "name": "Navigation Timing", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/navigation-timing/" + }, + "features": [ + "performance.navigation", + "performance.navigation.redirectCount", + "performance.navigation.type", + "performance.timing", + "performance.timing.connectEnd", + "performance.timing.connectStart", + "performance.timing.domainLookupEnd", + "performance.timing.domainLookupStart", + "performance.timing.domComplete", + "performance.timing.domContentLoadedEventEnd", + "performance.timing.domContentLoadedEventStart", + "performance.timing.domInteractive", + "performance.timing.domLoading", + "performance.timing.fetchStart", + "performance.timing.loadEventEnd", + "performance.timing.loadEventStart", + "performance.timing.navigationStart", + "performance.timing.redirectEnd", + "performance.timing.redirectStart", + "performance.timing.requestStart", + "performance.timing.responseEnd", + "performance.timing.responseStart", + "performance.timing.unloadEventEnd", + "performance.timing.unloadEventStart", + "window.performance" + ] +} diff --git a/data/standards/PE.json b/data/standards/PE.json index df1d482..8145b49 100644 --- a/data/standards/PE.json +++ b/data/standards/PE.json @@ -1 +1,12 @@ -{"info": {"name": "Proximity Events", "subsection_number": null, "subsection_name": null, "url": "https://w3c.github.io/proximity/"}, "features": ["window.ondeviceproximity", "window.onuserproximity"]} \ No newline at end of file +{ + "info": { + "name": "Proximity Events", + "subsection_number": null, + "subsection_name": null, + "url": "https://w3c.github.io/proximity/" + }, + "features": [ + "window.ondeviceproximity", + "window.onuserproximity" + ] +} diff --git a/data/standards/PL.json b/data/standards/PL.json index eda9f38..e9412d7 100644 --- a/data/standards/PL.json +++ b/data/standards/PL.json @@ -1 +1,17 @@ -{"info": {"name": "Pointer Lock", "subsection_number": null, "subsection_name": null, "url": "https://w3c.github.io/pointerlock/"}, "features": ["document.mozPointerLockElement", "document.onmozpointerlockchange", "document.onmozpointerlockerror", "Document.prototype.mozExitPointerLock", "Element.prototype.mozRequestPointerLock", "window.onmozpointerlockchange", "window.onmozpointerlockerror"]} \ No newline at end of file +{ + "info": { + "name": "Pointer Lock", + "subsection_number": null, + "subsection_name": null, + "url": "https://w3c.github.io/pointerlock/" + }, + "features": [ + "document.mozPointerLockElement", + "document.onmozpointerlockchange", + "document.onmozpointerlockerror", + "Document.prototype.mozExitPointerLock", + "Element.prototype.mozRequestPointerLock", + "window.onmozpointerlockchange", + "window.onmozpointerlockerror" + ] +} diff --git a/data/standards/PT.json b/data/standards/PT.json index 385b8fe..898a98a 100644 --- a/data/standards/PT.json +++ b/data/standards/PT.json @@ -1 +1,12 @@ -{"info": {"name": "Performance Timeline", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/performance-timeline"}, "features": ["Performance.prototype.getEntriesByName", "Performance.prototype.getEntriesByType"]} \ No newline at end of file +{ + "info": { + "name": "Performance Timeline", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/performance-timeline" + }, + "features": [ + "Performance.prototype.getEntriesByName", + "Performance.prototype.getEntriesByType" + ] +} diff --git a/data/standards/PT2.json b/data/standards/PT2.json index 233407c..a7cb4e8 100644 --- a/data/standards/PT2.json +++ b/data/standards/PT2.json @@ -1 +1,11 @@ -{"info": {"name": "Performance Timeline Level 2", "subsection_number": null, "subsection_name": null, "url": "https://w3c.github.io/performance-timeline"}, "features": ["Performance.prototype.getEntries"]} \ No newline at end of file +{ + "info": { + "name": "Performance Timeline Level 2", + "subsection_number": null, + "subsection_name": null, + "url": "https://w3c.github.io/performance-timeline" + }, + "features": [ + "Performance.prototype.getEntries" + ] +} diff --git a/data/standards/PV.json b/data/standards/PV.json index 18f22ca..e1ee23a 100644 --- a/data/standards/PV.json +++ b/data/standards/PV.json @@ -1 +1,14 @@ -{"info": {"name": "Page Visibility (Second Edition)", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/page-visibility/"}, "features": ["document.hidden", "document.mozHidden", "document.mozVisibilityState", "document.visibilityState"]} \ No newline at end of file +{ + "info": { + "name": "Page Visibility (Second Edition)", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/page-visibility/" + }, + "features": [ + "document.hidden", + "document.mozHidden", + "document.mozVisibilityState", + "document.visibilityState" + ] +} diff --git a/data/standards/RT.json b/data/standards/RT.json index a574afa..5dd05d7 100644 --- a/data/standards/RT.json +++ b/data/standards/RT.json @@ -1 +1,13 @@ -{"info": {"name": "Resource Timing", "subsection_number": null, "subsection_name": null, "url": "https://w3c.github.io/resource-timing/"}, "features": ["performance.onresourcetimingbufferfull", "Performance.prototype.clearResourceTimings", "Performance.prototype.setResourceTimingBufferSize"]} \ No newline at end of file +{ + "info": { + "name": "Resource Timing", + "subsection_number": null, + "subsection_name": null, + "url": "https://w3c.github.io/resource-timing/" + }, + "features": [ + "performance.onresourcetimingbufferfull", + "Performance.prototype.clearResourceTimings", + "Performance.prototype.setResourceTimingBufferSize" + ] +} diff --git a/data/standards/SD.json b/data/standards/SD.json index 94aad68..d36cae8 100644 --- a/data/standards/SD.json +++ b/data/standards/SD.json @@ -1 +1,11 @@ -{"info": {"name": "Shadow DOM", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/shadow-dom/"}, "features": ["HTMLContentElement.prototype.getDistributedNodes"]} \ No newline at end of file +{ + "info": { + "name": "Shadow DOM", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/shadow-dom/" + }, + "features": [ + "HTMLContentElement.prototype.getDistributedNodes" + ] +} diff --git a/data/standards/SEL.json b/data/standards/SEL.json index 02ea1be..9b5fc13 100644 --- a/data/standards/SEL.json +++ b/data/standards/SEL.json @@ -1 +1,24 @@ -{"info": {"name": "Selection API", "subsection_number": null, "subsection_name": null, "url": "http://w3c.github.io/selection-api/"}, "features": ["HTMLDocument.prototype.getSelection", "Selection.prototype.addRange", "Selection.prototype.collapse", "Selection.prototype.collapseToEnd", "Selection.prototype.collapseToStart", "Selection.prototype.containsNode", "Selection.prototype.deleteFromDocument", "Selection.prototype.extend", "Selection.prototype.getRangeAt", "Selection.prototype.modify", "Selection.prototype.removeAllRanges", "Selection.prototype.removeRange", "Selection.prototype.selectAllChildren", "window.getSelection"]} \ No newline at end of file +{ + "info": { + "name": "Selection API", + "subsection_number": null, + "subsection_name": null, + "url": "http://w3c.github.io/selection-api/" + }, + "features": [ + "HTMLDocument.prototype.getSelection", + "Selection.prototype.addRange", + "Selection.prototype.collapse", + "Selection.prototype.collapseToEnd", + "Selection.prototype.collapseToStart", + "Selection.prototype.containsNode", + "Selection.prototype.deleteFromDocument", + "Selection.prototype.extend", + "Selection.prototype.getRangeAt", + "Selection.prototype.modify", + "Selection.prototype.removeAllRanges", + "Selection.prototype.removeRange", + "Selection.prototype.selectAllChildren", + "window.getSelection" + ] +} diff --git a/data/standards/SLC.json b/data/standards/SLC.json index 100bc8e..f73751f 100644 --- a/data/standards/SLC.json +++ b/data/standards/SLC.json @@ -1 +1,16 @@ -{"info": {"name": "Selectors API Level 1", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/selectors-api"}, "features": ["Document.prototype.querySelector", "Document.prototype.querySelectorAll", "DocumentFragment.prototype.querySelector", "DocumentFragment.prototype.querySelectorAll", "Element.prototype.querySelector", "Element.prototype.querySelectorAll"]} \ No newline at end of file +{ + "info": { + "name": "Selectors API Level 1", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/selectors-api" + }, + "features": [ + "Document.prototype.querySelector", + "Document.prototype.querySelectorAll", + "DocumentFragment.prototype.querySelector", + "DocumentFragment.prototype.querySelectorAll", + "Element.prototype.querySelector", + "Element.prototype.querySelectorAll" + ] +} diff --git a/data/standards/SO.json b/data/standards/SO.json index e790734..bc6823f 100644 --- a/data/standards/SO.json +++ b/data/standards/SO.json @@ -1 +1,19 @@ -{"info": {"name": "The Screen Orientation API", "subsection_number": null, "subsection_name": null, "url": "https://w3c.github.io/screen-orientation/"}, "features": ["screen.mozOrientation", "screen.onmozorientationchange", "screen.orientation", "Screen.prototype.mozLockOrientation", "Screen.prototype.mozUnlockOrientation", "ScreenOrientation.prototype.lock", "ScreenOrientation.prototype.unlock", "window.ondevicemotion", "window.ondeviceorientation"]} \ No newline at end of file +{ + "info": { + "name": "The Screen Orientation API", + "subsection_number": null, + "subsection_name": null, + "url": "https://w3c.github.io/screen-orientation/" + }, + "features": [ + "screen.mozOrientation", + "screen.onmozorientationchange", + "screen.orientation", + "Screen.prototype.mozLockOrientation", + "Screen.prototype.mozUnlockOrientation", + "ScreenOrientation.prototype.lock", + "ScreenOrientation.prototype.unlock", + "window.ondevicemotion", + "window.ondeviceorientation" + ] +} diff --git a/data/standards/SVG.json b/data/standards/SVG.json index 2040415..5000d22 100644 --- a/data/standards/SVG.json +++ b/data/standards/SVG.json @@ -1 +1,148 @@ -{"info": {"name": "Scalable Vector Graphics (SVG) 1.1 (Second Edition)", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/SVG/"}, "features": ["HTMLEmbedElement.prototype.getSVGDocument", "HTMLIFrameElement.prototype.getSVGDocument", "HTMLObjectElement.prototype.getSVGDocument", "SVGAngle.prototype.convertToSpecifiedUnits", "SVGAngle.prototype.newValueSpecifiedUnits", "SVGAnimationElement.prototype.beginElement", "SVGAnimationElement.prototype.beginElementAt", "SVGAnimationElement.prototype.endElement", "SVGAnimationElement.prototype.endElementAt", "SVGAnimationElement.prototype.getCurrentTime", "SVGAnimationElement.prototype.getSimpleDuration", "SVGAnimationElement.prototype.getStartTime", "SVGAnimationElement.prototype.hasExtension", "SVGFEDropShadowElement.prototype.setStdDeviation", "SVGFEGaussianBlurElement.prototype.setStdDeviation", "SVGFilterElement.apply", "SVGGraphicsElement.prototype.getBBox", "SVGGraphicsElement.prototype.getCTM", "SVGGraphicsElement.prototype.getScreenCTM", "SVGGraphicsElement.prototype.getTransformToElement", "SVGGraphicsElement.prototype.hasExtension", "SVGLength.prototype.convertToSpecifiedUnits", "SVGLength.prototype.newValueSpecifiedUnits", "SVGLengthList.prototype.appendItem", "SVGLengthList.prototype.clear", "SVGLengthList.prototype.getItem", "SVGLengthList.prototype.initialize", "SVGLengthList.prototype.insertItemBefore", "SVGLengthList.prototype.removeItem", "SVGLengthList.prototype.replaceItem", "SVGMarkerElement.prototype.setOrientToAngle", "SVGMarkerElement.prototype.setOrientToAuto", "SVGMatrix.prototype.flipX", "SVGMatrix.prototype.flipY", "SVGMatrix.prototype.inverse", "SVGMatrix.prototype.multiply", "SVGMatrix.prototype.rotate", "SVGMatrix.prototype.rotateFromVector", "SVGMatrix.prototype.scale", "SVGMatrix.prototype.scaleNonUniform", "SVGMatrix.prototype.skewX", "SVGMatrix.prototype.skewY", "SVGMatrix.prototype.translate", "SVGNumberList.prototype.appendItem", "SVGNumberList.prototype.clear", "SVGNumberList.prototype.getItem", "SVGNumberList.prototype.initialize", "SVGNumberList.prototype.insertItemBefore", "SVGNumberList.prototype.removeItem", "SVGNumberList.prototype.replaceItem", "SVGPathElement.prototype.createSVGPathSegArcAbs", "SVGPathElement.prototype.createSVGPathSegArcRel", "SVGPathElement.prototype.createSVGPathSegClosePath", "SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs", "SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel", "SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs", "SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel", "SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs", "SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel", "SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs", "SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel", "SVGPathElement.prototype.createSVGPathSegLinetoAbs", "SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs", "SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel", "SVGPathElement.prototype.createSVGPathSegLinetoRel", "SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs", "SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel", "SVGPathElement.prototype.createSVGPathSegMovetoAbs", "SVGPathElement.prototype.createSVGPathSegMovetoRel", "SVGPathElement.prototype.getPathSegAtLength", "SVGPathElement.prototype.getPointAtLength", "SVGPathElement.prototype.getTotalLength", "SVGPathSegList.prototype.appendItem", "SVGPathSegList.prototype.clear", "SVGPathSegList.prototype.getItem", "SVGPathSegList.prototype.initialize", "SVGPathSegList.prototype.insertItemBefore", "SVGPathSegList.prototype.removeItem", "SVGPathSegList.prototype.replaceItem", "SVGPoint.prototype.matrixTransform", "SVGPointList.prototype.appendItem", "SVGPointList.prototype.clear", "SVGPointList.prototype.getItem", "SVGPointList.prototype.initialize", "SVGPointList.prototype.insertItemBefore", "SVGPointList.prototype.removeItem", "SVGPointList.prototype.replaceItem", "SVGStringList.prototype.appendItem", "SVGStringList.prototype.clear", "SVGStringList.prototype.getItem", "SVGStringList.prototype.initialize", "SVGStringList.prototype.insertItemBefore", "SVGStringList.prototype.removeItem", "SVGStringList.prototype.replaceItem", "SVGSVGElement.prototype.animationsPaused", "SVGSVGElement.prototype.createSVGAngle", "SVGSVGElement.prototype.createSVGLength", "SVGSVGElement.prototype.createSVGMatrix", "SVGSVGElement.prototype.createSVGNumber", "SVGSVGElement.prototype.createSVGPoint", "SVGSVGElement.prototype.createSVGRect", "SVGSVGElement.prototype.createSVGTransform", "SVGSVGElement.prototype.createSVGTransformFromMatrix", "SVGSVGElement.prototype.deselectAll", "SVGSVGElement.prototype.forceRedraw", "SVGSVGElement.prototype.getCurrentTime", "SVGSVGElement.prototype.getElementById", "SVGSVGElement.prototype.pauseAnimations", "SVGSVGElement.prototype.setCurrentTime", "SVGSVGElement.prototype.suspendRedraw", "SVGSVGElement.prototype.unpauseAnimations", "SVGSVGElement.prototype.unsuspendRedraw", "SVGSVGElement.prototype.unsuspendRedrawAll", "SVGSymbolElement.prototype.hasExtension", "SVGTextContentElement.prototype.getCharNumAtPosition", "SVGTextContentElement.prototype.getComputedTextLength", "SVGTextContentElement.prototype.getEndPositionOfChar", "SVGTextContentElement.prototype.getExtentOfChar", "SVGTextContentElement.prototype.getNumberOfChars", "SVGTextContentElement.prototype.getRotationOfChar", "SVGTextContentElement.prototype.getStartPositionOfChar", "SVGTextContentElement.prototype.getSubStringLength", "SVGTextContentElement.prototype.selectSubString", "SVGTransform.prototype.setMatrix", "SVGTransform.prototype.setRotate", "SVGTransform.prototype.setScale", "SVGTransform.prototype.setSkewX", "SVGTransform.prototype.setSkewY", "SVGTransform.prototype.setTranslate", "SVGTransformList.prototype.appendItem", "SVGTransformList.prototype.clear", "SVGTransformList.prototype.consolidate", "SVGTransformList.prototype.createSVGTransformFromMatrix", "SVGTransformList.prototype.getItem", "SVGTransformList.prototype.initialize", "SVGTransformList.prototype.insertItemBefore", "SVGTransformList.prototype.removeItem", "SVGTransformList.prototype.replaceItem"]} \ No newline at end of file +{ + "info": { + "name": "Scalable Vector Graphics (SVG) 1.1 (Second Edition)", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/SVG/" + }, + "features": [ + "HTMLEmbedElement.prototype.getSVGDocument", + "HTMLIFrameElement.prototype.getSVGDocument", + "HTMLObjectElement.prototype.getSVGDocument", + "SVGAngle.prototype.convertToSpecifiedUnits", + "SVGAngle.prototype.newValueSpecifiedUnits", + "SVGAnimationElement.prototype.beginElement", + "SVGAnimationElement.prototype.beginElementAt", + "SVGAnimationElement.prototype.endElement", + "SVGAnimationElement.prototype.endElementAt", + "SVGAnimationElement.prototype.getCurrentTime", + "SVGAnimationElement.prototype.getSimpleDuration", + "SVGAnimationElement.prototype.getStartTime", + "SVGAnimationElement.prototype.hasExtension", + "SVGFEDropShadowElement.prototype.setStdDeviation", + "SVGFEGaussianBlurElement.prototype.setStdDeviation", + "SVGFilterElement.apply", + "SVGGraphicsElement.prototype.getBBox", + "SVGGraphicsElement.prototype.getCTM", + "SVGGraphicsElement.prototype.getScreenCTM", + "SVGGraphicsElement.prototype.getTransformToElement", + "SVGGraphicsElement.prototype.hasExtension", + "SVGLength.prototype.convertToSpecifiedUnits", + "SVGLength.prototype.newValueSpecifiedUnits", + "SVGLengthList.prototype.appendItem", + "SVGLengthList.prototype.clear", + "SVGLengthList.prototype.getItem", + "SVGLengthList.prototype.initialize", + "SVGLengthList.prototype.insertItemBefore", + "SVGLengthList.prototype.removeItem", + "SVGLengthList.prototype.replaceItem", + "SVGMarkerElement.prototype.setOrientToAngle", + "SVGMarkerElement.prototype.setOrientToAuto", + "SVGMatrix.prototype.flipX", + "SVGMatrix.prototype.flipY", + "SVGMatrix.prototype.inverse", + "SVGMatrix.prototype.multiply", + "SVGMatrix.prototype.rotate", + "SVGMatrix.prototype.rotateFromVector", + "SVGMatrix.prototype.scale", + "SVGMatrix.prototype.scaleNonUniform", + "SVGMatrix.prototype.skewX", + "SVGMatrix.prototype.skewY", + "SVGMatrix.prototype.translate", + "SVGNumberList.prototype.appendItem", + "SVGNumberList.prototype.clear", + "SVGNumberList.prototype.getItem", + "SVGNumberList.prototype.initialize", + "SVGNumberList.prototype.insertItemBefore", + "SVGNumberList.prototype.removeItem", + "SVGNumberList.prototype.replaceItem", + "SVGPathElement.prototype.createSVGPathSegArcAbs", + "SVGPathElement.prototype.createSVGPathSegArcRel", + "SVGPathElement.prototype.createSVGPathSegClosePath", + "SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs", + "SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel", + "SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs", + "SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel", + "SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs", + "SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel", + "SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs", + "SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel", + "SVGPathElement.prototype.createSVGPathSegLinetoAbs", + "SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs", + "SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel", + "SVGPathElement.prototype.createSVGPathSegLinetoRel", + "SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs", + "SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel", + "SVGPathElement.prototype.createSVGPathSegMovetoAbs", + "SVGPathElement.prototype.createSVGPathSegMovetoRel", + "SVGPathElement.prototype.getPathSegAtLength", + "SVGPathElement.prototype.getPointAtLength", + "SVGPathElement.prototype.getTotalLength", + "SVGPathSegList.prototype.appendItem", + "SVGPathSegList.prototype.clear", + "SVGPathSegList.prototype.getItem", + "SVGPathSegList.prototype.initialize", + "SVGPathSegList.prototype.insertItemBefore", + "SVGPathSegList.prototype.removeItem", + "SVGPathSegList.prototype.replaceItem", + "SVGPoint.prototype.matrixTransform", + "SVGPointList.prototype.appendItem", + "SVGPointList.prototype.clear", + "SVGPointList.prototype.getItem", + "SVGPointList.prototype.initialize", + "SVGPointList.prototype.insertItemBefore", + "SVGPointList.prototype.removeItem", + "SVGPointList.prototype.replaceItem", + "SVGStringList.prototype.appendItem", + "SVGStringList.prototype.clear", + "SVGStringList.prototype.getItem", + "SVGStringList.prototype.initialize", + "SVGStringList.prototype.insertItemBefore", + "SVGStringList.prototype.removeItem", + "SVGStringList.prototype.replaceItem", + "SVGSVGElement.prototype.animationsPaused", + "SVGSVGElement.prototype.createSVGAngle", + "SVGSVGElement.prototype.createSVGLength", + "SVGSVGElement.prototype.createSVGMatrix", + "SVGSVGElement.prototype.createSVGNumber", + "SVGSVGElement.prototype.createSVGPoint", + "SVGSVGElement.prototype.createSVGRect", + "SVGSVGElement.prototype.createSVGTransform", + "SVGSVGElement.prototype.createSVGTransformFromMatrix", + "SVGSVGElement.prototype.deselectAll", + "SVGSVGElement.prototype.forceRedraw", + "SVGSVGElement.prototype.getCurrentTime", + "SVGSVGElement.prototype.getElementById", + "SVGSVGElement.prototype.pauseAnimations", + "SVGSVGElement.prototype.setCurrentTime", + "SVGSVGElement.prototype.suspendRedraw", + "SVGSVGElement.prototype.unpauseAnimations", + "SVGSVGElement.prototype.unsuspendRedraw", + "SVGSVGElement.prototype.unsuspendRedrawAll", + "SVGSymbolElement.prototype.hasExtension", + "SVGTextContentElement.prototype.getCharNumAtPosition", + "SVGTextContentElement.prototype.getComputedTextLength", + "SVGTextContentElement.prototype.getEndPositionOfChar", + "SVGTextContentElement.prototype.getExtentOfChar", + "SVGTextContentElement.prototype.getNumberOfChars", + "SVGTextContentElement.prototype.getRotationOfChar", + "SVGTextContentElement.prototype.getStartPositionOfChar", + "SVGTextContentElement.prototype.getSubStringLength", + "SVGTextContentElement.prototype.selectSubString", + "SVGTransform.prototype.setMatrix", + "SVGTransform.prototype.setRotate", + "SVGTransform.prototype.setScale", + "SVGTransform.prototype.setSkewX", + "SVGTransform.prototype.setSkewY", + "SVGTransform.prototype.setTranslate", + "SVGTransformList.prototype.appendItem", + "SVGTransformList.prototype.clear", + "SVGTransformList.prototype.consolidate", + "SVGTransformList.prototype.createSVGTransformFromMatrix", + "SVGTransformList.prototype.getItem", + "SVGTransformList.prototype.initialize", + "SVGTransformList.prototype.insertItemBefore", + "SVGTransformList.prototype.removeItem", + "SVGTransformList.prototype.replaceItem" + ] +} diff --git a/data/standards/SW.json b/data/standards/SW.json index 39ea72f..db46f02 100644 --- a/data/standards/SW.json +++ b/data/standards/SW.json @@ -1 +1,23 @@ -{"info": {"name": "Service Workers", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/service-workers/"}, "features": ["Cache.prototype.add", "Cache.prototype.addAll", "Cache.prototype.delete", "Cache.prototype.keys", "Cache.prototype.match", "Cache.prototype.matchAll", "Cache.prototype.put", "CacheStorage.prototype.delete", "CacheStorage.prototype.has", "CacheStorage.prototype.keys", "CacheStorage.prototype.match", "CacheStorage.prototype.open", "window.caches"]} \ No newline at end of file +{ + "info": { + "name": "Service Workers", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/service-workers/" + }, + "features": [ + "Cache.prototype.add", + "Cache.prototype.addAll", + "Cache.prototype.delete", + "Cache.prototype.keys", + "Cache.prototype.match", + "Cache.prototype.matchAll", + "Cache.prototype.put", + "CacheStorage.prototype.delete", + "CacheStorage.prototype.has", + "CacheStorage.prototype.keys", + "CacheStorage.prototype.match", + "CacheStorage.prototype.open", + "window.caches" + ] +} diff --git a/data/standards/TC.json b/data/standards/TC.json index d3f5a1d..9e82feb 100644 --- a/data/standards/TC.json +++ b/data/standards/TC.json @@ -1 +1,11 @@ -{"info": {"name": "Timing control for script-based animations", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/animation-timing"}, "features": ["window.cancelAnimationFrame"]} \ No newline at end of file +{ + "info": { + "name": "Timing Control for Script-Based Animations", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/animation-timing" + }, + "features": [ + "window.cancelAnimationFrame" + ] +} diff --git a/data/standards/TPE.json b/data/standards/TPE.json index d000c51..75270fb 100644 --- a/data/standards/TPE.json +++ b/data/standards/TPE.json @@ -1 +1,11 @@ -{"info": {"name": "Tracking Preference Expression (DNT)", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/tracking-dnt/"}, "features": ["navigator.doNotTrack"]} \ No newline at end of file +{ + "info": { + "name": "Tracking Preference Expression (DNT)", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/tracking-dnt/" + }, + "features": [ + "navigator.doNotTrack" + ] +} diff --git a/data/standards/UIE.json b/data/standards/UIE.json index 72c6646..c62ea81 100644 --- a/data/standards/UIE.json +++ b/data/standards/UIE.json @@ -1 +1,18 @@ -{"info": {"name": "UI Events Specification", "subsection_number": null, "subsection_name": null, "url": "https://w3c.github.io/uievents/"}, "features": ["CompositionEvent.prototype.initCompositionEvent", "Event.prototype.stopImmediatePropagation", "KeyboardEvent.prototype.getModifierState", "KeyboardEvent.prototype.initKeyEvent", "MouseEvent.prototype.getModifierState", "MouseEvent.prototype.initMouseEvent", "MutationEvent.prototype.initMutationEvent", "UIEvent.prototype.initUIEvent"]} \ No newline at end of file +{ + "info": { + "name": "UI Events Specification", + "subsection_number": null, + "subsection_name": null, + "url": "https://w3c.github.io/uievents/" + }, + "features": [ + "CompositionEvent.prototype.initCompositionEvent", + "Event.prototype.stopImmediatePropagation", + "KeyboardEvent.prototype.getModifierState", + "KeyboardEvent.prototype.initKeyEvent", + "MouseEvent.prototype.getModifierState", + "MouseEvent.prototype.initMouseEvent", + "MutationEvent.prototype.initMutationEvent", + "UIEvent.prototype.initUIEvent" + ] +} diff --git a/data/standards/URL.json b/data/standards/URL.json index cc04f6a..7797648 100644 --- a/data/standards/URL.json +++ b/data/standards/URL.json @@ -1 +1,16 @@ -{"info": {"name": "URL", "subsection_number": null, "subsection_name": null, "url": "https://url.spec.whatwg.org/"}, "features": ["URLSearchParams.prototype.append", "URLSearchParams.prototype.delete", "URLSearchParams.prototype.get", "URLSearchParams.prototype.getAll", "URLSearchParams.prototype.has", "URLSearchParams.prototype.set"]} \ No newline at end of file +{ + "info": { + "name": "URL", + "subsection_number": null, + "subsection_name": null, + "url": "https://url.spec.whatwg.org/" + }, + "features": [ + "URLSearchParams.prototype.append", + "URLSearchParams.prototype.delete", + "URLSearchParams.prototype.get", + "URLSearchParams.prototype.getAll", + "URLSearchParams.prototype.has", + "URLSearchParams.prototype.set" + ] +} diff --git a/data/standards/UTL.json b/data/standards/UTL.json index fce2de1..c8d764e 100644 --- a/data/standards/UTL.json +++ b/data/standards/UTL.json @@ -1 +1,14 @@ -{"info": {"name": "User Timing Level 2", "subsection_number": null, "subsection_name": null, "url": "https://w3c.github.io/user-timing/"}, "features": ["Performance.prototype.clearMarks", "Performance.prototype.clearMeasures", "Performance.prototype.mark", "Performance.prototype.measure"]} \ No newline at end of file +{ + "info": { + "name": "User Timing Level 2", + "subsection_number": null, + "subsection_name": null, + "url": "https://w3c.github.io/user-timing/" + }, + "features": [ + "Performance.prototype.clearMarks", + "Performance.prototype.clearMeasures", + "Performance.prototype.mark", + "Performance.prototype.measure" + ] +} diff --git a/data/standards/V.json b/data/standards/V.json index b0c90b4..79f19af 100644 --- a/data/standards/V.json +++ b/data/standards/V.json @@ -1 +1,11 @@ -{"info": {"name": "Vibration API", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/vibration/"}, "features": ["Navigator.prototype.vibrate"]} \ No newline at end of file +{ + "info": { + "name": "Vibration API", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/vibration/" + }, + "features": [ + "Navigator.prototype.vibrate" + ] +} diff --git a/data/standards/WCR.json b/data/standards/WCR.json index 7cfcddf..01ceb20 100644 --- a/data/standards/WCR.json +++ b/data/standards/WCR.json @@ -1 +1,24 @@ -{"info": {"name": "Web Cryptography API", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/WebCryptoAPI/"}, "features": ["Crypto.prototype.getRandomValues", "SubtleCrypto.prototype.decrypt", "SubtleCrypto.prototype.deriveBits", "SubtleCrypto.prototype.deriveKey", "SubtleCrypto.prototype.digest", "SubtleCrypto.prototype.encrypt", "SubtleCrypto.prototype.exportKey", "SubtleCrypto.prototype.generateKey", "SubtleCrypto.prototype.importKey", "SubtleCrypto.prototype.sign", "SubtleCrypto.prototype.unwrapKey", "SubtleCrypto.prototype.verify", "SubtleCrypto.prototype.wrapKey", "window.crypto"]} \ No newline at end of file +{ + "info": { + "name": "Web Cryptography API", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/WebCryptoAPI/" + }, + "features": [ + "Crypto.prototype.getRandomValues", + "SubtleCrypto.prototype.decrypt", + "SubtleCrypto.prototype.deriveBits", + "SubtleCrypto.prototype.deriveKey", + "SubtleCrypto.prototype.digest", + "SubtleCrypto.prototype.encrypt", + "SubtleCrypto.prototype.exportKey", + "SubtleCrypto.prototype.generateKey", + "SubtleCrypto.prototype.importKey", + "SubtleCrypto.prototype.sign", + "SubtleCrypto.prototype.unwrapKey", + "SubtleCrypto.prototype.verify", + "SubtleCrypto.prototype.wrapKey", + "window.crypto" + ] +} diff --git a/data/standards/WEBA.json b/data/standards/WEBA.json index a3a4c32..3524926 100644 --- a/data/standards/WEBA.json +++ b/data/standards/WEBA.json @@ -1 +1,62 @@ -{"info": {"name": "Web Audio API", "subsection_number": null, "subsection_name": null, "url": "https://webaudio.github.io/web-audio-api"}, "features": ["AnalyserNode.prototype.getByteFrequencyData", "AnalyserNode.prototype.getByteTimeDomainData", "AnalyserNode.prototype.getFloatFrequencyData", "AnalyserNode.prototype.getFloatTimeDomainData", "AudioBuffer.prototype.copyFromChannel", "AudioBuffer.prototype.copyToChannel", "AudioBuffer.prototype.getChannelData", "AudioBufferSourceNode.prototype.start", "AudioBufferSourceNode.prototype.stop", "AudioContext.prototype.close", "AudioContext.prototype.createAnalyser", "AudioContext.prototype.createBiquadFilter", "AudioContext.prototype.createBuffer", "AudioContext.prototype.createBufferSource", "AudioContext.prototype.createChannelMerger", "AudioContext.prototype.createChannelSplitter", "AudioContext.prototype.createConvolver", "AudioContext.prototype.createDelay", "AudioContext.prototype.createDynamicsCompressor", "AudioContext.prototype.createGain", "AudioContext.prototype.createMediaElementSource", "AudioContext.prototype.createMediaStreamDestination", "AudioContext.prototype.createMediaStreamSource", "AudioContext.prototype.createOscillator", "AudioContext.prototype.createPanner", "AudioContext.prototype.createPeriodicWave", "AudioContext.prototype.createScriptProcessor", "AudioContext.prototype.createStereoPanner", "AudioContext.prototype.createWaveShaper", "AudioContext.prototype.decodeAudioData", "AudioContext.prototype.resume", "AudioContext.prototype.suspend", "AudioListener.prototype.setOrientation", "AudioListener.prototype.setPosition", "AudioListener.prototype.setVelocity", "AudioNode.prototype.connect", "AudioNode.prototype.disconnect", "AudioParam.prototype.cancelScheduledValues", "AudioParam.prototype.exponentialRampToValueAtTime", "AudioParam.prototype.linearRampToValueAtTime", "AudioParam.prototype.setValueAtTime", "AudioParam.prototype.setValueCurveAtTime", "BiquadFilterNode.prototype.getFrequencyResponse", "OfflineAudioContext.prototype.resume", "OfflineAudioContext.prototype.startRendering", "OfflineAudioContext.prototype.suspend", "OscillatorNode.prototype.setPeriodicWave", "OscillatorNode.prototype.start", "OscillatorNode.prototype.stop", "PannerNode.prototype.setOrientation", "PannerNode.prototype.setPosition", "PannerNode.prototype.setVelocity"]} \ No newline at end of file +{ + "info": { + "name": "Web Audio API", + "subsection_number": null, + "subsection_name": null, + "url": "https://webaudio.github.io/web-audio-api" + }, + "features": [ + "AnalyserNode.prototype.getByteFrequencyData", + "AnalyserNode.prototype.getByteTimeDomainData", + "AnalyserNode.prototype.getFloatFrequencyData", + "AnalyserNode.prototype.getFloatTimeDomainData", + "AudioBuffer.prototype.copyFromChannel", + "AudioBuffer.prototype.copyToChannel", + "AudioBuffer.prototype.getChannelData", + "AudioBufferSourceNode.prototype.start", + "AudioBufferSourceNode.prototype.stop", + "AudioContext.prototype.close", + "AudioContext.prototype.createAnalyser", + "AudioContext.prototype.createBiquadFilter", + "AudioContext.prototype.createBuffer", + "AudioContext.prototype.createBufferSource", + "AudioContext.prototype.createChannelMerger", + "AudioContext.prototype.createChannelSplitter", + "AudioContext.prototype.createConvolver", + "AudioContext.prototype.createDelay", + "AudioContext.prototype.createDynamicsCompressor", + "AudioContext.prototype.createGain", + "AudioContext.prototype.createMediaElementSource", + "AudioContext.prototype.createMediaStreamDestination", + "AudioContext.prototype.createMediaStreamSource", + "AudioContext.prototype.createOscillator", + "AudioContext.prototype.createPanner", + "AudioContext.prototype.createPeriodicWave", + "AudioContext.prototype.createScriptProcessor", + "AudioContext.prototype.createStereoPanner", + "AudioContext.prototype.createWaveShaper", + "AudioContext.prototype.decodeAudioData", + "AudioContext.prototype.resume", + "AudioContext.prototype.suspend", + "AudioListener.prototype.setOrientation", + "AudioListener.prototype.setPosition", + "AudioListener.prototype.setVelocity", + "AudioNode.prototype.connect", + "AudioNode.prototype.disconnect", + "AudioParam.prototype.cancelScheduledValues", + "AudioParam.prototype.exponentialRampToValueAtTime", + "AudioParam.prototype.linearRampToValueAtTime", + "AudioParam.prototype.setValueAtTime", + "AudioParam.prototype.setValueCurveAtTime", + "BiquadFilterNode.prototype.getFrequencyResponse", + "OfflineAudioContext.prototype.resume", + "OfflineAudioContext.prototype.startRendering", + "OfflineAudioContext.prototype.suspend", + "OscillatorNode.prototype.setPeriodicWave", + "OscillatorNode.prototype.start", + "OscillatorNode.prototype.stop", + "PannerNode.prototype.setOrientation", + "PannerNode.prototype.setPosition", + "PannerNode.prototype.setVelocity" + ] +} diff --git a/data/standards/WEBGL.json b/data/standards/WEBGL.json index 7e7c9c8..4c48cc9 100644 --- a/data/standards/WEBGL.json +++ b/data/standards/WEBGL.json @@ -1 +1,146 @@ -{"info": {"name": "WebGL Specification", "subsection_number": null, "subsection_name": null, "url": "https://www.khronos.org/registry/webgl/specs/latest/1.0/"}, "features": ["WebGLRenderingContext.prototype.activeTexture", "WebGLRenderingContext.prototype.attachShader", "WebGLRenderingContext.prototype.bindAttribLocation", "WebGLRenderingContext.prototype.bindBuffer", "WebGLRenderingContext.prototype.bindFramebuffer", "WebGLRenderingContext.prototype.bindRenderbuffer", "WebGLRenderingContext.prototype.bindTexture", "WebGLRenderingContext.prototype.blendColor", "WebGLRenderingContext.prototype.blendEquation", "WebGLRenderingContext.prototype.blendEquationSeparate", "WebGLRenderingContext.prototype.blendFunc", "WebGLRenderingContext.prototype.blendFuncSeparate", "WebGLRenderingContext.prototype.bufferData", "WebGLRenderingContext.prototype.bufferSubData", "WebGLRenderingContext.prototype.checkFramebufferStatus", "WebGLRenderingContext.prototype.clear", "WebGLRenderingContext.prototype.clearColor", "WebGLRenderingContext.prototype.clearDepth", "WebGLRenderingContext.prototype.clearStencil", "WebGLRenderingContext.prototype.colorMask", "WebGLRenderingContext.prototype.compileShader", "WebGLRenderingContext.prototype.compressedTexImage2D", "WebGLRenderingContext.prototype.compressedTexSubImage2D", "WebGLRenderingContext.prototype.copyTexImage2D", "WebGLRenderingContext.prototype.copyTexSubImage2D", "WebGLRenderingContext.prototype.createBuffer", "WebGLRenderingContext.prototype.createFramebuffer", "WebGLRenderingContext.prototype.createProgram", "WebGLRenderingContext.prototype.createRenderbuffer", "WebGLRenderingContext.prototype.createShader", "WebGLRenderingContext.prototype.createTexture", "WebGLRenderingContext.prototype.cullFace", "WebGLRenderingContext.prototype.deleteBuffer", "WebGLRenderingContext.prototype.deleteFramebuffer", "WebGLRenderingContext.prototype.deleteProgram", "WebGLRenderingContext.prototype.deleteRenderbuffer", "WebGLRenderingContext.prototype.deleteShader", "WebGLRenderingContext.prototype.deleteTexture", "WebGLRenderingContext.prototype.depthFunc", "WebGLRenderingContext.prototype.depthMask", "WebGLRenderingContext.prototype.depthRange", "WebGLRenderingContext.prototype.detachShader", "WebGLRenderingContext.prototype.disable", "WebGLRenderingContext.prototype.disableVertexAttribArray", "WebGLRenderingContext.prototype.drawArrays", "WebGLRenderingContext.prototype.drawElements", "WebGLRenderingContext.prototype.enable", "WebGLRenderingContext.prototype.enableVertexAttribArray", "WebGLRenderingContext.prototype.finish", "WebGLRenderingContext.prototype.flush", "WebGLRenderingContext.prototype.framebufferRenderbuffer", "WebGLRenderingContext.prototype.framebufferTexture2D", "WebGLRenderingContext.prototype.frontFace", "WebGLRenderingContext.prototype.generateMipmap", "WebGLRenderingContext.prototype.getActiveAttrib", "WebGLRenderingContext.prototype.getActiveUniform", "WebGLRenderingContext.prototype.getAttachedShaders", "WebGLRenderingContext.prototype.getAttribLocation", "WebGLRenderingContext.prototype.getBufferParameter", "WebGLRenderingContext.prototype.getContextAttributes", "WebGLRenderingContext.prototype.getError", "WebGLRenderingContext.prototype.getExtension", "WebGLRenderingContext.prototype.getFramebufferAttachmentParameter", "WebGLRenderingContext.prototype.getParameter", "WebGLRenderingContext.prototype.getProgramInfoLog", "WebGLRenderingContext.prototype.getProgramParameter", "WebGLRenderingContext.prototype.getRenderbufferParameter", "WebGLRenderingContext.prototype.getShaderInfoLog", "WebGLRenderingContext.prototype.getShaderParameter", "WebGLRenderingContext.prototype.getShaderPrecisionFormat", "WebGLRenderingContext.prototype.getShaderSource", "WebGLRenderingContext.prototype.getSupportedExtensions", "WebGLRenderingContext.prototype.getTexParameter", "WebGLRenderingContext.prototype.getUniform", "WebGLRenderingContext.prototype.getUniformLocation", "WebGLRenderingContext.prototype.getVertexAttrib", "WebGLRenderingContext.prototype.getVertexAttribOffset", "WebGLRenderingContext.prototype.hint", "WebGLRenderingContext.prototype.isBuffer", "WebGLRenderingContext.prototype.isContextLost", "WebGLRenderingContext.prototype.isEnabled", "WebGLRenderingContext.prototype.isFramebuffer", "WebGLRenderingContext.prototype.isProgram", "WebGLRenderingContext.prototype.isRenderbuffer", "WebGLRenderingContext.prototype.isShader", "WebGLRenderingContext.prototype.isTexture", "WebGLRenderingContext.prototype.lineWidth", "WebGLRenderingContext.prototype.linkProgram", "WebGLRenderingContext.prototype.pixelStorei", "WebGLRenderingContext.prototype.polygonOffset", "WebGLRenderingContext.prototype.readPixels", "WebGLRenderingContext.prototype.renderbufferStorage", "WebGLRenderingContext.prototype.sampleCoverage", "WebGLRenderingContext.prototype.scissor", "WebGLRenderingContext.prototype.shaderSource", "WebGLRenderingContext.prototype.stencilFunc", "WebGLRenderingContext.prototype.stencilFuncSeparate", "WebGLRenderingContext.prototype.stencilMask", "WebGLRenderingContext.prototype.stencilMaskSeparate", "WebGLRenderingContext.prototype.stencilOp", "WebGLRenderingContext.prototype.stencilOpSeparate", "WebGLRenderingContext.prototype.texImage2D", "WebGLRenderingContext.prototype.texParameterf", "WebGLRenderingContext.prototype.texParameteri", "WebGLRenderingContext.prototype.texSubImage2D", "WebGLRenderingContext.prototype.uniform1f", "WebGLRenderingContext.prototype.uniform1fv", "WebGLRenderingContext.prototype.uniform1i", "WebGLRenderingContext.prototype.uniform1iv", "WebGLRenderingContext.prototype.uniform2f", "WebGLRenderingContext.prototype.uniform2fv", "WebGLRenderingContext.prototype.uniform2i", "WebGLRenderingContext.prototype.uniform2iv", "WebGLRenderingContext.prototype.uniform3f", "WebGLRenderingContext.prototype.uniform3fv", "WebGLRenderingContext.prototype.uniform3i", "WebGLRenderingContext.prototype.uniform3iv", "WebGLRenderingContext.prototype.uniform4f", "WebGLRenderingContext.prototype.uniform4fv", "WebGLRenderingContext.prototype.uniform4i", "WebGLRenderingContext.prototype.uniform4iv", "WebGLRenderingContext.prototype.uniformMatrix2fv", "WebGLRenderingContext.prototype.uniformMatrix3fv", "WebGLRenderingContext.prototype.uniformMatrix4fv", "WebGLRenderingContext.prototype.useProgram", "WebGLRenderingContext.prototype.validateProgram", "WebGLRenderingContext.prototype.vertexAttrib1f", "WebGLRenderingContext.prototype.vertexAttrib1fv", "WebGLRenderingContext.prototype.vertexAttrib2f", "WebGLRenderingContext.prototype.vertexAttrib2fv", "WebGLRenderingContext.prototype.vertexAttrib3f", "WebGLRenderingContext.prototype.vertexAttrib3fv", "WebGLRenderingContext.prototype.vertexAttrib4f", "WebGLRenderingContext.prototype.vertexAttrib4fv", "WebGLRenderingContext.prototype.vertexAttribPointer", "WebGLRenderingContext.prototype.viewport"]} \ No newline at end of file +{ + "info": { + "name": "WebGL Specification", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.khronos.org/registry/webgl/specs/latest/1.0/" + }, + "features": [ + "WebGLRenderingContext.prototype.activeTexture", + "WebGLRenderingContext.prototype.attachShader", + "WebGLRenderingContext.prototype.bindAttribLocation", + "WebGLRenderingContext.prototype.bindBuffer", + "WebGLRenderingContext.prototype.bindFramebuffer", + "WebGLRenderingContext.prototype.bindRenderbuffer", + "WebGLRenderingContext.prototype.bindTexture", + "WebGLRenderingContext.prototype.blendColor", + "WebGLRenderingContext.prototype.blendEquation", + "WebGLRenderingContext.prototype.blendEquationSeparate", + "WebGLRenderingContext.prototype.blendFunc", + "WebGLRenderingContext.prototype.blendFuncSeparate", + "WebGLRenderingContext.prototype.bufferData", + "WebGLRenderingContext.prototype.bufferSubData", + "WebGLRenderingContext.prototype.checkFramebufferStatus", + "WebGLRenderingContext.prototype.clear", + "WebGLRenderingContext.prototype.clearColor", + "WebGLRenderingContext.prototype.clearDepth", + "WebGLRenderingContext.prototype.clearStencil", + "WebGLRenderingContext.prototype.colorMask", + "WebGLRenderingContext.prototype.compileShader", + "WebGLRenderingContext.prototype.compressedTexImage2D", + "WebGLRenderingContext.prototype.compressedTexSubImage2D", + "WebGLRenderingContext.prototype.copyTexImage2D", + "WebGLRenderingContext.prototype.copyTexSubImage2D", + "WebGLRenderingContext.prototype.createBuffer", + "WebGLRenderingContext.prototype.createFramebuffer", + "WebGLRenderingContext.prototype.createProgram", + "WebGLRenderingContext.prototype.createRenderbuffer", + "WebGLRenderingContext.prototype.createShader", + "WebGLRenderingContext.prototype.createTexture", + "WebGLRenderingContext.prototype.cullFace", + "WebGLRenderingContext.prototype.deleteBuffer", + "WebGLRenderingContext.prototype.deleteFramebuffer", + "WebGLRenderingContext.prototype.deleteProgram", + "WebGLRenderingContext.prototype.deleteRenderbuffer", + "WebGLRenderingContext.prototype.deleteShader", + "WebGLRenderingContext.prototype.deleteTexture", + "WebGLRenderingContext.prototype.depthFunc", + "WebGLRenderingContext.prototype.depthMask", + "WebGLRenderingContext.prototype.depthRange", + "WebGLRenderingContext.prototype.detachShader", + "WebGLRenderingContext.prototype.disable", + "WebGLRenderingContext.prototype.disableVertexAttribArray", + "WebGLRenderingContext.prototype.drawArrays", + "WebGLRenderingContext.prototype.drawElements", + "WebGLRenderingContext.prototype.enable", + "WebGLRenderingContext.prototype.enableVertexAttribArray", + "WebGLRenderingContext.prototype.finish", + "WebGLRenderingContext.prototype.flush", + "WebGLRenderingContext.prototype.framebufferRenderbuffer", + "WebGLRenderingContext.prototype.framebufferTexture2D", + "WebGLRenderingContext.prototype.frontFace", + "WebGLRenderingContext.prototype.generateMipmap", + "WebGLRenderingContext.prototype.getActiveAttrib", + "WebGLRenderingContext.prototype.getActiveUniform", + "WebGLRenderingContext.prototype.getAttachedShaders", + "WebGLRenderingContext.prototype.getAttribLocation", + "WebGLRenderingContext.prototype.getBufferParameter", + "WebGLRenderingContext.prototype.getContextAttributes", + "WebGLRenderingContext.prototype.getError", + "WebGLRenderingContext.prototype.getExtension", + "WebGLRenderingContext.prototype.getFramebufferAttachmentParameter", + "WebGLRenderingContext.prototype.getParameter", + "WebGLRenderingContext.prototype.getProgramInfoLog", + "WebGLRenderingContext.prototype.getProgramParameter", + "WebGLRenderingContext.prototype.getRenderbufferParameter", + "WebGLRenderingContext.prototype.getShaderInfoLog", + "WebGLRenderingContext.prototype.getShaderParameter", + "WebGLRenderingContext.prototype.getShaderPrecisionFormat", + "WebGLRenderingContext.prototype.getShaderSource", + "WebGLRenderingContext.prototype.getSupportedExtensions", + "WebGLRenderingContext.prototype.getTexParameter", + "WebGLRenderingContext.prototype.getUniform", + "WebGLRenderingContext.prototype.getUniformLocation", + "WebGLRenderingContext.prototype.getVertexAttrib", + "WebGLRenderingContext.prototype.getVertexAttribOffset", + "WebGLRenderingContext.prototype.hint", + "WebGLRenderingContext.prototype.isBuffer", + "WebGLRenderingContext.prototype.isContextLost", + "WebGLRenderingContext.prototype.isEnabled", + "WebGLRenderingContext.prototype.isFramebuffer", + "WebGLRenderingContext.prototype.isProgram", + "WebGLRenderingContext.prototype.isRenderbuffer", + "WebGLRenderingContext.prototype.isShader", + "WebGLRenderingContext.prototype.isTexture", + "WebGLRenderingContext.prototype.lineWidth", + "WebGLRenderingContext.prototype.linkProgram", + "WebGLRenderingContext.prototype.pixelStorei", + "WebGLRenderingContext.prototype.polygonOffset", + "WebGLRenderingContext.prototype.readPixels", + "WebGLRenderingContext.prototype.renderbufferStorage", + "WebGLRenderingContext.prototype.sampleCoverage", + "WebGLRenderingContext.prototype.scissor", + "WebGLRenderingContext.prototype.shaderSource", + "WebGLRenderingContext.prototype.stencilFunc", + "WebGLRenderingContext.prototype.stencilFuncSeparate", + "WebGLRenderingContext.prototype.stencilMask", + "WebGLRenderingContext.prototype.stencilMaskSeparate", + "WebGLRenderingContext.prototype.stencilOp", + "WebGLRenderingContext.prototype.stencilOpSeparate", + "WebGLRenderingContext.prototype.texImage2D", + "WebGLRenderingContext.prototype.texParameterf", + "WebGLRenderingContext.prototype.texParameteri", + "WebGLRenderingContext.prototype.texSubImage2D", + "WebGLRenderingContext.prototype.uniform1f", + "WebGLRenderingContext.prototype.uniform1fv", + "WebGLRenderingContext.prototype.uniform1i", + "WebGLRenderingContext.prototype.uniform1iv", + "WebGLRenderingContext.prototype.uniform2f", + "WebGLRenderingContext.prototype.uniform2fv", + "WebGLRenderingContext.prototype.uniform2i", + "WebGLRenderingContext.prototype.uniform2iv", + "WebGLRenderingContext.prototype.uniform3f", + "WebGLRenderingContext.prototype.uniform3fv", + "WebGLRenderingContext.prototype.uniform3i", + "WebGLRenderingContext.prototype.uniform3iv", + "WebGLRenderingContext.prototype.uniform4f", + "WebGLRenderingContext.prototype.uniform4fv", + "WebGLRenderingContext.prototype.uniform4i", + "WebGLRenderingContext.prototype.uniform4iv", + "WebGLRenderingContext.prototype.uniformMatrix2fv", + "WebGLRenderingContext.prototype.uniformMatrix3fv", + "WebGLRenderingContext.prototype.uniformMatrix4fv", + "WebGLRenderingContext.prototype.useProgram", + "WebGLRenderingContext.prototype.validateProgram", + "WebGLRenderingContext.prototype.vertexAttrib1f", + "WebGLRenderingContext.prototype.vertexAttrib1fv", + "WebGLRenderingContext.prototype.vertexAttrib2f", + "WebGLRenderingContext.prototype.vertexAttrib2fv", + "WebGLRenderingContext.prototype.vertexAttrib3f", + "WebGLRenderingContext.prototype.vertexAttrib3fv", + "WebGLRenderingContext.prototype.vertexAttrib4f", + "WebGLRenderingContext.prototype.vertexAttrib4fv", + "WebGLRenderingContext.prototype.vertexAttribPointer", + "WebGLRenderingContext.prototype.viewport" + ] +} diff --git a/data/standards/WEBVTT.json b/data/standards/WEBVTT.json index 8928449..067c90f 100644 --- a/data/standards/WEBVTT.json +++ b/data/standards/WEBVTT.json @@ -1 +1,11 @@ -{"info": {"name": "WebVTT: The Web Video Text Tracks Format", "subsection_number": null, "subsection_name": null, "url": "https://w3c.github.io/webvtt/"}, "features": ["VTTCue.prototype.getCueAsHTML"]} \ No newline at end of file +{ + "info": { + "name": "WebVTT: The Web Video Text Tracks Format", + "subsection_number": null, + "subsection_name": null, + "url": "https://w3c.github.io/webvtt/" + }, + "features": [ + "VTTCue.prototype.getCueAsHTML" + ] +} diff --git a/data/standards/WN.json b/data/standards/WN.json index bbfa102..14a9537 100644 --- a/data/standards/WN.json +++ b/data/standards/WN.json @@ -1 +1,15 @@ -{"info": {"name": "Web Notifications", "subsection_number": null, "subsection_name": null, "url": "https://notifications.spec.whatwg.org/"}, "features": ["DesktopNotification.prototype.show", "DesktopNotificationCenter.prototype.createNotification", "Notification.get", "Notification.prototype.close", "Notification.requestPermission"]} \ No newline at end of file +{ + "info": { + "name": "Web Notifications", + "subsection_number": null, + "subsection_name": null, + "url": "https://notifications.spec.whatwg.org/" + }, + "features": [ + "DesktopNotification.prototype.show", + "DesktopNotificationCenter.prototype.createNotification", + "Notification.get", + "Notification.prototype.close", + "Notification.requestPermission" + ] +} diff --git a/data/standards/WRTC.json b/data/standards/WRTC.json index 3e3f137..449d844 100644 --- a/data/standards/WRTC.json +++ b/data/standards/WRTC.json @@ -1 +1,38 @@ -{"info": {"name": "WebRTC 1.0: Real-time Communication Between Browser", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/webrtc/"}, "features": ["DataChannel.prototype.close", "DataChannel.prototype.send", "mozRTCPeerConnection.generateCertificate", "mozRTCPeerConnection.prototype.addIceCandidate", "mozRTCPeerConnection.prototype.addStream", "mozRTCPeerConnection.prototype.addTrack", "mozRTCPeerConnection.prototype.close", "mozRTCPeerConnection.prototype.createAnswer", "mozRTCPeerConnection.prototype.createDataChannel", "mozRTCPeerConnection.prototype.createOffer", "mozRTCPeerConnection.prototype.getConfiguration", "mozRTCPeerConnection.prototype.getIdentityAssertion", "mozRTCPeerConnection.prototype.getLocalStreams", "mozRTCPeerConnection.prototype.getReceivers", "mozRTCPeerConnection.prototype.getRemoteStreams", "mozRTCPeerConnection.prototype.getSenders", "mozRTCPeerConnection.prototype.getStats", "mozRTCPeerConnection.prototype.getStreamById", "mozRTCPeerConnection.prototype.removeStream", "mozRTCPeerConnection.prototype.removeTrack", "mozRTCPeerConnection.prototype.setIdentityProvider", "mozRTCPeerConnection.prototype.setLocalDescription", "mozRTCPeerConnection.prototype.setRemoteDescription", "mozRTCPeerConnection.prototype.updateIce", "RTCRtpSender.prototype.replaceTrack", "RTCStatsReport.prototype.forEach", "RTCStatsReport.prototype.get", "RTCStatsReport.prototype.has"]} \ No newline at end of file +{ + "info": { + "name": "WebRTC 1.0: Real-time Communication Between Browser", + "subsection_number": null, + "subsection_name": null, + "url": "https://www.w3.org/TR/webrtc/" + }, + "features": [ + "DataChannel.prototype.close", + "DataChannel.prototype.send", + "mozRTCPeerConnection.generateCertificate", + "mozRTCPeerConnection.prototype.addIceCandidate", + "mozRTCPeerConnection.prototype.addStream", + "mozRTCPeerConnection.prototype.addTrack", + "mozRTCPeerConnection.prototype.close", + "mozRTCPeerConnection.prototype.createAnswer", + "mozRTCPeerConnection.prototype.createDataChannel", + "mozRTCPeerConnection.prototype.createOffer", + "mozRTCPeerConnection.prototype.getConfiguration", + "mozRTCPeerConnection.prototype.getIdentityAssertion", + "mozRTCPeerConnection.prototype.getLocalStreams", + "mozRTCPeerConnection.prototype.getReceivers", + "mozRTCPeerConnection.prototype.getRemoteStreams", + "mozRTCPeerConnection.prototype.getSenders", + "mozRTCPeerConnection.prototype.getStats", + "mozRTCPeerConnection.prototype.getStreamById", + "mozRTCPeerConnection.prototype.removeStream", + "mozRTCPeerConnection.prototype.removeTrack", + "mozRTCPeerConnection.prototype.setIdentityProvider", + "mozRTCPeerConnection.prototype.setLocalDescription", + "mozRTCPeerConnection.prototype.setRemoteDescription", + "mozRTCPeerConnection.prototype.updateIce", + "RTCRtpSender.prototype.replaceTrack", + "RTCStatsReport.prototype.forEach", + "RTCStatsReport.prototype.get", + "RTCStatsReport.prototype.has" + ] +} diff --git a/gulpfile.js b/gulpfile.js index e05e551..bd5c9a8 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -11,7 +11,7 @@ gulp.task('default', function () { aLine.indexOf(" * ") === 0 ); return lineStartsWithComment; - }; + }; const builtScriptComment = "/** This file is automatically generated. **/\n"; const standardsDefDir = "data/standards"; @@ -26,7 +26,10 @@ gulp.task('default', function () { const fileContents = fs.readFileSync(standardsDefDir + "/" + next, {encoding: "utf8"}); const standardContents = JSON.parse(fileContents); - prev[standardContents.info.name] = standardContents; + const nameParts = [standardContents.info.name, standardContents.info.subsection_name].filter(part => !!part); + const standardIdenitifer = nameParts.join(": ").trim(); + standardContents.info.idenitifer = standardIdenitifer; + prev[standardIdenitifer] = standardContents; return prev; }, {}); @@ -36,13 +39,13 @@ gulp.task('default', function () { const proxyBlockSrc = fs.readFileSync("content_scripts/src/proxyblock.js", "utf8"); const instrumentSrc = fs.readFileSync("content_scripts/src/instrument.js", "utf8"); - + const stripCommentsFromSource = function (source) { const fileLines = source.split("\n"); const linesWithoutComments = fileLines.filter(aLine => !isLineAComment(aLine)); return linesWithoutComments.join("\n"); }; - + const proxyBlockSrcWOComments = stripCommentsFromSource(proxyBlockSrc); const instrumentSrcWOComments = stripCommentsFromSource(instrumentSrc); const instrumentSrcWithProxyInjected = instrumentSrcWOComments.replace( diff --git a/lib/pack.js b/lib/pack.js index 6a17b78..2504eeb 100644 --- a/lib/pack.js +++ b/lib/pack.js @@ -5,6 +5,22 @@ const bucketSize = 8; + const bufferToBase64 = function (buf) { + const binstr = Array.prototype.map.call(buf, function (ch) { + return String.fromCharCode(ch); + }).join(''); + return btoa(binstr); + }; + + const base64ToBuffer = function (base64) { + const binstr = atob(base64); + const buf = new Uint8Array(binstr.length); + Array.prototype.forEach.call(binstr, function (ch, i) { + buf[i] = ch.charCodeAt(0); + }); + return buf; + }; + const binOptionsReduceFunction = function (binSize, prev, next) { if (prev.length === 0) { @@ -46,8 +62,8 @@ bitFields[i] = bitfield; } - const decoder = new TextDecoder('utf8'); - return window.btoa(decoder.decode(bitFields)); + const encodedString = bufferToBase64(bitFields); + return encodedString; }; const unpack = function (options, data) { @@ -57,9 +73,7 @@ options.sort(); const binnedOptions = options.reduce(binToBucketSizeFunc, []); - - const encoder = new TextEncoder('utf8'); - const bitFields = encoder.encode(window.atob(data)); + const bitFields = base64ToBuffer(data); const result = []; diff --git a/manifest.json b/manifest.json index 507f670..14a39d3 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "WebAPI Manager", - "version": "0.3", + "version": "0.4", "description": "Improves browser security by restricting page access to parts of the Web API.", "permissions": [ "http://*/*", "https://*/*",