mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Auto merge of #20669 - simartin:issue_20623, r=jdm
Issue #20623: Check the input to WebGLRenderingContext's clear(). Validate the input to this function as per specifications. --- - [X] `./mach build -d` does not report any errors - [X] `./mach build-geckolib` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #20623 - [X] There are tests for these changes <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20669) <!-- Reviewable:end -->
This commit is contained in:
commit
0b5720547e
3 changed files with 36 additions and 0 deletions
|
@ -1878,6 +1878,9 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
if !self.validate_framebuffer_complete() {
|
||||
return;
|
||||
}
|
||||
if mask & !(constants::DEPTH_BUFFER_BIT | constants::STENCIL_BUFFER_BIT | constants::COLOR_BUFFER_BIT) != 0 {
|
||||
return self.webgl_error(InvalidValue);
|
||||
}
|
||||
|
||||
self.send_command(WebGLCommand::Clear(mask));
|
||||
self.mark_as_dirty();
|
||||
|
|
|
@ -39293,6 +39293,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"mozilla/webgl/clear.html": [
|
||||
[
|
||||
"/_mozilla/mozilla/webgl/clear.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"mozilla/webgl/context_creation_error.html": [
|
||||
[
|
||||
"/_mozilla/mozilla/webgl/context_creation_error.html",
|
||||
|
@ -70956,6 +70962,10 @@
|
|||
"c333c7b99156d63fcd3ad28014c7915a12cf8169",
|
||||
"testharness"
|
||||
],
|
||||
"mozilla/webgl/clear.html": [
|
||||
"14cc534be5da96b0cc128d5c44f662b2fdfb294c",
|
||||
"testharness"
|
||||
],
|
||||
"mozilla/webgl/clearcolor.html": [
|
||||
"942ee78ec987d17f63253ed97d6de958dbe8730d",
|
||||
"reftest"
|
||||
|
|
23
tests/wpt/mozilla/tests/mozilla/webgl/clear.html
Normal file
23
tests/wpt/mozilla/tests/mozilla/webgl/clear.html
Normal file
|
@ -0,0 +1,23 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>WebGLRenderingContext.clear testing (issue #20623)</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
test(function() {
|
||||
var gl = document.createElement("canvas").getContext("webgl");
|
||||
// Valid values
|
||||
gl.clear(gl.DEPTH_BUFFER_BIT);
|
||||
assert_equals(gl.NO_ERROR, gl.getError());
|
||||
gl.clear(gl.STENCIL_BUFFER_BIT);
|
||||
assert_equals(gl.NO_ERROR, gl.getError());
|
||||
gl.clear(gl.COLOR_BUFFER_BIT);
|
||||
assert_equals(gl.NO_ERROR, gl.getError());
|
||||
gl.clear(gl.DEPTH_BUFFER_BIT | gl.STENCIL_BUFFER_BIT | gl.COLOR_BUFFER_BIT);
|
||||
assert_equals(gl.NO_ERROR, gl.getError());
|
||||
|
||||
// Invalid value
|
||||
gl.clear(42);
|
||||
assert_equals(gl.INVALID_VALUE, gl.getError());
|
||||
});
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue