aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmlscriptelement.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/htmlscriptelement.rs')
-rw-r--r--components/script/dom/htmlscriptelement.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs
index 5d290200b23..5acef40364e 100644
--- a/components/script/dom/htmlscriptelement.rs
+++ b/components/script/dom/htmlscriptelement.rs
@@ -112,6 +112,11 @@ static SCRIPT_JS_MIMES: StaticStringVec = &[
"text/x-javascript",
];
+enum ScriptOrigin {
+ Internal,
+ External,
+}
+
impl<'a> HTMLScriptElementHelpers for JSRef<'a, HTMLScriptElement> {
fn prepare(self) {
// https://html.spec.whatwg.org/multipage/scripting.html#prepare-a-script
@@ -175,7 +180,7 @@ impl<'a> HTMLScriptElementHelpers for JSRef<'a, HTMLScriptElement> {
let page = window.page();
let base_url = page.get_url();
- let (source, url) = match element.get_attribute(ns!(""), &atom!("src")).root() {
+ let (origin, source, url) = match element.get_attribute(ns!(""), &atom!("src")).root() {
Some(src) => {
if src.r().Value().is_empty() {
// TODO: queue a task to fire a simple event named `error` at the element
@@ -191,7 +196,7 @@ impl<'a> HTMLScriptElementHelpers for JSRef<'a, HTMLScriptElement> {
Ok((metadata, bytes)) => {
// TODO: use the charset from step 13.
let source = UTF_8.decode(bytes.as_slice(), DecoderTrap::Replace).unwrap();
- (source, metadata.final_url)
+ (ScriptOrigin::External, source, metadata.final_url)
}
Err(_) => {
error!("error loading script {}", src.r().Value());
@@ -206,7 +211,7 @@ impl<'a> HTMLScriptElementHelpers for JSRef<'a, HTMLScriptElement> {
}
}
}
- None => (text, base_url)
+ None => (ScriptOrigin::Internal, text, base_url)
};
window.evaluate_script_on_global_with_result(source.as_slice(), url.serialize().as_slice());