| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
} else {nit: we could return an `error::InvalidArgument`
BuildRequestableExtensionString();Is the reason that we rebuild the requestableExtensionString that the newly requested extensions are removed from it?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Commit-Queue | +2 |
} else {nit: we could return an `error::InvalidArgument`
It is valid to request the same extension multiple times and the WebGL layers do this since there is some overlap in WebGL ext -> multiple native exts.
ANGLE just validates that the extension's type is requestable, not that it is in the requestable string.
BuildRequestableExtensionString();Is the reason that we rebuild the requestableExtensionString that the newly requested extensions are removed from it?
Yep, it's expected that the extension strings update after requesting extensions.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Validate extensions requested by glRequestExtensionCHROMIUM
glRequestExtensionCHROMIUM would forward extension requests to ANGLE for
enabling WebGL extensions but ANGLE hides many other extensions from the
user by marking them as requestable. A compromised renderer can request
these extensions.
Use a list of pre-validated extensions that are valid to request. This
list is generated from the extensions requested by the WebGL bindings
and the previous list of extensions needed for command decoder
functionality.
For non-WebGL command decoders, disable all extensions by default and
request all valid extensions after the context has been created.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |