From 06b90dc4dd31071efbafba0b3b29faca42d39e3d Mon Sep 17 00:00:00 2001 From: Joey Parrish Date: Mon, 10 Jan 2022 14:59:27 -0800 Subject: [PATCH] chore: reformat conformance proto In an internal Google build environment, the closure conformance proto needed to be reformatted. Rather than do that each time the code is synced to that environment, do it here in the upstream repo. Change-Id: I3160a9a13df1c9b60ec1fed38aabe571b8431b42 --- build/conformance.textproto | 352 +++++++++++++++++++----------------- 1 file changed, 183 insertions(+), 169 deletions(-) diff --git a/build/conformance.textproto b/build/conformance.textproto index 4bd8235025..c9c59f4e2d 100644 --- a/build/conformance.textproto +++ b/build/conformance.textproto @@ -12,297 +12,311 @@ # See the License for the specific language governing permissions and # limitations under the License. - # Conformance requirements: # See: https://github.com/google/closure-compiler/wiki/JS-Conformance-Framework - # Disallow throwing non-Error types. requirement: { type: CUSTOM - java_class: - 'com.google.javascript.jscomp.ConformanceRules$BanThrowOfNonErrorTypes' - error_message: 'Throwing non-Error types or Error itself is not allowed; ' - 'throw shaka.util.Error instead.' - whitelist_regexp: 'test/' - whitelist_regexp: 'node_modules/' + java_class: "com.google.javascript.jscomp.ConformanceRules$BanThrowOfNonErrorTypes" + error_message: + "Throwing non-Error types or Error itself is not allowed; " + "throw shaka.util.Error instead." + whitelist_regexp: "test/" + whitelist_regexp: "node_modules/" } requirement: { type: BANNED_CODE_PATTERN - value: 'function template() { throw new Error(); }' - error_message: 'Throwing non-Error types or Error itself is not allowed; ' - 'throw shaka.util.Error instead.' - whitelist_regexp: 'test/' - whitelist_regexp: 'node_modules/' + value: "function template() { throw new Error(); }" + error_message: + "Throwing non-Error types or Error itself is not allowed; " + "throw shaka.util.Error instead." + whitelist_regexp: "test/" + whitelist_regexp: "node_modules/" } - # Ban accessing members of unknown types. requirement: { type: CUSTOM - java_class: 'com.google.javascript.jscomp.ConformanceRules$' - 'BanUnknownTypedClassPropsReferences' - error_message: 'Using properties of unknown types is not allowed; add an ' - 'explicit type to the variable.' - whitelist_regexp: 'demo/' + java_class: + "com.google.javascript.jscomp.ConformanceRules$" + "BanUnknownTypedClassPropsReferences" + error_message: + "Using properties of unknown types is not allowed; add an " + "explicit type to the variable." + whitelist_regexp: "demo/" } requirement { type: CUSTOM - java_class: 'com.google.javascript.jscomp.ConformanceRules$BanUnknownThis' - error_message: 'Failed to infer type of "this"; ' - 'please be explicit or use bind!' + java_class: "com.google.javascript.jscomp.ConformanceRules$BanUnknownThis" + error_message: + "Failed to infer type of \"this\"; " + "please be explicit or use bind!" # Until we can get this rule updated for ES6 static methods # (https://github.com/google/closure-compiler/issues/2880): - whitelist_regexp: 'test/test/util/canned_idb.js' - whitelist_regexp: 'test/assets/assets_integration.js' + whitelist_regexp: "test/test/util/canned_idb.js" + whitelist_regexp: "test/assets/assets_integration.js" } - # Reject unresolved types. requirement { type: CUSTOM - java_class: 'com.google.javascript.jscomp.ConformanceRules$BanUnresolvedType' - error_message: 'Failed to resolve type!' + java_class: "com.google.javascript.jscomp.ConformanceRules$BanUnresolvedType" + error_message: "Failed to resolve type!" } - # Reject global variables. requirement { type: CUSTOM - java_class: 'com.google.javascript.jscomp.ConformanceRules$BanGlobalVars' - error_message: 'Global variables are not allowed!' - whitelist_regexp: 'demo/' - whitelist_regexp: 'test/' - whitelist_regexp: 'node_modules/' + java_class: "com.google.javascript.jscomp.ConformanceRules$BanGlobalVars" + error_message: "Global variables are not allowed!" + whitelist_regexp: "demo/" + whitelist_regexp: "test/" + whitelist_regexp: "node_modules/" } - # Disallow using "!" on nullable numbers in boolean assignment. # Note: we can't use the pattern "var b = !n" because it causes too many # false positives. requirement: { type: BANNED_CODE_PATTERN - value: '/** @param {boolean} b @param {?number} n */ ' - 'function template(b, n) { b = !n; }' - error_message: 'Using "!" on nullable numbers in boolean assignment ' - 'is not allowed; use an explicit comparison instead.' - whitelist_regexp: 'node_modules/' + value: + "/** @param {boolean} b @param {?number} n */ " + "function template(b, n) { b = !n; }" + error_message: + "Using \"!\" on nullable numbers in boolean assignment " + "is not allowed; use an explicit comparison instead." + whitelist_regexp: "node_modules/" } requirement: { type: BANNED_CODE_PATTERN - value: '/** @param {*} a' - ' @param {(number|string|boolean|null|undefined)} x */' - 'function template(a, x) { expect(a).toEqual(x); }' - value: '/** @param {*} a' - ' @param {(number|string|boolean|null|undefined)} x */' - 'function template(a, x) { expect(a).not.toEqual(x); }' - error_message: 'Use expect.toBe for primitives' + value: + "/** @param {*} a" + " @param {(number|string|boolean|null|undefined)} x */" + "function template(a, x) { expect(a).toEqual(x); }" + value: + "/** @param {*} a" + " @param {(number|string|boolean|null|undefined)} x */" + "function template(a, x) { expect(a).not.toEqual(x); }" + error_message: "Use expect.toBe for primitives" } requirement: { type: BANNED_CODE_PATTERN - value: '/** @param {BufferSource} a */' - 'function template(a) { new Uint8Array(a) }' - value: '/** @param {BufferSource} a */' - 'function template(a) { new Int8Array(a) }' - value: '/** @param {BufferSource} a */' - 'function template(a) { new Uint8ClampedArray(a) }' - value: '/** @param {BufferSource} a */' - 'function template(a) { new Unt16Array(a) }' - value: '/** @param {BufferSource} a */' - 'function template(a) { new Int16Array(a) }' - value: '/** @param {BufferSource} a */' - 'function template(a) { new Uint32Array(a) }' - value: '/** @param {BufferSource} a */' - 'function template(a) { new Int32Array(a) }' - value: '/** @param {BufferSource} a */' - 'function template(a) { new Float32Array(a) }' - value: '/** @param {BufferSource} a */' - 'function template(a) { new Float64Array(a) }' - error_message: 'Use shaka.util.BufferUtils.view* instead.' - whitelist_regexp: 'lib/util/buffer_utils.js' + value: + "/** @param {BufferSource} a */" + "function template(a) { new Uint8Array(a) }" + value: + "/** @param {BufferSource} a */" + "function template(a) { new Int8Array(a) }" + value: + "/** @param {BufferSource} a */" + "function template(a) { new Uint8ClampedArray(a) }" + value: + "/** @param {BufferSource} a */" + "function template(a) { new Unt16Array(a) }" + value: + "/** @param {BufferSource} a */" + "function template(a) { new Int16Array(a) }" + value: + "/** @param {BufferSource} a */" + "function template(a) { new Uint32Array(a) }" + value: + "/** @param {BufferSource} a */" + "function template(a) { new Int32Array(a) }" + value: + "/** @param {BufferSource} a */" + "function template(a) { new Float32Array(a) }" + value: + "/** @param {BufferSource} a */" + "function template(a) { new Float64Array(a) }" + error_message: "Use shaka.util.BufferUtils.view* instead." + whitelist_regexp: "lib/util/buffer_utils.js" } requirement: { type: BANNED_CODE_PATTERN - value: 'function template () { new Date().getTime() }' - error_message: 'Use Date.now() instead.' + value: "function template () { new Date().getTime() }" + error_message: "Use Date.now() instead." } # Disallow console logging. requirement: { type: BANNED_PROPERTY_CALL - value: 'Console.prototype.debug' - value: 'Console.prototype.log' - value: 'Console.prototype.info' - value: 'Console.prototype.warn' - value: 'Console.prototype.error' - error_message: 'Using "console" is not allowed; ' - 'use shaka.log instead' - whitelist_regexp: 'demo/' - whitelist_regexp: 'lib/debug/log.js' - whitelist_regexp: 'test/test/boot.js' - whitelist_regexp: 'node_modules/' - whitelist_regexp: '[synthetic:es6/promise/promise]' + value: "Console.prototype.debug" + value: "Console.prototype.log" + value: "Console.prototype.info" + value: "Console.prototype.warn" + value: "Console.prototype.error" + error_message: + "Using \"console\" is not allowed; " + "use shaka.log instead" + whitelist_regexp: "demo/" + whitelist_regexp: "lib/debug/log.js" + whitelist_regexp: "test/test/boot.js" + whitelist_regexp: "node_modules/" + whitelist_regexp: "[synthetic:es6/promise/promise]" } # Disallow querySelector and querySelectorAll since they aren't supported on # Shaka Player Embedded. requirement: { type: BANNED_PROPERTY_CALL - value: 'Element.prototype.querySelector' - value: 'Document.prototype.querySelector' - value: 'Element.prototype.querySelectorAll' - value: 'Document.prototype.querySelectorAll' - error_message: 'Use getElementsByTagName' - whitelist_regexp: 'demo/' - whitelist_regexp: 'ui/' - whitelist_regexp: 'test/' - whitelist_regexp: 'node_modules/' + value: "Element.prototype.querySelector" + value: "Document.prototype.querySelector" + value: "Element.prototype.querySelectorAll" + value: "Document.prototype.querySelectorAll" + error_message: "Use getElementsByTagName" + whitelist_regexp: "demo/" + whitelist_regexp: "ui/" + whitelist_regexp: "test/" + whitelist_regexp: "node_modules/" } - # Disallow Element.children. requirement: { type: BANNED_PROPERTY - value: 'Element.prototype.children' - error_message: 'Using "Element.children" is not allowed; ' - 'use Node.childNodes instead' + value: "Element.prototype.children" + error_message: + "Using \"Element.children\" is not allowed; " + "use Node.childNodes instead" } requirement: { type: BANNED_PROPERTY - value: 'DataView.prototype.buffer' - value: 'TypedArray.prototype.buffer' - error_message: 'Using "TypedArray.buffer" is not safe since it doesn\'t ' - 'handle sub-arrays' - whitelist_regexp: 'lib/util/buffer_utils.js' - whitelist_regexp: 'lib/util/object_utils.js' - whitelist_regexp: 'test/util/buffer_utils_unit.js' + value: "DataView.prototype.buffer" + value: "TypedArray.prototype.buffer" + error_message: + "Using \"TypedArray.buffer\" is not safe since it doesn\'t " + "handle sub-arrays" + whitelist_regexp: "lib/util/buffer_utils.js" + whitelist_regexp: "lib/util/object_utils.js" + whitelist_regexp: "test/util/buffer_utils_unit.js" } - # Disallow Element.innerHTML and outerHTML. requirement: { type: BANNED_PROPERTY - value: 'Element.prototype.innerHTML' - value: 'Element.prototype.outerHTML' - error_message: 'Using "Element.innerHTML" or "Element.outerHTML" is not ' - 'allowed due to security concerns; use textContent, ' - 'appendChild, or removeChild instead' - whitelist_regexp: 'test/test/util/util.js' + value: "Element.prototype.innerHTML" + value: "Element.prototype.outerHTML" + error_message: + "Using \"Element.innerHTML\" or \"Element.outerHTML\" is not " + "allowed due to security concerns; use textContent, " + "appendChild, or removeChild instead" + whitelist_regexp: "test/test/util/util.js" } - # Disallow DOMRect.x and y. requirement: { type: BANNED_PROPERTY - value: 'DOMRect.prototype.x' - value: 'DOMRect.prototype.y' - error_message: 'DOMRect "x" and "y" are not supported on legacy Edge; ' - 'use "left" and "top" instead.' + value: "DOMRect.prototype.x" + value: "DOMRect.prototype.y" + error_message: + "DOMRect \"x\" and \"y\" are not supported on legacy Edge; " + "use \"left\" and \"top\" instead." # The built-in set and map polyfills trigger this ban somehow. - whitelist_regexp: 'synthetic:es6/' + whitelist_regexp: "synthetic:es6/" } - # Disallow fdescribe. requirement: { type: BANNED_NAME - value: 'fdescribe' - error_message: 'Using "fdescribe" is not allowed' + value: "fdescribe" + error_message: "Using \"fdescribe\" is not allowed" } - # Disallow fit. requirement: { type: BANNED_NAME - value: 'fit' - error_message: 'Using "fit" is not allowed' - whitelist_regexp: 'test/player_external.js' + value: "fit" + error_message: "Using \"fit\" is not allowed" + whitelist_regexp: "test/player_external.js" } - # Disallow setInterval. requirement: { type: BANNED_NAME - value: 'window.setInterval' - error_message: 'setInterval has several drawbacks, most of ' - 'all difficulty canceling and surprising behavior ' - 'when the device goes to sleep. Please use ' - 'shaka.util.Timer instead.' - whitelist_regexp: 'demo/' - whitelist_regexp: 'test/' + value: "window.setInterval" + error_message: + "setInterval has several drawbacks, most of " + "all difficulty canceling and surprising behavior " + "when the device goes to sleep. Please use " + "shaka.util.Timer instead." + whitelist_regexp: "demo/" + whitelist_regexp: "test/" } requirement: { type: BANNED_NAME - value: 'setInterval' - error_message: 'setInterval has several drawbacks, most of ' - 'all difficulty canceling and surprising behavior ' - 'when the device goes to sleep. Please use ' - 'shaka.util.Timer instead.' - whitelist_regexp: 'demo/' - whitelist_regexp: 'test/' + value: "setInterval" + error_message: + "setInterval has several drawbacks, most of " + "all difficulty canceling and surprising behavior " + "when the device goes to sleep. Please use " + "shaka.util.Timer instead." + whitelist_regexp: "demo/" + whitelist_regexp: "test/" } # Disallow setTimeout. requirement: { type: BANNED_NAME - value: 'window.setTimeout' - error_message: 'setTimeout has several drawbacks, most of ' - 'all difficulty canceling it. Please use ' - 'shaka.util.Timer instead.' - whitelist_regexp: 'demo/' - whitelist_regexp: 'test/' - whitelist_regexp: 'lib/util/delayed_tick.js' + value: "window.setTimeout" + error_message: + "setTimeout has several drawbacks, most of " + "all difficulty canceling it. Please use " + "shaka.util.Timer instead." + whitelist_regexp: "demo/" + whitelist_regexp: "test/" + whitelist_regexp: "lib/util/delayed_tick.js" } requirement: { type: BANNED_NAME - value: 'setTimeout' - error_message: 'setTimeout has several drawbacks, most of ' - 'all difficulty canceling it. Please use ' - 'shaka.util.Timer instead.' - whitelist_regexp: 'demo/' - whitelist_regexp: 'test/' + value: "setTimeout" + error_message: + "setTimeout has several drawbacks, most of " + "all difficulty canceling it. Please use " + "shaka.util.Timer instead." + whitelist_regexp: "demo/" + whitelist_regexp: "test/" } - # Disallow eval, except when testing for modern JS syntax in demo requirement: { type: BANNED_NAME - value: 'window.eval' - error_message: 'Using "eval" is not allowed' - whitelist_regexp: 'demo/demo_utils.js' - whitelist_regexp: 'node_modules/google-closure-library/closure/goog/base.js' - whitelist_regexp: 'test/util/functional_unit.js' + value: "window.eval" + error_message: "Using \"eval\" is not allowed" + whitelist_regexp: "demo/demo_utils.js" + whitelist_regexp: "node_modules/google-closure-library/closure/goog/base.js" + whitelist_regexp: "test/util/functional_unit.js" } requirement: { type: BANNED_NAME - value: 'eval' - error_message: 'Using "eval" is not allowed' - whitelist_regexp: 'demo/demo_utils.js' - whitelist_regexp: 'node_modules/google-closure-library/closure/goog/base.js' - whitelist_regexp: 'test/util/functional_unit.js' + value: "eval" + error_message: "Using \"eval\" is not allowed" + whitelist_regexp: "demo/demo_utils.js" + whitelist_regexp: "node_modules/google-closure-library/closure/goog/base.js" + whitelist_regexp: "test/util/functional_unit.js" } - # Disallow ES6 methods. requirement: { type: BANNED_PROPERTY - value: 'ArrayBuffer.prototype.slice' - error_message: 'ArrayBuffer.slice is not allowed because it ' - 'is not supported on Tizen 2016' + value: "ArrayBuffer.prototype.slice" + error_message: + "ArrayBuffer.slice is not allowed because it " + "is not supported on Tizen 2016" } # Disallow the general use of fetch, which is not available on all supported # platforms. requirement: { type: BANNED_NAME_CALL - value: 'fetch' - value: 'window.fetch' - error_message: 'Using "fetch" directly is not allowed; ' - 'use shaka.test.Util.fetch or NetworkingEngine.request ' - 'instead.' - whitelist_regexp: 'lib/net/http_fetch_plugin.js' + value: "fetch" + value: "window.fetch" + error_message: + "Using \"fetch\" directly is not allowed; " + "use shaka.test.Util.fetch or NetworkingEngine.request " + "instead." + whitelist_regexp: "lib/net/http_fetch_plugin.js" }