aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Brubeck <mbrubeck@limpet.net>2014-12-04 12:55:25 -0800
committerMatt Brubeck <mbrubeck@limpet.net>2014-12-04 21:27:34 -0800
commitcddc6923d4f7130f9fe0faae94f161ba6457d71f (patch)
tree49f2d2ef824e1fa67b779e078be0e72d7c65a784
parentb8444f96f82791d7bbac456dfe23b71b2b09fea3 (diff)
downloadservo-cddc6923d4f7130f9fe0faae94f161ba6457d71f.tar.gz
servo-cddc6923d4f7130f9fe0faae94f161ba6457d71f.zip
Implement the HTMLScriptElement.src setter
Fixes #1113.
-rw-r--r--components/script/dom/htmlscriptelement.rs8
-rw-r--r--components/script/dom/webidls/HTMLScriptElement.webidl3
-rw-r--r--tests/wpt/metadata/html/dom/interfaces.html.ini3
-rw-r--r--tests/wpt/metadata/html/dom/reflection-misc.html.ini51
-rw-r--r--tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/095.html.ini5
-rw-r--r--tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/105.html.ini5
-rw-r--r--tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/123.html.ini5
-rw-r--r--tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/126.html.ini5
-rw-r--r--tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/146.html.ini5
9 files changed, 5 insertions, 85 deletions
diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs
index 129ca0ff0a0..48a85f9b022 100644
--- a/components/script/dom/htmlscriptelement.rs
+++ b/components/script/dom/htmlscriptelement.rs
@@ -28,6 +28,7 @@ use encoding::types::{Encoding, DecodeReplace};
use servo_net::resource_task::load_whole_resource;
use servo_util::str::{DOMString, HTML_SPACE_CHARACTERS, StaticStringVec};
use std::cell::Cell;
+use string_cache::Atom;
use url::UrlParser;
#[dom_struct]
@@ -302,10 +303,9 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLScriptElement> {
}
impl<'a> HTMLScriptElementMethods for JSRef<'a, HTMLScriptElement> {
- fn Src(self) -> DOMString {
- let element: JSRef<Element> = ElementCast::from_ref(self);
- element.get_url_attribute(&atom!("src"))
- }
+ make_url_getter!(Src)
+
+ make_setter!(SetSrc, "src")
// http://www.whatwg.org/html/#dom-script-text
fn Text(self) -> DOMString {
diff --git a/components/script/dom/webidls/HTMLScriptElement.webidl b/components/script/dom/webidls/HTMLScriptElement.webidl
index 260850fa78c..447c01d2bfc 100644
--- a/components/script/dom/webidls/HTMLScriptElement.webidl
+++ b/components/script/dom/webidls/HTMLScriptElement.webidl
@@ -5,8 +5,7 @@
// http://www.whatwg.org/html/#htmlscriptelement
interface HTMLScriptElement : HTMLElement {
- // attribute DOMString src;
- readonly attribute DOMString src;
+ attribute DOMString src;
// attribute DOMString type;
// attribute DOMString charset;
// attribute boolean async;
diff --git a/tests/wpt/metadata/html/dom/interfaces.html.ini b/tests/wpt/metadata/html/dom/interfaces.html.ini
index 2d8b680bd9a..1f0b7ac5625 100644
--- a/tests/wpt/metadata/html/dom/interfaces.html.ini
+++ b/tests/wpt/metadata/html/dom/interfaces.html.ini
@@ -6090,9 +6090,6 @@
[HTMLScriptElement interface object length]
expected: FAIL
- [HTMLScriptElement interface: attribute src]
- expected: FAIL
-
[HTMLScriptElement interface: attribute type]
expected: FAIL
diff --git a/tests/wpt/metadata/html/dom/reflection-misc.html.ini b/tests/wpt/metadata/html/dom/reflection-misc.html.ini
index 066d6f2234a..3fbeece0db4 100644
--- a/tests/wpt/metadata/html/dom/reflection-misc.html.ini
+++ b/tests/wpt/metadata/html/dom/reflection-misc.html.ini
@@ -1386,105 +1386,54 @@
[script.src: setAttribute() to object "test-valueOf" followed by IDL get]
expected: FAIL
- [script.src: IDL set to "" followed by getAttribute()]
- expected: FAIL
-
[script.src: IDL set to "" followed by IDL get]
expected: FAIL
- [script.src: IDL set to " foo " followed by getAttribute()]
- expected: FAIL
-
[script.src: IDL set to " foo " followed by IDL get]
expected: FAIL
- [script.src: IDL set to "http://site.example/" followed by getAttribute()]
- expected: FAIL
-
[script.src: IDL set to "http://site.example/" followed by IDL get]
expected: FAIL
- [script.src: IDL set to "//site.example/path???@#l" followed by getAttribute()]
- expected: FAIL
-
[script.src: IDL set to "//site.example/path???@#l" followed by IDL get]
expected: FAIL
- [script.src: IDL set to "\\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f " followed by getAttribute()]
- expected: FAIL
-
[script.src: IDL set to "\\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f " followed by IDL get]
expected: FAIL
- [script.src: IDL set to undefined followed by getAttribute()]
- expected: FAIL
-
[script.src: IDL set to undefined followed by IDL get]
expected: FAIL
- [script.src: IDL set to 7 followed by getAttribute()]
- expected: FAIL
-
[script.src: IDL set to 7 followed by IDL get]
expected: FAIL
- [script.src: IDL set to 1.5 followed by getAttribute()]
- expected: FAIL
-
[script.src: IDL set to 1.5 followed by IDL get]
expected: FAIL
- [script.src: IDL set to true followed by getAttribute()]
- expected: FAIL
-
[script.src: IDL set to true followed by IDL get]
expected: FAIL
- [script.src: IDL set to false followed by getAttribute()]
- expected: FAIL
-
[script.src: IDL set to false followed by IDL get]
expected: FAIL
- [script.src: IDL set to object "[object Object\]" followed by getAttribute()]
- expected: FAIL
-
[script.src: IDL set to object "[object Object\]" followed by IDL get]
expected: FAIL
- [script.src: IDL set to NaN followed by getAttribute()]
- expected: FAIL
-
[script.src: IDL set to NaN followed by IDL get]
expected: FAIL
- [script.src: IDL set to Infinity followed by getAttribute()]
- expected: FAIL
-
[script.src: IDL set to Infinity followed by IDL get]
expected: FAIL
- [script.src: IDL set to -Infinity followed by getAttribute()]
- expected: FAIL
-
[script.src: IDL set to -Infinity followed by IDL get]
expected: FAIL
- [script.src: IDL set to "\\0" followed by getAttribute()]
- expected: FAIL
-
[script.src: IDL set to "\\0" followed by IDL get]
expected: FAIL
- [script.src: IDL set to null followed by getAttribute()]
- expected: FAIL
-
[script.src: IDL set to null followed by IDL get]
expected: FAIL
- [script.src: IDL set to object "test-toString" followed by getAttribute()]
- expected: FAIL
-
[script.src: IDL set to object "test-toString" followed by IDL get]
expected: FAIL
diff --git a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/095.html.ini b/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/095.html.ini
deleted file mode 100644
index e932e6afebf..00000000000
--- a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/095.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[095.html]
- type: testharness
- [ scheduler: slow-loading script added from defer blocking load event]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/105.html.ini b/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/105.html.ini
deleted file mode 100644
index 253a757e9a1..00000000000
--- a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/105.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[105.html]
- type: testharness
- [ scheduler: adding async attribute at runtime]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/123.html.ini b/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/123.html.ini
deleted file mode 100644
index cb08c989a08..00000000000
--- a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/123.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[123.html]
- type: testharness
- [scheduler: altering the type attribute and adding/removing external script with async=false ]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/126.html.ini b/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/126.html.ini
deleted file mode 100644
index f4bb635c593..00000000000
--- a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/126.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[126.html]
- type: testharness
- [scheduler: altering the type attribute and changing script data external script async=false ]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/146.html.ini b/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/146.html.ini
deleted file mode 100644
index c5cde10199c..00000000000
--- a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/146.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[146.html]
- type: testharness
- [scheduler: SVG script adding src attribute ]
- expected: FAIL
-