mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Auto merge of #8267 - Ms2ger:cleanup, r=frewsxcv
Various improvements. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8267) <!-- Reviewable:end -->
This commit is contained in:
commit
1dfc0481ef
9 changed files with 55 additions and 50 deletions
|
@ -2000,6 +2000,7 @@ def UnionTypes(descriptors, dictionaries, callbacks, config):
|
||||||
'dom::bindings::conversions::StringificationBehavior',
|
'dom::bindings::conversions::StringificationBehavior',
|
||||||
'dom::bindings::error::throw_not_in_union',
|
'dom::bindings::error::throw_not_in_union',
|
||||||
'dom::bindings::js::Root',
|
'dom::bindings::js::Root',
|
||||||
|
'dom::bindings::str::USVString',
|
||||||
'dom::types::*',
|
'dom::types::*',
|
||||||
'js::jsapi::JSContext',
|
'js::jsapi::JSContext',
|
||||||
'js::jsapi::{HandleValue, MutableHandleValue}',
|
'js::jsapi::{HandleValue, MutableHandleValue}',
|
||||||
|
@ -3492,6 +3493,9 @@ def getUnionTypeTemplateVars(type, descriptorProvider):
|
||||||
elif type.isDOMString():
|
elif type.isDOMString():
|
||||||
name = type.name
|
name = type.name
|
||||||
typeName = "DOMString"
|
typeName = "DOMString"
|
||||||
|
elif type.isUSVString():
|
||||||
|
name = type.name
|
||||||
|
typeName = "USVString"
|
||||||
elif type.isPrimitive():
|
elif type.isPrimitive():
|
||||||
name = type.name
|
name = type.name
|
||||||
typeName = builtinNames[type.tag()]
|
typeName = builtinNames[type.tag()]
|
||||||
|
|
|
@ -12,6 +12,8 @@ use dom::bindings::codegen::Bindings::TestBindingBinding::TestEnum::_empty;
|
||||||
use dom::bindings::codegen::UnionTypes::BlobOrString;
|
use dom::bindings::codegen::UnionTypes::BlobOrString;
|
||||||
use dom::bindings::codegen::UnionTypes::EventOrString;
|
use dom::bindings::codegen::UnionTypes::EventOrString;
|
||||||
use dom::bindings::codegen::UnionTypes::EventOrString::eString;
|
use dom::bindings::codegen::UnionTypes::EventOrString::eString;
|
||||||
|
use dom::bindings::codegen::UnionTypes::EventOrUSVString;
|
||||||
|
use dom::bindings::codegen::UnionTypes::EventOrUSVString::eUSVString;
|
||||||
use dom::bindings::codegen::UnionTypes::HTMLElementOrLong;
|
use dom::bindings::codegen::UnionTypes::HTMLElementOrLong;
|
||||||
use dom::bindings::codegen::UnionTypes::HTMLElementOrLong::eLong;
|
use dom::bindings::codegen::UnionTypes::HTMLElementOrLong::eLong;
|
||||||
use dom::bindings::global::{GlobalField, GlobalRef};
|
use dom::bindings::global::{GlobalField, GlobalRef};
|
||||||
|
@ -77,6 +79,8 @@ impl TestBindingMethods for TestBinding {
|
||||||
fn SetUnionAttribute(&self, _: HTMLElementOrLong) {}
|
fn SetUnionAttribute(&self, _: HTMLElementOrLong) {}
|
||||||
fn Union2Attribute(&self) -> EventOrString { eString("".to_owned()) }
|
fn Union2Attribute(&self) -> EventOrString { eString("".to_owned()) }
|
||||||
fn SetUnion2Attribute(&self, _: EventOrString) {}
|
fn SetUnion2Attribute(&self, _: EventOrString) {}
|
||||||
|
fn Union3Attribute(&self) -> EventOrUSVString { eUSVString(USVString("".to_owned())) }
|
||||||
|
fn SetUnion3Attribute(&self, _: EventOrUSVString) {}
|
||||||
fn ArrayAttribute(&self, _: *mut JSContext) -> *mut JSObject { NullValue().to_object_or_null() }
|
fn ArrayAttribute(&self, _: *mut JSContext) -> *mut JSObject { NullValue().to_object_or_null() }
|
||||||
fn AnyAttribute(&self, _: *mut JSContext) -> JSVal { NullValue() }
|
fn AnyAttribute(&self, _: *mut JSContext) -> JSVal { NullValue() }
|
||||||
fn SetAnyAttribute(&self, _: *mut JSContext, _: HandleValue) {}
|
fn SetAnyAttribute(&self, _: *mut JSContext, _: HandleValue) {}
|
||||||
|
|
|
@ -22,22 +22,20 @@ use util::str::DOMString;
|
||||||
#[dom_struct]
|
#[dom_struct]
|
||||||
pub struct TextEncoder {
|
pub struct TextEncoder {
|
||||||
reflector_: Reflector,
|
reflector_: Reflector,
|
||||||
encoding: DOMString,
|
|
||||||
#[ignore_heap_size_of = "Defined in rust-encoding"]
|
#[ignore_heap_size_of = "Defined in rust-encoding"]
|
||||||
encoder: EncodingRef,
|
encoder: EncodingRef,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl TextEncoder {
|
impl TextEncoder {
|
||||||
fn new_inherited(encoding: DOMString, encoder: EncodingRef) -> TextEncoder {
|
fn new_inherited(encoder: EncodingRef) -> TextEncoder {
|
||||||
TextEncoder {
|
TextEncoder {
|
||||||
reflector_: Reflector::new(),
|
reflector_: Reflector::new(),
|
||||||
encoding: encoding,
|
|
||||||
encoder: encoder,
|
encoder: encoder,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(global: GlobalRef, encoding: DOMString, encoder: EncodingRef) -> Root<TextEncoder> {
|
pub fn new(global: GlobalRef, encoder: EncodingRef) -> Root<TextEncoder> {
|
||||||
reflect_dom_object(box TextEncoder::new_inherited(encoding, encoder),
|
reflect_dom_object(box TextEncoder::new_inherited(encoder),
|
||||||
global,
|
global,
|
||||||
TextEncoderBinding::Wrap)
|
TextEncoderBinding::Wrap)
|
||||||
}
|
}
|
||||||
|
@ -55,7 +53,7 @@ impl TextEncoder {
|
||||||
|
|
||||||
match encoding.name() {
|
match encoding.name() {
|
||||||
"utf-8" | "utf-16be" | "utf-16le" => {
|
"utf-8" | "utf-16be" | "utf-16le" => {
|
||||||
Ok(TextEncoder::new(global, encoding.name().to_owned(), encoding))
|
Ok(TextEncoder::new(global, encoding))
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
debug!("Encoding Not UTF");
|
debug!("Encoding Not UTF");
|
||||||
|
@ -68,7 +66,7 @@ impl TextEncoder {
|
||||||
impl TextEncoderMethods for TextEncoder {
|
impl TextEncoderMethods for TextEncoder {
|
||||||
// https://encoding.spec.whatwg.org/#dom-textencoder-encoding
|
// https://encoding.spec.whatwg.org/#dom-textencoder-encoding
|
||||||
fn Encoding(&self) -> DOMString {
|
fn Encoding(&self) -> DOMString {
|
||||||
self.encoding.clone()
|
self.encoder.name().to_owned()
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(unsafe_code)]
|
#[allow(unsafe_code)]
|
||||||
|
|
|
@ -5,11 +5,12 @@
|
||||||
use dom::bindings::cell::DOMRefCell;
|
use dom::bindings::cell::DOMRefCell;
|
||||||
use dom::bindings::codegen::Bindings::URLSearchParamsBinding;
|
use dom::bindings::codegen::Bindings::URLSearchParamsBinding;
|
||||||
use dom::bindings::codegen::Bindings::URLSearchParamsBinding::URLSearchParamsMethods;
|
use dom::bindings::codegen::Bindings::URLSearchParamsBinding::URLSearchParamsMethods;
|
||||||
use dom::bindings::codegen::UnionTypes::StringOrURLSearchParams;
|
use dom::bindings::codegen::UnionTypes::USVStringOrURLSearchParams;
|
||||||
use dom::bindings::codegen::UnionTypes::StringOrURLSearchParams::{eString, eURLSearchParams};
|
use dom::bindings::codegen::UnionTypes::USVStringOrURLSearchParams::{eUSVString, eURLSearchParams};
|
||||||
use dom::bindings::error::Fallible;
|
use dom::bindings::error::Fallible;
|
||||||
use dom::bindings::global::GlobalRef;
|
use dom::bindings::global::GlobalRef;
|
||||||
use dom::bindings::js::Root;
|
use dom::bindings::js::Root;
|
||||||
|
use dom::bindings::str::USVString;
|
||||||
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
||||||
use encoding::types::EncodingRef;
|
use encoding::types::EncodingRef;
|
||||||
use url::form_urlencoded::{parse, serialize_with_encoding};
|
use url::form_urlencoded::{parse, serialize_with_encoding};
|
||||||
|
@ -20,7 +21,7 @@ use util::str::DOMString;
|
||||||
pub struct URLSearchParams {
|
pub struct URLSearchParams {
|
||||||
reflector_: Reflector,
|
reflector_: Reflector,
|
||||||
// https://url.spec.whatwg.org/#concept-urlsearchparams-list
|
// https://url.spec.whatwg.org/#concept-urlsearchparams-list
|
||||||
list: DOMRefCell<Vec<(DOMString, DOMString)>>,
|
list: DOMRefCell<Vec<(String, String)>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl URLSearchParams {
|
impl URLSearchParams {
|
||||||
|
@ -37,14 +38,14 @@ impl URLSearchParams {
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://url.spec.whatwg.org/#dom-urlsearchparams-urlsearchparams
|
// https://url.spec.whatwg.org/#dom-urlsearchparams-urlsearchparams
|
||||||
pub fn Constructor(global: GlobalRef, init: Option<StringOrURLSearchParams>) ->
|
pub fn Constructor(global: GlobalRef, init: Option<USVStringOrURLSearchParams>) ->
|
||||||
Fallible<Root<URLSearchParams>> {
|
Fallible<Root<URLSearchParams>> {
|
||||||
// Step 1.
|
// Step 1.
|
||||||
let query = URLSearchParams::new(global);
|
let query = URLSearchParams::new(global);
|
||||||
match init {
|
match init {
|
||||||
Some(eString(init)) => {
|
Some(eUSVString(init)) => {
|
||||||
// Step 2.
|
// Step 2.
|
||||||
*query.r().list.borrow_mut() = parse(init.as_bytes());
|
*query.r().list.borrow_mut() = parse(init.0.as_bytes());
|
||||||
},
|
},
|
||||||
Some(eURLSearchParams(init)) => {
|
Some(eURLSearchParams(init)) => {
|
||||||
// Step 3.
|
// Step 3.
|
||||||
|
@ -59,27 +60,27 @@ impl URLSearchParams {
|
||||||
|
|
||||||
impl URLSearchParamsMethods for URLSearchParams {
|
impl URLSearchParamsMethods for URLSearchParams {
|
||||||
// https://url.spec.whatwg.org/#dom-urlsearchparams-append
|
// https://url.spec.whatwg.org/#dom-urlsearchparams-append
|
||||||
fn Append(&self, name: DOMString, value: DOMString) {
|
fn Append(&self, name: USVString, value: USVString) {
|
||||||
// Step 1.
|
// Step 1.
|
||||||
self.list.borrow_mut().push((name, value));
|
self.list.borrow_mut().push((name.0, value.0));
|
||||||
// Step 2.
|
// Step 2.
|
||||||
self.update_steps();
|
self.update_steps();
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://url.spec.whatwg.org/#dom-urlsearchparams-delete
|
// https://url.spec.whatwg.org/#dom-urlsearchparams-delete
|
||||||
fn Delete(&self, name: DOMString) {
|
fn Delete(&self, name: USVString) {
|
||||||
// Step 1.
|
// Step 1.
|
||||||
self.list.borrow_mut().retain(|&(ref k, _)| k != &name);
|
self.list.borrow_mut().retain(|&(ref k, _)| k != &name.0);
|
||||||
// Step 2.
|
// Step 2.
|
||||||
self.update_steps();
|
self.update_steps();
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://url.spec.whatwg.org/#dom-urlsearchparams-get
|
// https://url.spec.whatwg.org/#dom-urlsearchparams-get
|
||||||
fn Get(&self, name: DOMString) -> Option<DOMString> {
|
fn Get(&self, name: USVString) -> Option<USVString> {
|
||||||
let list = self.list.borrow();
|
let list = self.list.borrow();
|
||||||
list.iter().filter_map(|&(ref k, ref v)| {
|
list.iter().filter_map(|&(ref k, ref v)| {
|
||||||
if k == &name {
|
if k == &name.0 {
|
||||||
Some(v.clone())
|
Some(USVString(v.clone()))
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
@ -87,31 +88,31 @@ impl URLSearchParamsMethods for URLSearchParams {
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://url.spec.whatwg.org/#dom-urlsearchparams-has
|
// https://url.spec.whatwg.org/#dom-urlsearchparams-has
|
||||||
fn Has(&self, name: DOMString) -> bool {
|
fn Has(&self, name: USVString) -> bool {
|
||||||
let list = self.list.borrow();
|
let list = self.list.borrow();
|
||||||
list.iter().find(|&&(ref k, _)| k == &name).is_some()
|
list.iter().any(|&(ref k, _)| k == &name.0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://url.spec.whatwg.org/#dom-urlsearchparams-set
|
// https://url.spec.whatwg.org/#dom-urlsearchparams-set
|
||||||
fn Set(&self, name: DOMString, value: DOMString) {
|
fn Set(&self, name: USVString, value: USVString) {
|
||||||
let mut list = self.list.borrow_mut();
|
let mut list = self.list.borrow_mut();
|
||||||
let mut index = None;
|
let mut index = None;
|
||||||
let mut i = 0;
|
let mut i = 0;
|
||||||
list.retain(|&(ref k, _)| {
|
list.retain(|&(ref k, _)| {
|
||||||
if index.is_none() {
|
if index.is_none() {
|
||||||
if k == &name {
|
if k == &name.0 {
|
||||||
index = Some(i);
|
index = Some(i);
|
||||||
} else {
|
} else {
|
||||||
i += 1;
|
i += 1;
|
||||||
}
|
}
|
||||||
true
|
true
|
||||||
} else {
|
} else {
|
||||||
k != &name
|
k != &name.0
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
match index {
|
match index {
|
||||||
Some(index) => list[index].1 = value,
|
Some(index) => list[index].1 = value.0,
|
||||||
None => list.push((name, value)),
|
None => list.push((name.0, value.0)),
|
||||||
};
|
};
|
||||||
self.update_steps();
|
self.update_steps();
|
||||||
}
|
}
|
||||||
|
@ -125,7 +126,7 @@ impl URLSearchParamsMethods for URLSearchParams {
|
||||||
|
|
||||||
impl URLSearchParams {
|
impl URLSearchParams {
|
||||||
// https://url.spec.whatwg.org/#concept-urlencoded-serializer
|
// https://url.spec.whatwg.org/#concept-urlencoded-serializer
|
||||||
pub fn serialize(&self, encoding: Option<EncodingRef>) -> DOMString {
|
pub fn serialize(&self, encoding: Option<EncodingRef>) -> String {
|
||||||
let list = self.list.borrow();
|
let list = self.list.borrow();
|
||||||
serialize_with_encoding(list.iter(), encoding)
|
serialize_with_encoding(list.iter(), encoding)
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,6 +89,7 @@ interface TestBinding {
|
||||||
attribute Blob interfaceAttribute;
|
attribute Blob interfaceAttribute;
|
||||||
attribute (HTMLElement or long) unionAttribute;
|
attribute (HTMLElement or long) unionAttribute;
|
||||||
attribute (Event or DOMString) union2Attribute;
|
attribute (Event or DOMString) union2Attribute;
|
||||||
|
attribute (Event or USVString) union3Attribute;
|
||||||
readonly attribute Uint8ClampedArray arrayAttribute;
|
readonly attribute Uint8ClampedArray arrayAttribute;
|
||||||
attribute any anyAttribute;
|
attribute any anyAttribute;
|
||||||
attribute object objectAttribute;
|
attribute object objectAttribute;
|
||||||
|
|
|
@ -7,14 +7,14 @@
|
||||||
* https://url.spec.whatwg.org/#interface-urlsearchparams
|
* https://url.spec.whatwg.org/#interface-urlsearchparams
|
||||||
*/
|
*/
|
||||||
|
|
||||||
[Constructor(optional (DOMString or URLSearchParams) init/* = ""*/)]
|
[Constructor(optional (USVString or URLSearchParams) init/* = ""*/)]
|
||||||
interface URLSearchParams {
|
interface URLSearchParams {
|
||||||
void append(DOMString name, DOMString value);
|
void append(USVString name, USVString value);
|
||||||
void delete(DOMString name);
|
void delete(USVString name);
|
||||||
DOMString? get(DOMString name);
|
USVString? get(USVString name);
|
||||||
// sequence<DOMString> getAll(DOMString name);
|
// sequence<USVString> getAll(USVString name);
|
||||||
boolean has(DOMString name);
|
boolean has(USVString name);
|
||||||
void set(DOMString name, DOMString value);
|
void set(USVString name, USVString value);
|
||||||
// iterable<USVString, USVString>;
|
// iterable<USVString, USVString>;
|
||||||
stringifier;
|
stringifier;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1110,7 +1110,7 @@ impl Extractable for SendParam {
|
||||||
},
|
},
|
||||||
eURLSearchParams(ref usp) => {
|
eURLSearchParams(ref usp) => {
|
||||||
// Default encoding is UTF-8.
|
// Default encoding is UTF-8.
|
||||||
usp.r().serialize(None).as_bytes().to_owned()
|
usp.r().serialize(None).into_bytes()
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1656,18 +1656,15 @@ impl ScriptTask {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn notify_devtools(&self, title: DOMString, url: Url, ids: (PipelineId, Option<WorkerId>)) {
|
fn notify_devtools(&self, title: DOMString, url: Url, ids: (PipelineId, Option<WorkerId>)) {
|
||||||
match self.devtools_chan {
|
if let Some(ref chan) = self.devtools_chan {
|
||||||
None => {}
|
let page_info = DevtoolsPageInfo {
|
||||||
Some(ref chan) => {
|
title: title,
|
||||||
let page_info = DevtoolsPageInfo {
|
url: url,
|
||||||
title: title,
|
};
|
||||||
url: url,
|
chan.send(ScriptToDevtoolsControlMsg::NewGlobal(
|
||||||
};
|
ids,
|
||||||
chan.send(ScriptToDevtoolsControlMsg::NewGlobal(
|
self.devtools_sender.clone(),
|
||||||
ids,
|
page_info)).unwrap();
|
||||||
self.devtools_sender.clone(),
|
|
||||||
page_info)).unwrap();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -114,7 +114,7 @@ pub fn handle_get_frame_id(page: &Rc<Page>,
|
||||||
|
|
||||||
pub fn handle_find_element_css(page: &Rc<Page>, _pipeline: PipelineId, selector: String,
|
pub fn handle_find_element_css(page: &Rc<Page>, _pipeline: PipelineId, selector: String,
|
||||||
reply: IpcSender<Result<Option<String>, ()>>) {
|
reply: IpcSender<Result<Option<String>, ()>>) {
|
||||||
reply.send(match page.document().r().QuerySelector(selector.clone()) {
|
reply.send(match page.document().r().QuerySelector(selector) {
|
||||||
Ok(node) => {
|
Ok(node) => {
|
||||||
Ok(node.map(|x| x.upcast::<Node>().get_unique_id()))
|
Ok(node.map(|x| x.upcast::<Node>().get_unique_id()))
|
||||||
}
|
}
|
||||||
|
@ -126,7 +126,7 @@ pub fn handle_find_elements_css(page: &Rc<Page>,
|
||||||
_pipeline: PipelineId,
|
_pipeline: PipelineId,
|
||||||
selector: String,
|
selector: String,
|
||||||
reply: IpcSender<Result<Vec<String>, ()>>) {
|
reply: IpcSender<Result<Vec<String>, ()>>) {
|
||||||
reply.send(match page.document().r().QuerySelectorAll(selector.clone()) {
|
reply.send(match page.document().r().QuerySelectorAll(selector) {
|
||||||
Ok(ref nodes) => {
|
Ok(ref nodes) => {
|
||||||
let mut result = Vec::with_capacity(nodes.r().Length() as usize);
|
let mut result = Vec::with_capacity(nodes.r().Length() as usize);
|
||||||
for i in 0..nodes.r().Length() {
|
for i in 0..nodes.r().Length() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue