add ability to use aggressive and conservative default blocking sets

This commit is contained in:
Peter Snyder 2017-10-13 23:23:49 -05:00
parent 5af5911cf1
commit 8126e1a105
81 changed files with 2231 additions and 97 deletions

View file

@ -40,16 +40,12 @@
return prev;
};
const requestFilter = {
urls: ["<all_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);
}());

View file

@ -13,13 +13,13 @@
<body>
<header>
</header>
<section class="container-fluid">
<section class="container">
<div class="row">
<div class="col-xs-4 col-md-4 well">
<domain-rules :domain-names="domainNames" :selected-domain="selectedDomain"></domain-rules>
</div>
<div class="col-xs-8 col-md-8">
<div class="col-xs-7 col-md-7 col-md-offset-1 col-xs-offset-1">
<web-api-standards :standards="standards" :selected-standards="selectedStandards"></web-api-standards>
</div>
</div>

View file

@ -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: `
<div class="web-api-standards-container">
<div class="form-horizontal">
<div class="form-group">
<button @click="onConservativeClicked">
Use Conservative Settings
</button>
<button @click="onAggressiveClicked">
Use Aggressive Settings
</button>
</div>
</div>
<div class="checkbox" v-for="standard in standards">
<label>
<input type="checkbox"
:value="standard.info.name"
:value="standard.info.idenitifer"
v-model="selectedStandards"
@change="onStandardChecked">
{{ standard.info.name }}
{{ standard.info.idenitifer }}
<a href="{{ standard.info.url }}" v-if="standard.info.url">[info]</a>
</label>
</div>
@ -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);
}
}
});

View file

@ -3,8 +3,54 @@
* overwritten, either by the extension user, or by a subscribed policy
* list.
*/
window.WEB_API_MANAGER.defaults = {
"conservative": [
"MediaStream Recording"
]
};
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"
]);

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"info": {
"name": "Ambient Light Sensor API",
"subsection_number": null,
"subsection_name": null,
"url": "https://w3c.github.io/ambient-light/"
},
"features": [
"window.ondevicelight"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -1 +1,11 @@
{"info": {"name": "Beacon", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/beacon/"}, "features": ["Navigator.prototype.sendBeacon"]}
{
"info": {
"name": "Beacon",
"subsection_number": null,
"subsection_name": null,
"url": "https://www.w3.org/TR/beacon/"
},
"features": [
"Navigator.prototype.sendBeacon"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"info": {
"name": "Directory Upload",
"subsection_number": null,
"subsection_name": null,
"url": "https://wicg.github.io/directory-upload/proposal.html"
},
"features": [
"Directory.prototype.getFilesAndDirectories"
]
}

View file

@ -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"]}
{
"info": {
"name": "Encoding",
"subsection_number": null,
"subsection_name": null,
"url": "https://encoding.spec.whatwg.org/"
},
"features": [
"TextDecoder.prototype.decode",
"TextEncoder.prototype.encode"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -1 +1,11 @@
{"info": {"name": "Gamepad", "subsection_number": null, "subsection_name": null, "url": "https://w3c.github.io/gamepad/"}, "features": ["Navigator.prototype.getGamepads"]}
{
"info": {
"name": "Gamepad",
"subsection_number": null,
"subsection_name": null,
"url": "https://w3c.github.io/gamepad/"
},
"features": [
"Navigator.prototype.getGamepads"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"info": {
"name": "High Resolution Time Level 2",
"subsection_number": null,
"subsection_name": null,
"url": "https://w3c.github.io/hr-time/"
},
"features": [
"Performance.prototype.now"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -1 +1,12 @@
{"info": {"name": "Proximity Events", "subsection_number": null, "subsection_name": null, "url": "https://w3c.github.io/proximity/"}, "features": ["window.ondeviceproximity", "window.onuserproximity"]}
{
"info": {
"name": "Proximity Events",
"subsection_number": null,
"subsection_name": null,
"url": "https://w3c.github.io/proximity/"
},
"features": [
"window.ondeviceproximity",
"window.onuserproximity"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"info": {
"name": "Performance Timeline Level 2",
"subsection_number": null,
"subsection_name": null,
"url": "https://w3c.github.io/performance-timeline"
},
"features": [
"Performance.prototype.getEntries"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"info": {
"name": "Shadow DOM",
"subsection_number": null,
"subsection_name": null,
"url": "https://www.w3.org/TR/shadow-dom/"
},
"features": [
"HTMLContentElement.prototype.getDistributedNodes"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

File diff suppressed because one or more lines are too long

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"info": {
"name": "Tracking Preference Expression (DNT)",
"subsection_number": null,
"subsection_name": null,
"url": "https://www.w3.org/TR/tracking-dnt/"
},
"features": [
"navigator.doNotTrack"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -1 +1,11 @@
{"info": {"name": "Vibration API", "subsection_number": null, "subsection_name": null, "url": "https://www.w3.org/TR/vibration/"}, "features": ["Navigator.prototype.vibrate"]}
{
"info": {
"name": "Vibration API",
"subsection_number": null,
"subsection_name": null,
"url": "https://www.w3.org/TR/vibration/"
},
"features": [
"Navigator.prototype.vibrate"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

File diff suppressed because one or more lines are too long

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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"]}
{
"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"
]
}

View file

@ -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(

View file

@ -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 = [];

View file

@ -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://*/*",