mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
Auto merge of #14376 - nox:specialized-constructors, r=KiChjang,nox
Make WebIDL static items take a more specific global if possible <!-- 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/14376) <!-- Reviewable:end -->
This commit is contained in:
commit
e315da0731
46 changed files with 151 additions and 134 deletions
|
@ -3168,7 +3168,7 @@ class CGCallGenerator(CGThing):
|
||||||
|
|
||||||
if isFallible:
|
if isFallible:
|
||||||
if static:
|
if static:
|
||||||
glob = "&global"
|
glob = "global.upcast::<GlobalScope>()"
|
||||||
else:
|
else:
|
||||||
glob = "&this.global()"
|
glob = "&this.global()"
|
||||||
|
|
||||||
|
@ -3378,12 +3378,13 @@ class CGAbstractStaticBindingMethod(CGAbstractMethod):
|
||||||
Argument('*mut JSVal', 'vp'),
|
Argument('*mut JSVal', 'vp'),
|
||||||
]
|
]
|
||||||
CGAbstractMethod.__init__(self, descriptor, name, "bool", args, extern=True)
|
CGAbstractMethod.__init__(self, descriptor, name, "bool", args, extern=True)
|
||||||
|
self.exposureSet = descriptor.interface.exposureSet
|
||||||
|
|
||||||
def definition_body(self):
|
def definition_body(self):
|
||||||
preamble = CGGeneric("""\
|
preamble = "let global = GlobalScope::from_object(JS_CALLEE(cx, vp).to_object());\n"
|
||||||
let global = GlobalScope::from_object(JS_CALLEE(cx, vp).to_object());
|
if len(self.exposureSet) == 1:
|
||||||
""")
|
preamble += "let global = Root::downcast::<dom::types::%s>(global).unwrap();\n" % list(self.exposureSet)[0]
|
||||||
return CGList([preamble, self.generate_code()])
|
return CGList([CGGeneric(preamble), self.generate_code()])
|
||||||
|
|
||||||
def generate_code(self):
|
def generate_code(self):
|
||||||
raise NotImplementedError # Override me!
|
raise NotImplementedError # Override me!
|
||||||
|
@ -5245,12 +5246,14 @@ class CGClassConstructHook(CGAbstractExternMethod):
|
||||||
assert constructor
|
assert constructor
|
||||||
CGAbstractExternMethod.__init__(self, descriptor, name, 'bool', args)
|
CGAbstractExternMethod.__init__(self, descriptor, name, 'bool', args)
|
||||||
self.constructor = constructor
|
self.constructor = constructor
|
||||||
|
self.exposureSet = descriptor.interface.exposureSet
|
||||||
|
|
||||||
def definition_body(self):
|
def definition_body(self):
|
||||||
preamble = CGGeneric("""\
|
preamble = """let global = GlobalScope::from_object(JS_CALLEE(cx, vp).to_object());\n"""
|
||||||
let global = GlobalScope::from_object(JS_CALLEE(cx, vp).to_object());
|
if len(self.exposureSet) == 1:
|
||||||
let args = CallArgs::from_vp(vp, argc);
|
preamble += "let global = Root::downcast::<dom::types::%s>(global).unwrap();\n" % list(self.exposureSet)[0]
|
||||||
""")
|
preamble += """let args = CallArgs::from_vp(vp, argc);\n"""
|
||||||
|
preamble = CGGeneric(preamble)
|
||||||
name = self.constructor.identifier.name
|
name = self.constructor.identifier.name
|
||||||
nativeName = MakeNativeName(self.descriptor.binaryNameFor(name))
|
nativeName = MakeNativeName(self.descriptor.binaryNameFor(name))
|
||||||
callGenerator = CGMethodCall(["&global"], nativeName, True,
|
callGenerator = CGMethodCall(["&global"], nativeName, True,
|
||||||
|
@ -5582,6 +5585,7 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries
|
||||||
'dom::bindings::error::throw_dom_exception',
|
'dom::bindings::error::throw_dom_exception',
|
||||||
'dom::bindings::guard::Condition',
|
'dom::bindings::guard::Condition',
|
||||||
'dom::bindings::guard::Guard',
|
'dom::bindings::guard::Guard',
|
||||||
|
'dom::bindings::inheritance::Castable',
|
||||||
'dom::bindings::proxyhandler',
|
'dom::bindings::proxyhandler',
|
||||||
'dom::bindings::proxyhandler::ensure_expando_object',
|
'dom::bindings::proxyhandler::ensure_expando_object',
|
||||||
'dom::bindings::proxyhandler::fill_property_descriptor',
|
'dom::bindings::proxyhandler::fill_property_descriptor',
|
||||||
|
|
|
@ -7,7 +7,7 @@ use dom::bindings::error::Error::Syntax;
|
||||||
use dom::bindings::error::Fallible;
|
use dom::bindings::error::Fallible;
|
||||||
use dom::bindings::reflector::Reflector;
|
use dom::bindings::reflector::Reflector;
|
||||||
use dom::bindings::str::DOMString;
|
use dom::bindings::str::DOMString;
|
||||||
use dom::globalscope::GlobalScope;
|
use dom::window::Window;
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
|
|
||||||
pub type UUID = DOMString;
|
pub type UUID = DOMString;
|
||||||
|
@ -271,22 +271,22 @@ const VALID_UUID_REGEX: &'static str = "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-
|
||||||
|
|
||||||
impl BluetoothUUID {
|
impl BluetoothUUID {
|
||||||
// https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothuuid-canonicaluuid
|
// https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothuuid-canonicaluuid
|
||||||
pub fn CanonicalUUID(_: &GlobalScope, alias: u32) -> UUID {
|
pub fn CanonicalUUID(_: &Window, alias: u32) -> UUID {
|
||||||
canonical_uuid(alias)
|
canonical_uuid(alias)
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothuuid-getservice
|
// https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothuuid-getservice
|
||||||
pub fn GetService(_: &GlobalScope, name: BluetoothServiceUUID) -> Fallible<UUID> {
|
pub fn GetService(_: &Window, name: BluetoothServiceUUID) -> Fallible<UUID> {
|
||||||
Self::service(name)
|
Self::service(name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothuuid-getcharacteristic
|
// https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothuuid-getcharacteristic
|
||||||
pub fn GetCharacteristic(_: &GlobalScope, name: BluetoothCharacteristicUUID) -> Fallible<UUID> {
|
pub fn GetCharacteristic(_: &Window, name: BluetoothCharacteristicUUID) -> Fallible<UUID> {
|
||||||
Self::characteristic(name)
|
Self::characteristic(name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothuuid-getdescriptor
|
// https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothuuid-getdescriptor
|
||||||
pub fn GetDescriptor(_: &GlobalScope, name: BluetoothDescriptorUUID) -> Fallible<UUID> {
|
pub fn GetDescriptor(_: &Window, name: BluetoothDescriptorUUID) -> Fallible<UUID> {
|
||||||
Self::descriptor(name)
|
Self::descriptor(name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,8 +9,8 @@ use dom::bindings::js::Root;
|
||||||
use dom::bindings::str::DOMString;
|
use dom::bindings::str::DOMString;
|
||||||
use dom::characterdata::CharacterData;
|
use dom::characterdata::CharacterData;
|
||||||
use dom::document::Document;
|
use dom::document::Document;
|
||||||
use dom::globalscope::GlobalScope;
|
|
||||||
use dom::node::Node;
|
use dom::node::Node;
|
||||||
|
use dom::window::Window;
|
||||||
|
|
||||||
/// An HTML comment.
|
/// An HTML comment.
|
||||||
#[dom_struct]
|
#[dom_struct]
|
||||||
|
@ -31,8 +31,8 @@ impl Comment {
|
||||||
CommentBinding::Wrap)
|
CommentBinding::Wrap)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn Constructor(global: &GlobalScope, data: DOMString) -> Fallible<Root<Comment>> {
|
pub fn Constructor(window: &Window, data: DOMString) -> Fallible<Root<Comment>> {
|
||||||
let document = global.as_window().Document();
|
let document = window.Document();
|
||||||
Ok(Comment::new(data, &document))
|
Ok(Comment::new(data, &document))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ use cssparser::serialize_identifier;
|
||||||
use dom::bindings::error::Fallible;
|
use dom::bindings::error::Fallible;
|
||||||
use dom::bindings::reflector::Reflector;
|
use dom::bindings::reflector::Reflector;
|
||||||
use dom::bindings::str::DOMString;
|
use dom::bindings::str::DOMString;
|
||||||
use dom::globalscope::GlobalScope;
|
use dom::window::Window;
|
||||||
|
|
||||||
#[dom_struct]
|
#[dom_struct]
|
||||||
pub struct CSS {
|
pub struct CSS {
|
||||||
|
@ -15,7 +15,7 @@ pub struct CSS {
|
||||||
|
|
||||||
impl CSS {
|
impl CSS {
|
||||||
// http://dev.w3.org/csswg/cssom/#serialize-an-identifier
|
// http://dev.w3.org/csswg/cssom/#serialize-an-identifier
|
||||||
pub fn Escape(_: &GlobalScope, ident: DOMString) -> Fallible<DOMString> {
|
pub fn Escape(_: &Window, ident: DOMString) -> Fallible<DOMString> {
|
||||||
let mut escaped = String::new();
|
let mut escaped = String::new();
|
||||||
serialize_identifier(&ident, &mut escaped).unwrap();
|
serialize_identifier(&ident, &mut escaped).unwrap();
|
||||||
Ok(DOMString::from(escaped))
|
Ok(DOMString::from(escaped))
|
||||||
|
|
|
@ -1884,11 +1884,10 @@ impl Document {
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://dom.spec.whatwg.org/#dom-document
|
// https://dom.spec.whatwg.org/#dom-document
|
||||||
pub fn Constructor(global: &GlobalScope) -> Fallible<Root<Document>> {
|
pub fn Constructor(window: &Window) -> Fallible<Root<Document>> {
|
||||||
let win = global.as_window();
|
let doc = window.Document();
|
||||||
let doc = win.Document();
|
|
||||||
let docloader = DocumentLoader::new(&*doc.loader());
|
let docloader = DocumentLoader::new(&*doc.loader());
|
||||||
Ok(Document::new(win,
|
Ok(Document::new(window,
|
||||||
None,
|
None,
|
||||||
None,
|
None,
|
||||||
IsHTMLDocument::NonHTMLDocument,
|
IsHTMLDocument::NonHTMLDocument,
|
||||||
|
@ -2426,7 +2425,7 @@ impl DocumentMethods for Document {
|
||||||
)
|
)
|
||||||
)),
|
)),
|
||||||
"webglcontextevent" =>
|
"webglcontextevent" =>
|
||||||
Ok(Root::upcast(WebGLContextEvent::new_uninitialized(self.window.upcast()))),
|
Ok(Root::upcast(WebGLContextEvent::new_uninitialized(&self.window))),
|
||||||
"storageevent" => {
|
"storageevent" => {
|
||||||
let USVString(url) = self.URL();
|
let USVString(url) = self.URL();
|
||||||
Ok(Root::upcast(StorageEvent::new_uninitialized(&self.window, DOMString::from(url))))
|
Ok(Root::upcast(StorageEvent::new_uninitialized(&self.window, DOMString::from(url))))
|
||||||
|
|
|
@ -12,10 +12,10 @@ use dom::bindings::js::Root;
|
||||||
use dom::bindings::str::DOMString;
|
use dom::bindings::str::DOMString;
|
||||||
use dom::document::Document;
|
use dom::document::Document;
|
||||||
use dom::element::Element;
|
use dom::element::Element;
|
||||||
use dom::globalscope::GlobalScope;
|
|
||||||
use dom::htmlcollection::HTMLCollection;
|
use dom::htmlcollection::HTMLCollection;
|
||||||
use dom::node::{Node, window_from_node};
|
use dom::node::{Node, window_from_node};
|
||||||
use dom::nodelist::NodeList;
|
use dom::nodelist::NodeList;
|
||||||
|
use dom::window::Window;
|
||||||
use servo_atoms::Atom;
|
use servo_atoms::Atom;
|
||||||
|
|
||||||
// https://dom.spec.whatwg.org/#documentfragment
|
// https://dom.spec.whatwg.org/#documentfragment
|
||||||
|
@ -38,8 +38,8 @@ impl DocumentFragment {
|
||||||
DocumentFragmentBinding::Wrap)
|
DocumentFragmentBinding::Wrap)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn Constructor(global: &GlobalScope) -> Fallible<Root<DocumentFragment>> {
|
pub fn Constructor(window: &Window) -> Fallible<Root<DocumentFragment>> {
|
||||||
let document = global.as_window().Document();
|
let document = window.Document();
|
||||||
|
|
||||||
Ok(DocumentFragment::new(&document))
|
Ok(DocumentFragment::new(&document))
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,6 @@ use dom::bindings::reflector::{Reflector, reflect_dom_object};
|
||||||
use dom::bindings::str::DOMString;
|
use dom::bindings::str::DOMString;
|
||||||
use dom::document::{Document, IsHTMLDocument};
|
use dom::document::{Document, IsHTMLDocument};
|
||||||
use dom::document::DocumentSource;
|
use dom::document::DocumentSource;
|
||||||
use dom::globalscope::GlobalScope;
|
|
||||||
use dom::servoparser::ServoParser;
|
use dom::servoparser::ServoParser;
|
||||||
use dom::window::Window;
|
use dom::window::Window;
|
||||||
|
|
||||||
|
@ -41,8 +40,8 @@ impl DOMParser {
|
||||||
DOMParserBinding::Wrap)
|
DOMParserBinding::Wrap)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn Constructor(global: &GlobalScope) -> Fallible<Root<DOMParser>> {
|
pub fn Constructor(window: &Window) -> Fallible<Root<DOMParser>> {
|
||||||
Ok(DOMParser::new(global.as_window()))
|
Ok(DOMParser::new(window))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ use dom::bindings::js::Root;
|
||||||
use dom::bindings::reflector::reflect_dom_object;
|
use dom::bindings::reflector::reflect_dom_object;
|
||||||
use dom::bindings::str::DOMString;
|
use dom::bindings::str::DOMString;
|
||||||
use dom::event::Event;
|
use dom::event::Event;
|
||||||
use dom::globalscope::GlobalScope;
|
use dom::serviceworkerglobalscope::ServiceWorkerGlobalScope;
|
||||||
use js::jsapi::{HandleValue, JSContext};
|
use js::jsapi::{HandleValue, JSContext};
|
||||||
use servo_atoms::Atom;
|
use servo_atoms::Atom;
|
||||||
|
|
||||||
|
@ -28,12 +28,12 @@ impl ExtendableEvent {
|
||||||
extensions_allowed: true
|
extensions_allowed: true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub fn new(global: &GlobalScope,
|
pub fn new(worker: &ServiceWorkerGlobalScope,
|
||||||
type_: Atom,
|
type_: Atom,
|
||||||
bubbles: bool,
|
bubbles: bool,
|
||||||
cancelable: bool)
|
cancelable: bool)
|
||||||
-> Root<ExtendableEvent> {
|
-> Root<ExtendableEvent> {
|
||||||
let ev = reflect_dom_object(box ExtendableEvent::new_inherited(), global, ExtendableEventBinding::Wrap);
|
let ev = reflect_dom_object(box ExtendableEvent::new_inherited(), worker, ExtendableEventBinding::Wrap);
|
||||||
{
|
{
|
||||||
let event = ev.upcast::<Event>();
|
let event = ev.upcast::<Event>();
|
||||||
event.init_event(type_, bubbles, cancelable);
|
event.init_event(type_, bubbles, cancelable);
|
||||||
|
@ -41,10 +41,10 @@ impl ExtendableEvent {
|
||||||
ev
|
ev
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn Constructor(global: &GlobalScope,
|
pub fn Constructor(worker: &ServiceWorkerGlobalScope,
|
||||||
type_: DOMString,
|
type_: DOMString,
|
||||||
init: &ExtendableEventBinding::ExtendableEventInit) -> Fallible<Root<ExtendableEvent>> {
|
init: &ExtendableEventBinding::ExtendableEventInit) -> Fallible<Root<ExtendableEvent>> {
|
||||||
Ok(ExtendableEvent::new(global,
|
Ok(ExtendableEvent::new(worker,
|
||||||
Atom::from(type_),
|
Atom::from(type_),
|
||||||
init.parent.bubbles,
|
init.parent.bubbles,
|
||||||
init.parent.cancelable))
|
init.parent.cancelable))
|
||||||
|
|
|
@ -13,6 +13,7 @@ use dom::event::Event;
|
||||||
use dom::eventtarget::EventTarget;
|
use dom::eventtarget::EventTarget;
|
||||||
use dom::extendableevent::ExtendableEvent;
|
use dom::extendableevent::ExtendableEvent;
|
||||||
use dom::globalscope::GlobalScope;
|
use dom::globalscope::GlobalScope;
|
||||||
|
use dom::serviceworkerglobalscope::ServiceWorkerGlobalScope;
|
||||||
use js::jsapi::{HandleValue, Heap, JSContext};
|
use js::jsapi::{HandleValue, Heap, JSContext};
|
||||||
use js::jsval::JSVal;
|
use js::jsval::JSVal;
|
||||||
use servo_atoms::Atom;
|
use servo_atoms::Atom;
|
||||||
|
@ -46,10 +47,11 @@ impl ExtendableMessageEvent {
|
||||||
ev
|
ev
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn Constructor(global: &GlobalScope,
|
pub fn Constructor(worker: &ServiceWorkerGlobalScope,
|
||||||
type_: DOMString,
|
type_: DOMString,
|
||||||
init: &ExtendableMessageEventBinding::ExtendableMessageEventInit)
|
init: &ExtendableMessageEventBinding::ExtendableMessageEventInit)
|
||||||
-> Fallible<Root<ExtendableMessageEvent>> {
|
-> Fallible<Root<ExtendableMessageEvent>> {
|
||||||
|
let global = worker.upcast::<GlobalScope>();
|
||||||
rooted!(in(global.get_cx()) let data = init.data);
|
rooted!(in(global.get_cx()) let data = init.data);
|
||||||
let ev = ExtendableMessageEvent::new(global,
|
let ev = ExtendableMessageEvent::new(global,
|
||||||
Atom::from(type_),
|
Atom::from(type_),
|
||||||
|
|
|
@ -53,12 +53,12 @@ impl FocusEvent {
|
||||||
ev
|
ev
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn Constructor(global: &GlobalScope,
|
pub fn Constructor(window: &Window,
|
||||||
type_: DOMString,
|
type_: DOMString,
|
||||||
init: &FocusEventBinding::FocusEventInit) -> Fallible<Root<FocusEvent>> {
|
init: &FocusEventBinding::FocusEventInit) -> Fallible<Root<FocusEvent>> {
|
||||||
let bubbles = EventBubbles::from(init.parent.parent.bubbles);
|
let bubbles = EventBubbles::from(init.parent.parent.bubbles);
|
||||||
let cancelable = EventCancelable::from(init.parent.parent.cancelable);
|
let cancelable = EventCancelable::from(init.parent.parent.cancelable);
|
||||||
let event = FocusEvent::new(global.as_window(),
|
let event = FocusEvent::new(window,
|
||||||
type_,
|
type_,
|
||||||
bubbles,
|
bubbles,
|
||||||
cancelable,
|
cancelable,
|
||||||
|
|
|
@ -177,7 +177,7 @@ impl HTMLCanvasElement {
|
||||||
GLContextAttributes::default()
|
GLContextAttributes::default()
|
||||||
};
|
};
|
||||||
|
|
||||||
let maybe_ctx = WebGLRenderingContext::new(window.upcast(), self, size, attrs);
|
let maybe_ctx = WebGLRenderingContext::new(&window, self, size, attrs);
|
||||||
|
|
||||||
*self.context.borrow_mut() = maybe_ctx.map( |ctx| CanvasContext::WebGL(JS::from_ref(&*ctx)));
|
*self.context.borrow_mut() = maybe_ctx.map( |ctx| CanvasContext::WebGL(JS::from_ref(&*ctx)));
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,11 +16,11 @@ use dom::bindings::str::DOMString;
|
||||||
use dom::document::Document;
|
use dom::document::Document;
|
||||||
use dom::element::{AttributeMutation, Element, RawLayoutElementHelpers};
|
use dom::element::{AttributeMutation, Element, RawLayoutElementHelpers};
|
||||||
use dom::eventtarget::EventTarget;
|
use dom::eventtarget::EventTarget;
|
||||||
use dom::globalscope::GlobalScope;
|
|
||||||
use dom::htmlelement::HTMLElement;
|
use dom::htmlelement::HTMLElement;
|
||||||
use dom::node::{Node, NodeDamage, document_from_node, window_from_node};
|
use dom::node::{Node, NodeDamage, document_from_node, window_from_node};
|
||||||
use dom::values::UNSIGNED_LONG_MAX;
|
use dom::values::UNSIGNED_LONG_MAX;
|
||||||
use dom::virtualmethods::VirtualMethods;
|
use dom::virtualmethods::VirtualMethods;
|
||||||
|
use dom::window::Window;
|
||||||
use html5ever_atoms::LocalName;
|
use html5ever_atoms::LocalName;
|
||||||
use ipc_channel::ipc;
|
use ipc_channel::ipc;
|
||||||
use ipc_channel::router::ROUTER;
|
use ipc_channel::router::ROUTER;
|
||||||
|
@ -220,10 +220,10 @@ impl HTMLImageElement {
|
||||||
HTMLImageElementBinding::Wrap)
|
HTMLImageElementBinding::Wrap)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn Image(global: &GlobalScope,
|
pub fn Image(window: &Window,
|
||||||
width: Option<u32>,
|
width: Option<u32>,
|
||||||
height: Option<u32>) -> Fallible<Root<HTMLImageElement>> {
|
height: Option<u32>) -> Fallible<Root<HTMLImageElement>> {
|
||||||
let document = global.as_window().Document();
|
let document = window.Document();
|
||||||
let image = HTMLImageElement::new(local_name!("img"), None, &document);
|
let image = HTMLImageElement::new(local_name!("img"), None, &document);
|
||||||
if let Some(w) = width {
|
if let Some(w) = width {
|
||||||
image.SetWidth(w);
|
image.SetWidth(w);
|
||||||
|
|
|
@ -12,7 +12,6 @@ use dom::bindings::js::{Root, RootedReference};
|
||||||
use dom::bindings::reflector::reflect_dom_object;
|
use dom::bindings::reflector::reflect_dom_object;
|
||||||
use dom::bindings::str::DOMString;
|
use dom::bindings::str::DOMString;
|
||||||
use dom::event::Event;
|
use dom::event::Event;
|
||||||
use dom::globalscope::GlobalScope;
|
|
||||||
use dom::uievent::UIEvent;
|
use dom::uievent::UIEvent;
|
||||||
use dom::window::Window;
|
use dom::window::Window;
|
||||||
use msg::constellation_msg;
|
use msg::constellation_msg;
|
||||||
|
@ -101,10 +100,10 @@ impl KeyboardEvent {
|
||||||
ev
|
ev
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn Constructor(global: &GlobalScope,
|
pub fn Constructor(window: &Window,
|
||||||
type_: DOMString,
|
type_: DOMString,
|
||||||
init: &KeyboardEventBinding::KeyboardEventInit) -> Fallible<Root<KeyboardEvent>> {
|
init: &KeyboardEventBinding::KeyboardEventInit) -> Fallible<Root<KeyboardEvent>> {
|
||||||
let event = KeyboardEvent::new(global.as_window(),
|
let event = KeyboardEvent::new(window,
|
||||||
type_,
|
type_,
|
||||||
init.parent.parent.parent.bubbles,
|
init.parent.parent.parent.bubbles,
|
||||||
init.parent.parent.parent.cancelable,
|
init.parent.parent.parent.cancelable,
|
||||||
|
|
|
@ -12,7 +12,6 @@ use dom::bindings::reflector::reflect_dom_object;
|
||||||
use dom::bindings::str::DOMString;
|
use dom::bindings::str::DOMString;
|
||||||
use dom::event::{Event, EventBubbles, EventCancelable};
|
use dom::event::{Event, EventBubbles, EventCancelable};
|
||||||
use dom::eventtarget::EventTarget;
|
use dom::eventtarget::EventTarget;
|
||||||
use dom::globalscope::GlobalScope;
|
|
||||||
use dom::uievent::UIEvent;
|
use dom::uievent::UIEvent;
|
||||||
use dom::window::Window;
|
use dom::window::Window;
|
||||||
use std::cell::Cell;
|
use std::cell::Cell;
|
||||||
|
@ -82,12 +81,12 @@ impl MouseEvent {
|
||||||
ev
|
ev
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn Constructor(global: &GlobalScope,
|
pub fn Constructor(window: &Window,
|
||||||
type_: DOMString,
|
type_: DOMString,
|
||||||
init: &MouseEventBinding::MouseEventInit) -> Fallible<Root<MouseEvent>> {
|
init: &MouseEventBinding::MouseEventInit) -> Fallible<Root<MouseEvent>> {
|
||||||
let bubbles = EventBubbles::from(init.parent.parent.parent.bubbles);
|
let bubbles = EventBubbles::from(init.parent.parent.parent.bubbles);
|
||||||
let cancelable = EventCancelable::from(init.parent.parent.parent.cancelable);
|
let cancelable = EventCancelable::from(init.parent.parent.parent.cancelable);
|
||||||
let event = MouseEvent::new(global.as_window(),
|
let event = MouseEvent::new(window,
|
||||||
type_,
|
type_,
|
||||||
bubbles,
|
bubbles,
|
||||||
cancelable,
|
cancelable,
|
||||||
|
|
|
@ -22,11 +22,11 @@ use dom::characterdata::CharacterData;
|
||||||
use dom::document::Document;
|
use dom::document::Document;
|
||||||
use dom::documentfragment::DocumentFragment;
|
use dom::documentfragment::DocumentFragment;
|
||||||
use dom::element::Element;
|
use dom::element::Element;
|
||||||
use dom::globalscope::GlobalScope;
|
|
||||||
use dom::htmlbodyelement::HTMLBodyElement;
|
use dom::htmlbodyelement::HTMLBodyElement;
|
||||||
use dom::htmlscriptelement::HTMLScriptElement;
|
use dom::htmlscriptelement::HTMLScriptElement;
|
||||||
use dom::node::{Node, UnbindContext};
|
use dom::node::{Node, UnbindContext};
|
||||||
use dom::text::Text;
|
use dom::text::Text;
|
||||||
|
use dom::window::Window;
|
||||||
use heapsize::HeapSizeOf;
|
use heapsize::HeapSizeOf;
|
||||||
use js::jsapi::JSTracer;
|
use js::jsapi::JSTracer;
|
||||||
use std::cell::{Cell, UnsafeCell};
|
use std::cell::{Cell, UnsafeCell};
|
||||||
|
@ -70,8 +70,8 @@ impl Range {
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://dom.spec.whatwg.org/#dom-range
|
// https://dom.spec.whatwg.org/#dom-range
|
||||||
pub fn Constructor(global: &GlobalScope) -> Fallible<Root<Range>> {
|
pub fn Constructor(window: &Window) -> Fallible<Root<Range>> {
|
||||||
let document = global.as_window().Document();
|
let document = window.Document();
|
||||||
Ok(Range::new_with_doc(&document))
|
Ok(Range::new_with_doc(&document))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -319,7 +319,7 @@ impl ServiceWorkerGlobalScope {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn dispatch_activate(&self) {
|
fn dispatch_activate(&self) {
|
||||||
let event = ExtendableEvent::new(self.upcast(), atom!("activate"), false, false);
|
let event = ExtendableEvent::new(self, atom!("activate"), false, false);
|
||||||
let event = (&*event).upcast::<Event>();
|
let event = (&*event).upcast::<Event>();
|
||||||
self.upcast::<EventTarget>().dispatch_event(event);
|
self.upcast::<EventTarget>().dispatch_event(event);
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,8 +14,8 @@ use dom::bindings::js::RootedReference;
|
||||||
use dom::bindings::str::DOMString;
|
use dom::bindings::str::DOMString;
|
||||||
use dom::characterdata::CharacterData;
|
use dom::characterdata::CharacterData;
|
||||||
use dom::document::Document;
|
use dom::document::Document;
|
||||||
use dom::globalscope::GlobalScope;
|
|
||||||
use dom::node::Node;
|
use dom::node::Node;
|
||||||
|
use dom::window::Window;
|
||||||
|
|
||||||
/// An HTML text node.
|
/// An HTML text node.
|
||||||
#[dom_struct]
|
#[dom_struct]
|
||||||
|
@ -35,8 +35,8 @@ impl Text {
|
||||||
document, TextBinding::Wrap)
|
document, TextBinding::Wrap)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn Constructor(global: &GlobalScope, text: DOMString) -> Fallible<Root<Text>> {
|
pub fn Constructor(window: &Window, text: DOMString) -> Fallible<Root<Text>> {
|
||||||
let document = global.as_window().Document();
|
let document = window.Document();
|
||||||
Ok(Text::new(text, &document))
|
Ok(Text::new(text, &document))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ use dom::bindings::reflector::reflect_dom_object;
|
||||||
use dom::bindings::str::DOMString;
|
use dom::bindings::str::DOMString;
|
||||||
use dom::event::Event;
|
use dom::event::Event;
|
||||||
use dom::globalscope::GlobalScope;
|
use dom::globalscope::GlobalScope;
|
||||||
|
use dom::window::Window;
|
||||||
use servo_atoms::Atom;
|
use servo_atoms::Atom;
|
||||||
|
|
||||||
#[dom_struct]
|
#[dom_struct]
|
||||||
|
@ -46,9 +47,10 @@ impl TransitionEvent {
|
||||||
ev
|
ev
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn Constructor(global: &GlobalScope,
|
pub fn Constructor(window: &Window,
|
||||||
type_: DOMString,
|
type_: DOMString,
|
||||||
init: &TransitionEventInit) -> Fallible<Root<TransitionEvent>> {
|
init: &TransitionEventInit) -> Fallible<Root<TransitionEvent>> {
|
||||||
|
let global = window.upcast::<GlobalScope>();
|
||||||
Ok(TransitionEvent::new(global, Atom::from(type_), init))
|
Ok(TransitionEvent::new(global, Atom::from(type_), init))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,6 @@ use dom::bindings::js::Root;
|
||||||
use dom::bindings::reflector::reflect_dom_object;
|
use dom::bindings::reflector::reflect_dom_object;
|
||||||
use dom::bindings::str::DOMString;
|
use dom::bindings::str::DOMString;
|
||||||
use dom::event::{Event, EventBubbles, EventCancelable};
|
use dom::event::{Event, EventBubbles, EventCancelable};
|
||||||
use dom::globalscope::GlobalScope;
|
|
||||||
use dom::window::Window;
|
use dom::window::Window;
|
||||||
use servo_atoms::Atom;
|
use servo_atoms::Atom;
|
||||||
use std::cell::Cell;
|
use std::cell::Cell;
|
||||||
|
@ -52,12 +51,12 @@ impl UIEvent {
|
||||||
ev
|
ev
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn Constructor(global: &GlobalScope,
|
pub fn Constructor(window: &Window,
|
||||||
type_: DOMString,
|
type_: DOMString,
|
||||||
init: &UIEventBinding::UIEventInit) -> Fallible<Root<UIEvent>> {
|
init: &UIEventBinding::UIEventInit) -> Fallible<Root<UIEvent>> {
|
||||||
let bubbles = EventBubbles::from(init.parent.bubbles);
|
let bubbles = EventBubbles::from(init.parent.bubbles);
|
||||||
let cancelable = EventCancelable::from(init.parent.cancelable);
|
let cancelable = EventCancelable::from(init.parent.cancelable);
|
||||||
let event = UIEvent::new(global.as_window(),
|
let event = UIEvent::new(window,
|
||||||
type_,
|
type_,
|
||||||
bubbles, cancelable,
|
bubbles, cancelable,
|
||||||
init.view.r(), init.detail);
|
init.view.r(), init.detail);
|
||||||
|
|
|
@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::WebGLActiveInfoBinding::WebGLActiveInfoMet
|
||||||
use dom::bindings::js::Root;
|
use dom::bindings::js::Root;
|
||||||
use dom::bindings::reflector::{Reflector, reflect_dom_object};
|
use dom::bindings::reflector::{Reflector, reflect_dom_object};
|
||||||
use dom::bindings::str::DOMString;
|
use dom::bindings::str::DOMString;
|
||||||
use dom::globalscope::GlobalScope;
|
use dom::window::Window;
|
||||||
|
|
||||||
#[dom_struct]
|
#[dom_struct]
|
||||||
pub struct WebGLActiveInfo {
|
pub struct WebGLActiveInfo {
|
||||||
|
@ -29,8 +29,8 @@ impl WebGLActiveInfo {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(global: &GlobalScope, size: i32, ty: u32, name: DOMString) -> Root<WebGLActiveInfo> {
|
pub fn new(window: &Window, size: i32, ty: u32, name: DOMString) -> Root<WebGLActiveInfo> {
|
||||||
reflect_dom_object(box WebGLActiveInfo::new_inherited(size, ty, name), global, WebGLActiveInfoBinding::Wrap)
|
reflect_dom_object(box WebGLActiveInfo::new_inherited(size, ty, name), window, WebGLActiveInfoBinding::Wrap)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,8 @@ use canvas_traits::CanvasMsg;
|
||||||
use dom::bindings::codegen::Bindings::WebGLBufferBinding;
|
use dom::bindings::codegen::Bindings::WebGLBufferBinding;
|
||||||
use dom::bindings::js::Root;
|
use dom::bindings::js::Root;
|
||||||
use dom::bindings::reflector::reflect_dom_object;
|
use dom::bindings::reflector::reflect_dom_object;
|
||||||
use dom::globalscope::GlobalScope;
|
|
||||||
use dom::webglobject::WebGLObject;
|
use dom::webglobject::WebGLObject;
|
||||||
|
use dom::window::Window;
|
||||||
use ipc_channel::ipc::IpcSender;
|
use ipc_channel::ipc::IpcSender;
|
||||||
use std::cell::Cell;
|
use std::cell::Cell;
|
||||||
use webrender_traits;
|
use webrender_traits;
|
||||||
|
@ -40,21 +40,21 @@ impl WebGLBuffer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn maybe_new(global: &GlobalScope, renderer: IpcSender<CanvasMsg>)
|
pub fn maybe_new(window: &Window, renderer: IpcSender<CanvasMsg>)
|
||||||
-> Option<Root<WebGLBuffer>> {
|
-> Option<Root<WebGLBuffer>> {
|
||||||
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
|
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
|
||||||
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateBuffer(sender))).unwrap();
|
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateBuffer(sender))).unwrap();
|
||||||
|
|
||||||
let result = receiver.recv().unwrap();
|
let result = receiver.recv().unwrap();
|
||||||
result.map(|buffer_id| WebGLBuffer::new(global, renderer, buffer_id))
|
result.map(|buffer_id| WebGLBuffer::new(window, renderer, buffer_id))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(global: &GlobalScope,
|
pub fn new(window: &Window,
|
||||||
renderer: IpcSender<CanvasMsg>,
|
renderer: IpcSender<CanvasMsg>,
|
||||||
id: WebGLBufferId)
|
id: WebGLBufferId)
|
||||||
-> Root<WebGLBuffer> {
|
-> Root<WebGLBuffer> {
|
||||||
reflect_dom_object(box WebGLBuffer::new_inherited(renderer, id),
|
reflect_dom_object(box WebGLBuffer::new_inherited(renderer, id),
|
||||||
global, WebGLBufferBinding::Wrap)
|
window, WebGLBufferBinding::Wrap)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ use dom::bindings::js::Root;
|
||||||
use dom::bindings::reflector::reflect_dom_object;
|
use dom::bindings::reflector::reflect_dom_object;
|
||||||
use dom::bindings::str::DOMString;
|
use dom::bindings::str::DOMString;
|
||||||
use dom::event::{Event, EventBubbles, EventCancelable};
|
use dom::event::{Event, EventBubbles, EventCancelable};
|
||||||
use dom::globalscope::GlobalScope;
|
use dom::window::Window;
|
||||||
use servo_atoms::Atom;
|
use servo_atoms::Atom;
|
||||||
|
|
||||||
#[dom_struct]
|
#[dom_struct]
|
||||||
|
@ -41,25 +41,25 @@ impl WebGLContextEvent {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new_uninitialized(global_ref: &GlobalScope) -> Root<WebGLContextEvent> {
|
pub fn new_uninitialized(window: &Window) -> Root<WebGLContextEvent> {
|
||||||
// according to https://www.khronos.org/registry/webgl/specs/1.0/#5.15 this is
|
// according to https://www.khronos.org/registry/webgl/specs/1.0/#5.15 this is
|
||||||
// additional information or the empty string if no additional information is
|
// additional information or the empty string if no additional information is
|
||||||
// available.
|
// available.
|
||||||
let status_message = DOMString::new();
|
let status_message = DOMString::new();
|
||||||
reflect_dom_object(
|
reflect_dom_object(
|
||||||
box WebGLContextEvent::new_inherited(status_message),
|
box WebGLContextEvent::new_inherited(status_message),
|
||||||
global_ref,
|
window,
|
||||||
WebGLContextEventBinding::Wrap)
|
WebGLContextEventBinding::Wrap)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(global: &GlobalScope,
|
pub fn new(window: &Window,
|
||||||
type_: Atom,
|
type_: Atom,
|
||||||
bubbles: EventBubbles,
|
bubbles: EventBubbles,
|
||||||
cancelable: EventCancelable,
|
cancelable: EventCancelable,
|
||||||
status_message: DOMString) -> Root<WebGLContextEvent> {
|
status_message: DOMString) -> Root<WebGLContextEvent> {
|
||||||
let event = reflect_dom_object(
|
let event = reflect_dom_object(
|
||||||
box WebGLContextEvent::new_inherited(status_message),
|
box WebGLContextEvent::new_inherited(status_message),
|
||||||
global,
|
window,
|
||||||
WebGLContextEventBinding::Wrap);
|
WebGLContextEventBinding::Wrap);
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -70,7 +70,7 @@ impl WebGLContextEvent {
|
||||||
event
|
event
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn Constructor(global: &GlobalScope,
|
pub fn Constructor(window: &Window,
|
||||||
type_: DOMString,
|
type_: DOMString,
|
||||||
init: &WebGLContextEventInit) -> Fallible<Root<WebGLContextEvent>> {
|
init: &WebGLContextEventInit) -> Fallible<Root<WebGLContextEvent>> {
|
||||||
let status_message = match init.statusMessage.as_ref() {
|
let status_message = match init.statusMessage.as_ref() {
|
||||||
|
@ -82,7 +82,7 @@ impl WebGLContextEvent {
|
||||||
|
|
||||||
let cancelable = EventCancelable::from(init.parent.cancelable);
|
let cancelable = EventCancelable::from(init.parent.cancelable);
|
||||||
|
|
||||||
Ok(WebGLContextEvent::new(global,
|
Ok(WebGLContextEvent::new(window,
|
||||||
Atom::from(type_),
|
Atom::from(type_),
|
||||||
bubbles,
|
bubbles,
|
||||||
cancelable,
|
cancelable,
|
||||||
|
|
|
@ -9,10 +9,10 @@ use dom::bindings::codegen::Bindings::WebGLFramebufferBinding;
|
||||||
use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants;
|
use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants;
|
||||||
use dom::bindings::js::{HeapGCValue, JS, Root};
|
use dom::bindings::js::{HeapGCValue, JS, Root};
|
||||||
use dom::bindings::reflector::reflect_dom_object;
|
use dom::bindings::reflector::reflect_dom_object;
|
||||||
use dom::globalscope::GlobalScope;
|
|
||||||
use dom::webglobject::WebGLObject;
|
use dom::webglobject::WebGLObject;
|
||||||
use dom::webglrenderbuffer::WebGLRenderbuffer;
|
use dom::webglrenderbuffer::WebGLRenderbuffer;
|
||||||
use dom::webgltexture::WebGLTexture;
|
use dom::webgltexture::WebGLTexture;
|
||||||
|
use dom::window::Window;
|
||||||
use ipc_channel::ipc::IpcSender;
|
use ipc_channel::ipc::IpcSender;
|
||||||
use std::cell::Cell;
|
use std::cell::Cell;
|
||||||
use webrender_traits;
|
use webrender_traits;
|
||||||
|
@ -66,21 +66,21 @@ impl WebGLFramebuffer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn maybe_new(global: &GlobalScope, renderer: IpcSender<CanvasMsg>)
|
pub fn maybe_new(window: &Window, renderer: IpcSender<CanvasMsg>)
|
||||||
-> Option<Root<WebGLFramebuffer>> {
|
-> Option<Root<WebGLFramebuffer>> {
|
||||||
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
|
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
|
||||||
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateFramebuffer(sender))).unwrap();
|
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateFramebuffer(sender))).unwrap();
|
||||||
|
|
||||||
let result = receiver.recv().unwrap();
|
let result = receiver.recv().unwrap();
|
||||||
result.map(|fb_id| WebGLFramebuffer::new(global, renderer, fb_id))
|
result.map(|fb_id| WebGLFramebuffer::new(window, renderer, fb_id))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(global: &GlobalScope,
|
pub fn new(window: &Window,
|
||||||
renderer: IpcSender<CanvasMsg>,
|
renderer: IpcSender<CanvasMsg>,
|
||||||
id: WebGLFramebufferId)
|
id: WebGLFramebufferId)
|
||||||
-> Root<WebGLFramebuffer> {
|
-> Root<WebGLFramebuffer> {
|
||||||
reflect_dom_object(box WebGLFramebuffer::new_inherited(renderer, id),
|
reflect_dom_object(box WebGLFramebuffer::new_inherited(renderer, id),
|
||||||
global,
|
window,
|
||||||
WebGLFramebufferBinding::Wrap)
|
WebGLFramebufferBinding::Wrap)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
use dom::bindings::codegen::Bindings::WebGLObjectBinding;
|
use dom::bindings::codegen::Bindings::WebGLObjectBinding;
|
||||||
use dom::bindings::js::Root;
|
use dom::bindings::js::Root;
|
||||||
use dom::bindings::reflector::{Reflector, reflect_dom_object};
|
use dom::bindings::reflector::{Reflector, reflect_dom_object};
|
||||||
use dom::globalscope::GlobalScope;
|
use dom::window::Window;
|
||||||
|
|
||||||
#[dom_struct]
|
#[dom_struct]
|
||||||
pub struct WebGLObject {
|
pub struct WebGLObject {
|
||||||
|
@ -20,7 +20,7 @@ impl WebGLObject {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(global: &GlobalScope) -> Root<WebGLObject> {
|
pub fn new(window: &Window) -> Root<WebGLObject> {
|
||||||
reflect_dom_object(box WebGLObject::new_inherited(), global, WebGLObjectBinding::Wrap)
|
reflect_dom_object(box WebGLObject::new_inherited(), window, WebGLObjectBinding::Wrap)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,11 +9,11 @@ use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderi
|
||||||
use dom::bindings::js::{JS, MutNullableHeap, Root};
|
use dom::bindings::js::{JS, MutNullableHeap, Root};
|
||||||
use dom::bindings::reflector::{Reflectable, reflect_dom_object};
|
use dom::bindings::reflector::{Reflectable, reflect_dom_object};
|
||||||
use dom::bindings::str::DOMString;
|
use dom::bindings::str::DOMString;
|
||||||
use dom::globalscope::GlobalScope;
|
|
||||||
use dom::webglactiveinfo::WebGLActiveInfo;
|
use dom::webglactiveinfo::WebGLActiveInfo;
|
||||||
use dom::webglobject::WebGLObject;
|
use dom::webglobject::WebGLObject;
|
||||||
use dom::webglrenderingcontext::MAX_UNIFORM_AND_ATTRIBUTE_LEN;
|
use dom::webglrenderingcontext::MAX_UNIFORM_AND_ATTRIBUTE_LEN;
|
||||||
use dom::webglshader::WebGLShader;
|
use dom::webglshader::WebGLShader;
|
||||||
|
use dom::window::Window;
|
||||||
use ipc_channel::ipc::IpcSender;
|
use ipc_channel::ipc::IpcSender;
|
||||||
use std::cell::Cell;
|
use std::cell::Cell;
|
||||||
use webrender_traits;
|
use webrender_traits;
|
||||||
|
@ -49,21 +49,21 @@ impl WebGLProgram {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn maybe_new(global: &GlobalScope, renderer: IpcSender<CanvasMsg>)
|
pub fn maybe_new(window: &Window, renderer: IpcSender<CanvasMsg>)
|
||||||
-> Option<Root<WebGLProgram>> {
|
-> Option<Root<WebGLProgram>> {
|
||||||
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
|
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
|
||||||
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateProgram(sender))).unwrap();
|
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateProgram(sender))).unwrap();
|
||||||
|
|
||||||
let result = receiver.recv().unwrap();
|
let result = receiver.recv().unwrap();
|
||||||
result.map(|program_id| WebGLProgram::new(global, renderer, program_id))
|
result.map(|program_id| WebGLProgram::new(window, renderer, program_id))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(global: &GlobalScope,
|
pub fn new(window: &Window,
|
||||||
renderer: IpcSender<CanvasMsg>,
|
renderer: IpcSender<CanvasMsg>,
|
||||||
id: WebGLProgramId)
|
id: WebGLProgramId)
|
||||||
-> Root<WebGLProgram> {
|
-> Root<WebGLProgram> {
|
||||||
reflect_dom_object(box WebGLProgram::new_inherited(renderer, id),
|
reflect_dom_object(box WebGLProgram::new_inherited(renderer, id),
|
||||||
global,
|
window,
|
||||||
WebGLProgramBinding::Wrap)
|
WebGLProgramBinding::Wrap)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -231,7 +231,7 @@ impl WebGLProgram {
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
receiver.recv().unwrap().map(|(size, ty, name)|
|
receiver.recv().unwrap().map(|(size, ty, name)|
|
||||||
WebGLActiveInfo::new(&self.global(), size, ty, DOMString::from(name)))
|
WebGLActiveInfo::new(self.global().as_window(), size, ty, DOMString::from(name)))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// glGetActiveAttrib
|
/// glGetActiveAttrib
|
||||||
|
@ -245,7 +245,7 @@ impl WebGLProgram {
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
receiver.recv().unwrap().map(|(size, ty, name)|
|
receiver.recv().unwrap().map(|(size, ty, name)|
|
||||||
WebGLActiveInfo::new(&self.global(), size, ty, DOMString::from(name)))
|
WebGLActiveInfo::new(self.global().as_window(), size, ty, DOMString::from(name)))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// glGetAttribLocation
|
/// glGetAttribLocation
|
||||||
|
|
|
@ -8,8 +8,8 @@ use dom::bindings::codegen::Bindings::WebGLRenderbufferBinding;
|
||||||
use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants;
|
use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants;
|
||||||
use dom::bindings::js::Root;
|
use dom::bindings::js::Root;
|
||||||
use dom::bindings::reflector::reflect_dom_object;
|
use dom::bindings::reflector::reflect_dom_object;
|
||||||
use dom::globalscope::GlobalScope;
|
|
||||||
use dom::webglobject::WebGLObject;
|
use dom::webglobject::WebGLObject;
|
||||||
|
use dom::window::Window;
|
||||||
use ipc_channel::ipc::IpcSender;
|
use ipc_channel::ipc::IpcSender;
|
||||||
use std::cell::Cell;
|
use std::cell::Cell;
|
||||||
use webrender_traits;
|
use webrender_traits;
|
||||||
|
@ -42,21 +42,21 @@ impl WebGLRenderbuffer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn maybe_new(global: &GlobalScope, renderer: IpcSender<CanvasMsg>)
|
pub fn maybe_new(window: &Window, renderer: IpcSender<CanvasMsg>)
|
||||||
-> Option<Root<WebGLRenderbuffer>> {
|
-> Option<Root<WebGLRenderbuffer>> {
|
||||||
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
|
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
|
||||||
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateRenderbuffer(sender))).unwrap();
|
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateRenderbuffer(sender))).unwrap();
|
||||||
|
|
||||||
let result = receiver.recv().unwrap();
|
let result = receiver.recv().unwrap();
|
||||||
result.map(|renderbuffer_id| WebGLRenderbuffer::new(global, renderer, renderbuffer_id))
|
result.map(|renderbuffer_id| WebGLRenderbuffer::new(window, renderer, renderbuffer_id))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(global: &GlobalScope,
|
pub fn new(window: &Window,
|
||||||
renderer: IpcSender<CanvasMsg>,
|
renderer: IpcSender<CanvasMsg>,
|
||||||
id: WebGLRenderbufferId)
|
id: WebGLRenderbufferId)
|
||||||
-> Root<WebGLRenderbuffer> {
|
-> Root<WebGLRenderbuffer> {
|
||||||
reflect_dom_object(box WebGLRenderbuffer::new_inherited(renderer, id),
|
reflect_dom_object(box WebGLRenderbuffer::new_inherited(renderer, id),
|
||||||
global,
|
window,
|
||||||
WebGLRenderbufferBinding::Wrap)
|
WebGLRenderbufferBinding::Wrap)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,7 @@ use dom::webglrenderbuffer::WebGLRenderbuffer;
|
||||||
use dom::webglshader::WebGLShader;
|
use dom::webglshader::WebGLShader;
|
||||||
use dom::webgltexture::{TexParameterValue, WebGLTexture};
|
use dom::webgltexture::{TexParameterValue, WebGLTexture};
|
||||||
use dom::webgluniformlocation::WebGLUniformLocation;
|
use dom::webgluniformlocation::WebGLUniformLocation;
|
||||||
|
use dom::window::Window;
|
||||||
use euclid::size::Size2D;
|
use euclid::size::Size2D;
|
||||||
use ipc_channel::ipc::{self, IpcSender};
|
use ipc_channel::ipc::{self, IpcSender};
|
||||||
use js::conversions::ConversionBehavior;
|
use js::conversions::ConversionBehavior;
|
||||||
|
@ -135,13 +136,13 @@ pub struct WebGLRenderingContext {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebGLRenderingContext {
|
impl WebGLRenderingContext {
|
||||||
fn new_inherited(global: &GlobalScope,
|
fn new_inherited(window: &Window,
|
||||||
canvas: &HTMLCanvasElement,
|
canvas: &HTMLCanvasElement,
|
||||||
size: Size2D<i32>,
|
size: Size2D<i32>,
|
||||||
attrs: GLContextAttributes)
|
attrs: GLContextAttributes)
|
||||||
-> Result<WebGLRenderingContext, String> {
|
-> Result<WebGLRenderingContext, String> {
|
||||||
let (sender, receiver) = ipc::channel().unwrap();
|
let (sender, receiver) = ipc::channel().unwrap();
|
||||||
let constellation_chan = global.constellation_chan();
|
let constellation_chan = window.upcast::<GlobalScope>().constellation_chan();
|
||||||
constellation_chan.send(ConstellationMsg::CreateWebGLPaintThread(size, attrs, sender))
|
constellation_chan.send(ConstellationMsg::CreateWebGLPaintThread(size, attrs, sender))
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let result = receiver.recv().unwrap();
|
let result = receiver.recv().unwrap();
|
||||||
|
@ -167,13 +168,13 @@ impl WebGLRenderingContext {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(unrooted_must_root)]
|
#[allow(unrooted_must_root)]
|
||||||
pub fn new(global: &GlobalScope, canvas: &HTMLCanvasElement, size: Size2D<i32>, attrs: GLContextAttributes)
|
pub fn new(window: &Window, canvas: &HTMLCanvasElement, size: Size2D<i32>, attrs: GLContextAttributes)
|
||||||
-> Option<Root<WebGLRenderingContext>> {
|
-> Option<Root<WebGLRenderingContext>> {
|
||||||
match WebGLRenderingContext::new_inherited(global, canvas, size, attrs) {
|
match WebGLRenderingContext::new_inherited(window, canvas, size, attrs) {
|
||||||
Ok(ctx) => Some(reflect_dom_object(box ctx, global, WebGLRenderingContextBinding::Wrap)),
|
Ok(ctx) => Some(reflect_dom_object(box ctx, window, WebGLRenderingContextBinding::Wrap)),
|
||||||
Err(msg) => {
|
Err(msg) => {
|
||||||
error!("Couldn't create WebGLRenderingContext: {}", msg);
|
error!("Couldn't create WebGLRenderingContext: {}", msg);
|
||||||
let event = WebGLContextEvent::new(global,
|
let event = WebGLContextEvent::new(window,
|
||||||
atom!("webglcontextcreationerror"),
|
atom!("webglcontextcreationerror"),
|
||||||
EventBubbles::DoesNotBubble,
|
EventBubbles::DoesNotBubble,
|
||||||
EventCancelable::Cancelable,
|
EventCancelable::Cancelable,
|
||||||
|
@ -1248,27 +1249,27 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
||||||
// generated objects, either here or in the webgl thread
|
// generated objects, either here or in the webgl thread
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.5
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.5
|
||||||
fn CreateBuffer(&self) -> Option<Root<WebGLBuffer>> {
|
fn CreateBuffer(&self) -> Option<Root<WebGLBuffer>> {
|
||||||
WebGLBuffer::maybe_new(&self.global(), self.ipc_renderer.clone())
|
WebGLBuffer::maybe_new(self.global().as_window(), self.ipc_renderer.clone())
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.6
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.6
|
||||||
fn CreateFramebuffer(&self) -> Option<Root<WebGLFramebuffer>> {
|
fn CreateFramebuffer(&self) -> Option<Root<WebGLFramebuffer>> {
|
||||||
WebGLFramebuffer::maybe_new(&self.global(), self.ipc_renderer.clone())
|
WebGLFramebuffer::maybe_new(self.global().as_window(), self.ipc_renderer.clone())
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.7
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.7
|
||||||
fn CreateRenderbuffer(&self) -> Option<Root<WebGLRenderbuffer>> {
|
fn CreateRenderbuffer(&self) -> Option<Root<WebGLRenderbuffer>> {
|
||||||
WebGLRenderbuffer::maybe_new(&self.global(), self.ipc_renderer.clone())
|
WebGLRenderbuffer::maybe_new(self.global().as_window(), self.ipc_renderer.clone())
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.8
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.8
|
||||||
fn CreateTexture(&self) -> Option<Root<WebGLTexture>> {
|
fn CreateTexture(&self) -> Option<Root<WebGLTexture>> {
|
||||||
WebGLTexture::maybe_new(&self.global(), self.ipc_renderer.clone())
|
WebGLTexture::maybe_new(self.global().as_window(), self.ipc_renderer.clone())
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.9
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.9
|
||||||
fn CreateProgram(&self) -> Option<Root<WebGLProgram>> {
|
fn CreateProgram(&self) -> Option<Root<WebGLProgram>> {
|
||||||
WebGLProgram::maybe_new(&self.global(), self.ipc_renderer.clone())
|
WebGLProgram::maybe_new(self.global().as_window(), self.ipc_renderer.clone())
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.9
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.9
|
||||||
|
@ -1280,7 +1281,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
WebGLShader::maybe_new(&self.global(), self.ipc_renderer.clone(), shader_type)
|
WebGLShader::maybe_new(self.global().as_window(), self.ipc_renderer.clone(), shader_type)
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.5
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.5
|
||||||
|
@ -1612,7 +1613,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
||||||
name: DOMString) -> Option<Root<WebGLUniformLocation>> {
|
name: DOMString) -> Option<Root<WebGLUniformLocation>> {
|
||||||
program.and_then(|p| {
|
program.and_then(|p| {
|
||||||
handle_potential_webgl_error!(self, p.get_uniform_location(name), None)
|
handle_potential_webgl_error!(self, p.get_uniform_location(name), None)
|
||||||
.map(|location| WebGLUniformLocation::new(&self.global(), location, p.id()))
|
.map(|location| WebGLUniformLocation::new(self.global().as_window(), location, p.id()))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,8 @@ use dom::bindings::codegen::Bindings::WebGLShaderBinding;
|
||||||
use dom::bindings::js::Root;
|
use dom::bindings::js::Root;
|
||||||
use dom::bindings::reflector::reflect_dom_object;
|
use dom::bindings::reflector::reflect_dom_object;
|
||||||
use dom::bindings::str::DOMString;
|
use dom::bindings::str::DOMString;
|
||||||
use dom::globalscope::GlobalScope;
|
|
||||||
use dom::webglobject::WebGLObject;
|
use dom::webglobject::WebGLObject;
|
||||||
|
use dom::window::Window;
|
||||||
use ipc_channel::ipc::IpcSender;
|
use ipc_channel::ipc::IpcSender;
|
||||||
use std::cell::Cell;
|
use std::cell::Cell;
|
||||||
use std::sync::{ONCE_INIT, Once};
|
use std::sync::{ONCE_INIT, Once};
|
||||||
|
@ -66,23 +66,24 @@ impl WebGLShader {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn maybe_new(global: &GlobalScope,
|
pub fn maybe_new(window: &Window,
|
||||||
renderer: IpcSender<CanvasMsg>,
|
renderer: IpcSender<CanvasMsg>,
|
||||||
shader_type: u32) -> Option<Root<WebGLShader>> {
|
shader_type: u32)
|
||||||
|
-> Option<Root<WebGLShader>> {
|
||||||
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
|
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
|
||||||
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateShader(shader_type, sender))).unwrap();
|
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateShader(shader_type, sender))).unwrap();
|
||||||
|
|
||||||
let result = receiver.recv().unwrap();
|
let result = receiver.recv().unwrap();
|
||||||
result.map(|shader_id| WebGLShader::new(global, renderer, shader_id, shader_type))
|
result.map(|shader_id| WebGLShader::new(window, renderer, shader_id, shader_type))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(global: &GlobalScope,
|
pub fn new(window: &Window,
|
||||||
renderer: IpcSender<CanvasMsg>,
|
renderer: IpcSender<CanvasMsg>,
|
||||||
id: WebGLShaderId,
|
id: WebGLShaderId,
|
||||||
shader_type: u32)
|
shader_type: u32)
|
||||||
-> Root<WebGLShader> {
|
-> Root<WebGLShader> {
|
||||||
reflect_dom_object(box WebGLShader::new_inherited(renderer, id, shader_type),
|
reflect_dom_object(box WebGLShader::new_inherited(renderer, id, shader_type),
|
||||||
global,
|
window,
|
||||||
WebGLShaderBinding::Wrap)
|
WebGLShaderBinding::Wrap)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::WebGLShaderPrecisionFormatBinding;
|
||||||
use dom::bindings::codegen::Bindings::WebGLShaderPrecisionFormatBinding::WebGLShaderPrecisionFormatMethods;
|
use dom::bindings::codegen::Bindings::WebGLShaderPrecisionFormatBinding::WebGLShaderPrecisionFormatMethods;
|
||||||
use dom::bindings::js::Root;
|
use dom::bindings::js::Root;
|
||||||
use dom::bindings::reflector::{Reflector, reflect_dom_object};
|
use dom::bindings::reflector::{Reflector, reflect_dom_object};
|
||||||
use dom::globalscope::GlobalScope;
|
use dom::window::Window;
|
||||||
|
|
||||||
#[dom_struct]
|
#[dom_struct]
|
||||||
pub struct WebGLShaderPrecisionFormat {
|
pub struct WebGLShaderPrecisionFormat {
|
||||||
|
@ -27,13 +27,13 @@ impl WebGLShaderPrecisionFormat {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(global: &GlobalScope,
|
pub fn new(window: &Window,
|
||||||
range_min: i32,
|
range_min: i32,
|
||||||
range_max: i32,
|
range_max: i32,
|
||||||
precision: i32) -> Root<WebGLShaderPrecisionFormat> {
|
precision: i32) -> Root<WebGLShaderPrecisionFormat> {
|
||||||
reflect_dom_object(
|
reflect_dom_object(
|
||||||
box WebGLShaderPrecisionFormat::new_inherited(range_min, range_max, precision),
|
box WebGLShaderPrecisionFormat::new_inherited(range_min, range_max, precision),
|
||||||
global,
|
window,
|
||||||
WebGLShaderPrecisionFormatBinding::Wrap)
|
WebGLShaderPrecisionFormatBinding::Wrap)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,9 +9,9 @@ use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderi
|
||||||
use dom::bindings::codegen::Bindings::WebGLTextureBinding;
|
use dom::bindings::codegen::Bindings::WebGLTextureBinding;
|
||||||
use dom::bindings::js::Root;
|
use dom::bindings::js::Root;
|
||||||
use dom::bindings::reflector::reflect_dom_object;
|
use dom::bindings::reflector::reflect_dom_object;
|
||||||
use dom::globalscope::GlobalScope;
|
|
||||||
use dom::webgl_validations::types::{TexImageTarget, TexFormat, TexDataType};
|
use dom::webgl_validations::types::{TexImageTarget, TexFormat, TexDataType};
|
||||||
use dom::webglobject::WebGLObject;
|
use dom::webglobject::WebGLObject;
|
||||||
|
use dom::window::Window;
|
||||||
use ipc_channel::ipc::IpcSender;
|
use ipc_channel::ipc::IpcSender;
|
||||||
use std::cell::Cell;
|
use std::cell::Cell;
|
||||||
use std::cmp;
|
use std::cmp;
|
||||||
|
@ -61,21 +61,21 @@ impl WebGLTexture {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn maybe_new(global: &GlobalScope, renderer: IpcSender<CanvasMsg>)
|
pub fn maybe_new(window: &Window, renderer: IpcSender<CanvasMsg>)
|
||||||
-> Option<Root<WebGLTexture>> {
|
-> Option<Root<WebGLTexture>> {
|
||||||
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
|
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
|
||||||
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateTexture(sender))).unwrap();
|
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateTexture(sender))).unwrap();
|
||||||
|
|
||||||
let result = receiver.recv().unwrap();
|
let result = receiver.recv().unwrap();
|
||||||
result.map(|texture_id| WebGLTexture::new(global, renderer, texture_id))
|
result.map(|texture_id| WebGLTexture::new(window, renderer, texture_id))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(global: &GlobalScope,
|
pub fn new(window: &Window,
|
||||||
renderer: IpcSender<CanvasMsg>,
|
renderer: IpcSender<CanvasMsg>,
|
||||||
id: WebGLTextureId)
|
id: WebGLTextureId)
|
||||||
-> Root<WebGLTexture> {
|
-> Root<WebGLTexture> {
|
||||||
reflect_dom_object(box WebGLTexture::new_inherited(renderer, id),
|
reflect_dom_object(box WebGLTexture::new_inherited(renderer, id),
|
||||||
global,
|
window,
|
||||||
WebGLTextureBinding::Wrap)
|
WebGLTextureBinding::Wrap)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
use dom::bindings::codegen::Bindings::WebGLUniformLocationBinding;
|
use dom::bindings::codegen::Bindings::WebGLUniformLocationBinding;
|
||||||
use dom::bindings::js::Root;
|
use dom::bindings::js::Root;
|
||||||
use dom::bindings::reflector::{Reflector, reflect_dom_object};
|
use dom::bindings::reflector::{Reflector, reflect_dom_object};
|
||||||
use dom::globalscope::GlobalScope;
|
use dom::window::Window;
|
||||||
use webrender_traits::WebGLProgramId;
|
use webrender_traits::WebGLProgramId;
|
||||||
|
|
||||||
#[dom_struct]
|
#[dom_struct]
|
||||||
|
@ -27,12 +27,12 @@ impl WebGLUniformLocation {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(global: &GlobalScope,
|
pub fn new(window: &Window,
|
||||||
id: i32,
|
id: i32,
|
||||||
program_id: WebGLProgramId)
|
program_id: WebGLProgramId)
|
||||||
-> Root<WebGLUniformLocation> {
|
-> Root<WebGLUniformLocation> {
|
||||||
reflect_dom_object(box WebGLUniformLocation::new_inherited(id, program_id),
|
reflect_dom_object(box WebGLUniformLocation::new_inherited(id, program_id),
|
||||||
global,
|
window,
|
||||||
WebGLUniformLocationBinding::Wrap)
|
WebGLUniformLocationBinding::Wrap)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,10 +11,9 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
[Constructor,
|
[Constructor,
|
||||||
// Constructor(DOMString transformList),
|
// Constructor(DOMString transformList),
|
||||||
Constructor(sequence<unrestricted double> numberSequence)
|
Constructor(sequence<unrestricted double> numberSequence),
|
||||||
// Exposed=(Window,Worker)
|
Exposed=(Window,Worker)]
|
||||||
]
|
|
||||||
interface DOMMatrix : DOMMatrixReadOnly {
|
interface DOMMatrix : DOMMatrixReadOnly {
|
||||||
|
|
||||||
[NewObject, Throws] static DOMMatrix fromMatrix(optional DOMMatrixInit other);
|
[NewObject, Throws] static DOMMatrix fromMatrix(optional DOMMatrixInit other);
|
||||||
|
|
|
@ -11,10 +11,9 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
[Constructor,
|
[Constructor,
|
||||||
// Constructor(DOMString transformList)
|
// Constructor(DOMString transformList)
|
||||||
Constructor(sequence<unrestricted double> numberSequence),
|
Constructor(sequence<unrestricted double> numberSequence),
|
||||||
// Exposed=(Window,Worker)
|
Exposed=(Window,Worker)]
|
||||||
]
|
|
||||||
interface DOMMatrixReadOnly {
|
interface DOMMatrixReadOnly {
|
||||||
|
|
||||||
[NewObject, Throws] static DOMMatrixReadOnly fromMatrix(optional DOMMatrixInit other);
|
[NewObject, Throws] static DOMMatrixReadOnly fromMatrix(optional DOMMatrixInit other);
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.7
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.7
|
||||||
//
|
//
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
interface WebGLActiveInfo {
|
interface WebGLActiveInfo {
|
||||||
readonly attribute GLint size;
|
readonly attribute GLint size;
|
||||||
readonly attribute GLenum type;
|
readonly attribute GLenum type;
|
||||||
|
|
|
@ -6,5 +6,6 @@
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.4
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.4
|
||||||
//
|
//
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
interface WebGLBuffer : WebGLObject {
|
interface WebGLBuffer : WebGLObject {
|
||||||
};
|
};
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.15
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.15
|
||||||
[Constructor(DOMString type, optional WebGLContextEventInit eventInit)]
|
[Constructor(DOMString type, optional WebGLContextEventInit eventInit),
|
||||||
|
Exposed=Window]
|
||||||
interface WebGLContextEvent : Event {
|
interface WebGLContextEvent : Event {
|
||||||
readonly attribute DOMString statusMessage;
|
readonly attribute DOMString statusMessage;
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,5 +6,6 @@
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.7
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.7
|
||||||
//
|
//
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
interface WebGLFramebuffer : WebGLObject {
|
interface WebGLFramebuffer : WebGLObject {
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,5 +6,6 @@
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.3
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.3
|
||||||
//
|
//
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
interface WebGLObject {
|
interface WebGLObject {
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,5 +6,6 @@
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.6
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.6
|
||||||
//
|
//
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
interface WebGLProgram : WebGLObject {
|
interface WebGLProgram : WebGLObject {
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,5 +6,6 @@
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.5
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.5
|
||||||
//
|
//
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
interface WebGLRenderbuffer : WebGLObject {
|
interface WebGLRenderbuffer : WebGLObject {
|
||||||
};
|
};
|
||||||
|
|
|
@ -41,7 +41,7 @@ dictionary WebGLContextAttributes {
|
||||||
GLboolean failIfMajorPerformanceCaveat = false;
|
GLboolean failIfMajorPerformanceCaveat = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
[NoInterfaceObject]
|
[Exposed=Window, NoInterfaceObject]
|
||||||
interface WebGLRenderingContextBase
|
interface WebGLRenderingContextBase
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -762,6 +762,7 @@ interface WebGLRenderingContextBase
|
||||||
void viewport(GLint x, GLint y, GLsizei width, GLsizei height);
|
void viewport(GLint x, GLint y, GLsizei width, GLsizei height);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
interface WebGLRenderingContext
|
interface WebGLRenderingContext
|
||||||
{
|
{
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,5 +6,6 @@
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.8
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.8
|
||||||
//
|
//
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
interface WebGLShader : WebGLObject {
|
interface WebGLShader : WebGLObject {
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.7
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.7
|
||||||
//
|
//
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
interface WebGLShaderPrecisionFormat {
|
interface WebGLShaderPrecisionFormat {
|
||||||
readonly attribute GLint rangeMin;
|
readonly attribute GLint rangeMin;
|
||||||
readonly attribute GLint rangeMax;
|
readonly attribute GLint rangeMax;
|
||||||
|
|
|
@ -6,5 +6,6 @@
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/#5.9
|
// https://www.khronos.org/registry/webgl/specs/latest/#5.9
|
||||||
//
|
//
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
interface WebGLTexture : WebGLObject {
|
interface WebGLTexture : WebGLObject {
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,5 +6,6 @@
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.10
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.10
|
||||||
//
|
//
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
interface WebGLUniformLocation {
|
interface WebGLUniformLocation {
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,6 +11,8 @@ test_interfaces([
|
||||||
"Blob",
|
"Blob",
|
||||||
"CloseEvent",
|
"CloseEvent",
|
||||||
"CSSStyleDeclaration",
|
"CSSStyleDeclaration",
|
||||||
|
"DOMMatrix",
|
||||||
|
"DOMMatrixReadOnly",
|
||||||
"DOMPoint",
|
"DOMPoint",
|
||||||
"DOMPointReadOnly",
|
"DOMPointReadOnly",
|
||||||
"DOMQuad",
|
"DOMQuad",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue