Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Unified Diff: third_party/WebKit/LayoutTests/external/wpt/common/vendor-prefix.js

Issue 2657583002: Import wpt@cf62b859e6b890abc34f8140d185ba91df95c5b6 (Closed)
Patch Set: Modify TestExpectations or download new baselines for tests. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/external/wpt/common/vendor-prefix.js
diff --git a/third_party/WebKit/LayoutTests/external/wpt/common/vendor-prefix.js b/third_party/WebKit/LayoutTests/external/wpt/common/vendor-prefix.js
deleted file mode 100644
index 1a91632cec2860f120c806ef0516e5ddcd01077c..0000000000000000000000000000000000000000
--- a/third_party/WebKit/LayoutTests/external/wpt/common/vendor-prefix.js
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Use this script when you want to test APIs that use vendor prefixes
- and define which objects need to be checked for prefixed versions, à la
- <script src="vendor-prefix.js"
- data-prefixed-objects='[{"ancestors":["navigator"], "name":"getUserMedia"}]'
- data-prefixed-prototypes='[{"ancestors":["HTMLMediaElement"],"name":"srcObject"}]'></script>
- data-prefixed-objects lets prefix objects in the global space
- data-prefixed-prototypes adds prefixes to interfaces, for objects that
- get created during the tests
-
- NB: vendor prefixes are expected to go away in favor of putting
- new features behind flag, so hopefully there will be only limited
- need to use this
-*/
-
-(function () {
- var aliases = {};
- var documentingPrefixUsage = document.createElement('div');
- var vendorPrefixes = ["moz", "ms", "o", "webkit", "Moz", "MS", "O", "WebKit", "op"];
-
- function getParentObject(ancestors) {
- var parent = window;
- var currentName = "";
- ancestors.forEach(function (p) {
- currentName = currentName ? currentName + "." + p : p;
- if (parent[p] === undefined) {
- throw currentName + " is undefined, cannot set prefix alias on child object";
- }
- parent = parent[p];
- });
- return parent;
- }
-
- function prependPrefix(prefix, name) {
- var newName = name[0].toUpperCase() + name.substr(1, name.length);
- return prefix + newName;
- }
-
- function setPrototypeAlias(obj) {
- var parent = getParentObject(obj.ancestors);
- if (!parent.prototype.hasOwnProperty(obj.name)) {
- vendorPrefixes.forEach(function (prefix) {
- if (parent.prototype.hasOwnProperty(prependPrefix(prefix, obj.name))) {
- Object.defineProperty(parent.prototype, obj.name,
- {get: function() {return this[prependPrefix(prefix, obj.name)];},
- set: function(v) {this[prependPrefix(prefix, obj.name)] = v;}
- });
- aliases[obj.ancestors.join(".") + ".prototype." + obj.name] = obj.ancestors.join(".") + ".prototype." + prependPrefix(prefix, obj.name);
- return;
- }
- });
- }
- }
-
- function setAlias(obj) {
- var parent = getParentObject(obj.ancestors);
- if (parent[obj.name] === undefined) {
- vendorPrefixes.forEach(function (prefix) {
- if (parent[prependPrefix(prefix, obj.name)] !== undefined) {
- parent[obj.name] = parent[prependPrefix(prefix, obj.name)];
- aliases[obj.ancestors.join(".") + "." + obj.name] = obj.ancestors.join(".") + "." + prependPrefix(prefix, obj.name);
- return;
- }
- });
- }
- }
-
- if (location.search.indexOf('usePrefixes=1') !== -1) {
- if (document.querySelector("script[data-prefixed-objects]")) {
- var prefixObjectsData = document.querySelector("script[data-prefixed-objects]").dataset["prefixedObjects"];
- try {
- var prefixedObjects = JSON.parse(prefixObjectsData);
- } catch (e) {
- throw "couldn't parse data-prefixed-objects as JSON:" + e;
- }
- prefixedObjects.forEach(setAlias);
- }
- if (document.querySelector("script[data-prefixed-prototypes]")) {
- var prefixProtoData = document.querySelector("script[data-prefixed-prototypes]").dataset["prefixedPrototypes"];
- try {
- var prefixedPrototypes = JSON.parse(prefixProtoData);
- } catch (e) {
- throw "couldn't parse data-prefixed-prototypes as JSON:" + e;
- }
- prefixedPrototypes.forEach(setPrototypeAlias);
- }
- var ul = document.createElement("ul");
- Object.keys(aliases).forEach(function (alias) {
- var li = document.createElement("li");
- li.appendChild(document.createTextNode(alias + " has been set to be an alias of vendor-prefixed " + aliases[alias]));
- ul.appendChild(li);
- });
- documentingPrefixUsage.appendChild(ul);
- } else {
- // Document that the test can be run with prefixes enabled
-
- var a = document.createElement('a');
- var link = "";
- if (location.search) {
- link = location.search + "&usePrefixes=1";
- } else {
- link = "?usePrefixes=1";
- }
- a.setAttribute("href", link);
- a.appendChild(document.createTextNode("with vendor prefixes enabled"));
- documentingPrefixUsage.appendChild(document.createTextNode("The feature(s) tested here are known to have been made available via vendor prefixes; you can run this test "));
- documentingPrefixUsage.appendChild(a);
- documentingPrefixUsage.appendChild(document.createTextNode("."));
- }
- var log = document.getElementById('log');
- if (log) {
- log.parentNode.insertBefore(documentingPrefixUsage, log);
- } else {
- document.body.appendChild(documentingPrefixUsage);
- }
-})();

Powered by Google App Engine
This is Rietveld 408576698