diff options
author | Samson <16504129+sagudev@users.noreply.github.com> | 2024-05-22 18:47:35 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-22 16:47:35 +0000 |
commit | 794110ebe58ad72d809291e9feb3f2cc92819941 (patch) | |
tree | 9c01451fa022f433fa8a305d58c2a79da747e838 /components/script/dom/gpuinternalerror.rs | |
parent | 9f32809671c8c8e79d59c95194dcc466452299fc (diff) | |
download | servo-794110ebe58ad72d809291e9feb3f2cc92819941.tar.gz servo-794110ebe58ad72d809291e9feb3f2cc92819941.zip |
webgpu: Move errorscopes to WGPU thread (#32304)
* Prepare errorscopes logic in wgpu_thread
* remove scope_id from ipc
* new GPUErrors per spec
* remove cotent timeline error_scope
* fixup poperrorscope types
* device_scope -> gpu_error and nice errors
* Handle errors detection more elegantly
* good expectations
* new expectations
* Make error_scope.errors Vec as per spec
Diffstat (limited to 'components/script/dom/gpuinternalerror.rs')
-rw-r--r-- | components/script/dom/gpuinternalerror.rs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/components/script/dom/gpuinternalerror.rs b/components/script/dom/gpuinternalerror.rs new file mode 100644 index 00000000000..5c5987b2649 --- /dev/null +++ b/components/script/dom/gpuinternalerror.rs @@ -0,0 +1,43 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +use dom_struct::dom_struct; +use js::rust::HandleObject; + +use super::types::GPUError; +use crate::dom::bindings::reflector::reflect_dom_object_with_proto; +use crate::dom::bindings::root::DomRoot; +use crate::dom::bindings::str::DOMString; +use crate::dom::globalscope::GlobalScope; + +#[dom_struct] +pub struct GPUInternalError { + gpu_error: GPUError, +} + +impl GPUInternalError { + fn new_inherited(message: DOMString) -> Self { + Self { + gpu_error: GPUError::new_inherited(message), + } + } + + pub fn new_with_proto( + global: &GlobalScope, + proto: Option<HandleObject>, + message: DOMString, + ) -> DomRoot<Self> { + reflect_dom_object_with_proto(Box::new(Self::new_inherited(message)), global, proto) + } + + /// <https://gpuweb.github.io/gpuweb/#dom-GPUInternalError-GPUInternalError> + #[allow(non_snake_case)] + pub fn Constructor( + global: &GlobalScope, + proto: Option<HandleObject>, + message: DOMString, + ) -> DomRoot<Self> { + Self::new_with_proto(global, proto, message) + } +} |