mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Replace many uses of Attr::Value() by Attr::value()
The later only borrows the attribute, without copying its value as a string.
This commit is contained in:
parent
105d990845
commit
51418fc348
5 changed files with 30 additions and 28 deletions
|
@ -1581,11 +1581,11 @@ impl VirtualMethods for Element {
|
||||||
if !tree_in_doc { return; }
|
if !tree_in_doc { return; }
|
||||||
|
|
||||||
if let Some(ref attr) = self.get_attribute(&ns!(""), &atom!("id")) {
|
if let Some(ref attr) = self.get_attribute(&ns!(""), &atom!("id")) {
|
||||||
let doc = document_from_node(self);
|
let value = attr.value();
|
||||||
let value = attr.r().Value();
|
|
||||||
if !value.is_empty() {
|
if !value.is_empty() {
|
||||||
|
let doc = document_from_node(self);
|
||||||
let value = Atom::from_slice(&value);
|
let value = Atom::from_slice(&value);
|
||||||
doc.r().register_named_element(self, value);
|
doc.register_named_element(self, value.to_owned());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1598,11 +1598,11 @@ impl VirtualMethods for Element {
|
||||||
if !tree_in_doc { return; }
|
if !tree_in_doc { return; }
|
||||||
|
|
||||||
if let Some(ref attr) = self.get_attribute(&ns!(""), &atom!("id")) {
|
if let Some(ref attr) = self.get_attribute(&ns!(""), &atom!("id")) {
|
||||||
let doc = document_from_node(self);
|
let value = attr.value();
|
||||||
let value = attr.r().Value();
|
|
||||||
if !value.is_empty() {
|
if !value.is_empty() {
|
||||||
|
let doc = document_from_node(self);
|
||||||
let value = Atom::from_slice(&value);
|
let value = Atom::from_slice(&value);
|
||||||
doc.r().unregister_named_element(self, value);
|
doc.unregister_named_element(self, value.to_owned());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -314,7 +314,7 @@ impl HTMLFormElement {
|
||||||
_ => Some(FormDatum {
|
_ => Some(FormDatum {
|
||||||
ty: ty,
|
ty: ty,
|
||||||
name: name,
|
name: name,
|
||||||
value: input.Value()
|
value: value
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
|
|
||||||
use dom::attr::Attr;
|
use dom::attr::Attr;
|
||||||
use dom::bindings::cell::DOMRefCell;
|
use dom::bindings::cell::DOMRefCell;
|
||||||
use dom::bindings::codegen::Bindings::AttrBinding::AttrMethods;
|
|
||||||
use dom::bindings::codegen::Bindings::HTMLObjectElementBinding;
|
use dom::bindings::codegen::Bindings::HTMLObjectElementBinding;
|
||||||
use dom::bindings::codegen::Bindings::HTMLObjectElementBinding::HTMLObjectElementMethods;
|
use dom::bindings::codegen::Bindings::HTMLObjectElementBinding::HTMLObjectElementMethods;
|
||||||
use dom::bindings::codegen::InheritTypes::HTMLObjectElementDerived;
|
use dom::bindings::codegen::InheritTypes::HTMLObjectElementDerived;
|
||||||
|
@ -67,8 +66,8 @@ impl<'a> ProcessDataURL for &'a HTMLObjectElement {
|
||||||
let elem = ElementCast::from_ref(*self);
|
let elem = ElementCast::from_ref(*self);
|
||||||
|
|
||||||
// TODO: support other values
|
// TODO: support other values
|
||||||
match (elem.get_attribute(&ns!(""), &atom!("type")).map(|x| x.r().Value()),
|
match (elem.get_attribute(&ns!(""), &atom!("type")),
|
||||||
elem.get_attribute(&ns!(""), &atom!("data")).map(|x| x.r().Value())) {
|
elem.get_attribute(&ns!(""), &atom!("data"))) {
|
||||||
(None, Some(_uri)) => {
|
(None, Some(_uri)) => {
|
||||||
// TODO(gw): Prefetch the image here.
|
// TODO(gw): Prefetch the image here.
|
||||||
}
|
}
|
||||||
|
|
|
@ -236,14 +236,13 @@ impl HTMLScriptElement {
|
||||||
let event_attribute = element.get_attribute(&ns!(""), &Atom::from_slice("event"));
|
let event_attribute = element.get_attribute(&ns!(""), &Atom::from_slice("event"));
|
||||||
match (for_attribute.r(), event_attribute.r()) {
|
match (for_attribute.r(), event_attribute.r()) {
|
||||||
(Some(for_attribute), Some(event_attribute)) => {
|
(Some(for_attribute), Some(event_attribute)) => {
|
||||||
let for_value = for_attribute.Value()
|
let for_value = for_attribute.value().to_ascii_lowercase();
|
||||||
.to_ascii_lowercase();
|
|
||||||
let for_value = for_value.trim_matches(HTML_SPACE_CHARACTERS);
|
let for_value = for_value.trim_matches(HTML_SPACE_CHARACTERS);
|
||||||
if for_value != "window" {
|
if for_value != "window" {
|
||||||
return NextParserState::Continue;
|
return NextParserState::Continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
let event_value = event_attribute.Value().to_ascii_lowercase();
|
let event_value = event_attribute.value().to_ascii_lowercase();
|
||||||
let event_value = event_value.trim_matches(HTML_SPACE_CHARACTERS);
|
let event_value = event_value.trim_matches(HTML_SPACE_CHARACTERS);
|
||||||
if event_value != "onload" && event_value != "onload()" {
|
if event_value != "onload" && event_value != "onload()" {
|
||||||
return NextParserState::Continue;
|
return NextParserState::Continue;
|
||||||
|
@ -268,7 +267,7 @@ impl HTMLScriptElement {
|
||||||
// Step 14.
|
// Step 14.
|
||||||
Some(ref src) => {
|
Some(ref src) => {
|
||||||
// Step 14.1
|
// Step 14.1
|
||||||
let src = src.r().Value();
|
let src = src.value();
|
||||||
|
|
||||||
// Step 14.2
|
// Step 14.2
|
||||||
if src.is_empty() {
|
if src.is_empty() {
|
||||||
|
@ -277,10 +276,10 @@ impl HTMLScriptElement {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Step 14.3
|
// Step 14.3
|
||||||
match UrlParser::new().base_url(&base_url).parse(&*src) {
|
match UrlParser::new().base_url(&base_url).parse(&src) {
|
||||||
Err(_) => {
|
Err(_) => {
|
||||||
// Step 14.4
|
// Step 14.4
|
||||||
error!("error parsing URL for script {}", src);
|
error!("error parsing URL for script {}", &**src);
|
||||||
self.queue_error_event();
|
self.queue_error_event();
|
||||||
return NextParserState::Continue;
|
return NextParserState::Continue;
|
||||||
}
|
}
|
||||||
|
@ -469,27 +468,28 @@ impl HTMLScriptElement {
|
||||||
|
|
||||||
pub fn is_javascript(&self) -> bool {
|
pub fn is_javascript(&self) -> bool {
|
||||||
let element = ElementCast::from_ref(self);
|
let element = ElementCast::from_ref(self);
|
||||||
match element.get_attribute(&ns!(""), &atom!("type")).map(|s| s.r().Value()) {
|
let type_attr = element.get_attribute(&ns!(""), &atom!("type"));
|
||||||
|
let is_js = match type_attr.as_ref().map(|s| s.value()) {
|
||||||
Some(ref s) if s.is_empty() => {
|
Some(ref s) if s.is_empty() => {
|
||||||
// type attr exists, but empty means js
|
// type attr exists, but empty means js
|
||||||
debug!("script type empty, inferring js");
|
debug!("script type empty, inferring js");
|
||||||
true
|
true
|
||||||
},
|
},
|
||||||
Some(ref s) => {
|
Some(s) => {
|
||||||
debug!("script type={}", *s);
|
debug!("script type={}", &**s);
|
||||||
SCRIPT_JS_MIMES.contains(&s.to_ascii_lowercase().trim_matches(HTML_SPACE_CHARACTERS))
|
SCRIPT_JS_MIMES.contains(&s.to_ascii_lowercase().trim_matches(HTML_SPACE_CHARACTERS))
|
||||||
},
|
},
|
||||||
None => {
|
None => {
|
||||||
debug!("no script type");
|
debug!("no script type");
|
||||||
match element.get_attribute(&ns!(""), &atom!("language"))
|
let language_attr = element.get_attribute(&ns!(""), &atom!("language"));
|
||||||
.map(|s| s.r().Value()) {
|
let is_js = match language_attr.as_ref().map(|s| s.value()) {
|
||||||
Some(ref s) if s.is_empty() => {
|
Some(ref s) if s.is_empty() => {
|
||||||
debug!("script language empty, inferring js");
|
debug!("script language empty, inferring js");
|
||||||
true
|
true
|
||||||
},
|
},
|
||||||
Some(ref s) => {
|
Some(s) => {
|
||||||
debug!("script language={}", *s);
|
debug!("script language={}", &**s);
|
||||||
let mut language = format!("text/{}", s);
|
let mut language = format!("text/{}", &**s);
|
||||||
language.make_ascii_lowercase();
|
language.make_ascii_lowercase();
|
||||||
SCRIPT_JS_MIMES.contains(&&*language)
|
SCRIPT_JS_MIMES.contains(&&*language)
|
||||||
},
|
},
|
||||||
|
@ -497,9 +497,13 @@ impl HTMLScriptElement {
|
||||||
debug!("no script type or language, inferring js");
|
debug!("no script type or language, inferring js");
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
// https://github.com/rust-lang/rust/issues/21114
|
||||||
|
is_js
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
// https://github.com/rust-lang/rust/issues/21114
|
||||||
|
is_js
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn mark_already_started(&self) {
|
pub fn mark_already_started(&self) {
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
use devtools;
|
use devtools;
|
||||||
use document_loader::{LoadType, DocumentLoader, NotifierData};
|
use document_loader::{LoadType, DocumentLoader, NotifierData};
|
||||||
use dom::bindings::cell::DOMRefCell;
|
use dom::bindings::cell::DOMRefCell;
|
||||||
use dom::bindings::codegen::Bindings::AttrBinding::AttrMethods;
|
|
||||||
use dom::bindings::codegen::Bindings::DocumentBinding::{DocumentMethods, DocumentReadyState};
|
use dom::bindings::codegen::Bindings::DocumentBinding::{DocumentMethods, DocumentReadyState};
|
||||||
use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast, NodeCast, EventCast};
|
use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast, NodeCast, EventCast};
|
||||||
use dom::bindings::conversions::FromJSValConvertible;
|
use dom::bindings::conversions::FromJSValConvertible;
|
||||||
|
@ -1798,7 +1797,7 @@ impl ScriptTask {
|
||||||
let element = ElementCast::to_ref(target.r()).unwrap();
|
let element = ElementCast::to_ref(target.r()).unwrap();
|
||||||
let status = element.get_attribute(&ns!(""), &atom!("href"))
|
let status = element.get_attribute(&ns!(""), &atom!("href"))
|
||||||
.and_then(|href| {
|
.and_then(|href| {
|
||||||
let value = href.r().Value();
|
let value = href.value();
|
||||||
let url = document.r().url();
|
let url = document.r().url();
|
||||||
UrlParser::new().base_url(&url).parse(&value).map(|url| url.serialize()).ok()
|
UrlParser::new().base_url(&url).parse(&value).map(|url| url.serialize()).ok()
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue