aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/htmlscriptelement.rs29
-rw-r--r--components/script/dom/htmlserializer.rs4
-rw-r--r--components/script/script_task.rs41
-rw-r--r--ports/cef/core.rs40
-rw-r--r--tests/content/test_innerHTML.html4
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-img-element/update-the-source-set.html.ini146
6 files changed, 109 insertions, 155 deletions
diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs
index 662e88f02e1..df1a2287462 100644
--- a/components/script/dom/htmlscriptelement.rs
+++ b/components/script/dom/htmlscriptelement.rs
@@ -40,8 +40,6 @@ use url::UrlParser;
pub struct HTMLScriptElement {
htmlelement: HTMLElement,
- error_occurred: Cell<bool>,
-
/// https://html.spec.whatwg.org/multipage/scripting.html#already-started
already_started: Cell<bool>,
@@ -70,7 +68,6 @@ impl HTMLScriptElement {
creator: ElementCreator) -> HTMLScriptElement {
HTMLScriptElement {
htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLScriptElement, localName, prefix, document),
- error_occurred: Cell::new(false),
already_started: Cell::new(false),
parser_inserted: Cell::new(creator == ElementCreator::ParserCreated),
non_blocking: Cell::new(creator != ElementCreator::ParserCreated),
@@ -257,18 +254,25 @@ impl<'a> HTMLScriptElementHelpers for JSRef<'a, HTMLScriptElement> {
ScriptOrigin::Internal => {
let chan = window.script_chan();
let handler = Trusted::new(window.get_cx(), self, chan.clone());
- chan.send(ScriptMsg::RunnableMsg(box handler)).unwrap();
+ let dispatcher = Box::new(EventDispatcher {
+ element: handler,
+ is_error: false,
+ });
+ chan.send(ScriptMsg::RunnableMsg(dispatcher)).unwrap();
}
}
}
fn queue_error_event(self) {
- self.error_occurred.set(true);
let window = window_from_node(self).root();
let window = window.r();
let chan = window.script_chan();
let handler = Trusted::new(window.get_cx(), self, chan.clone());
- chan.send(ScriptMsg::RunnableMsg(box handler)).unwrap();
+ let dispatcher = Box::new(EventDispatcher {
+ element: handler,
+ is_error: true,
+ });
+ chan.send(ScriptMsg::RunnableMsg(dispatcher)).unwrap();
}
fn dispatch_load_event(self) {
@@ -404,10 +408,15 @@ impl<'a> HTMLScriptElementMethods for JSRef<'a, HTMLScriptElement> {
}
}
-impl Runnable for Trusted<HTMLScriptElement> {
- fn handler(self: Box<Trusted<HTMLScriptElement>>) {
- let target = self.to_temporary().root();
- if target.r().error_occurred.get() {
+struct EventDispatcher {
+ element: Trusted<HTMLScriptElement>,
+ is_error: bool,
+}
+
+impl Runnable for EventDispatcher {
+ fn handler(self: Box<EventDispatcher>) {
+ let target = self.element.to_temporary().root();
+ if self.is_error {
target.r().dispatch_error_event();
} else {
target.r().dispatch_load_event();
diff --git a/components/script/dom/htmlserializer.rs b/components/script/dom/htmlserializer.rs
index 7d0cc77387c..9ad6cd77e3b 100644
--- a/components/script/dom/htmlserializer.rs
+++ b/components/script/dom/htmlserializer.rs
@@ -21,8 +21,8 @@ use std::borrow::ToOwned;
pub fn serialize(iterator: &mut NodeIterator) -> String {
let mut html = String::new();
let mut open_elements: Vec<String> = vec!();
- let depth = iterator.depth;
- for node in iterator {
+ while let Some(node) = iterator.next() {
+ let depth = iterator.depth;
while open_elements.len() > depth {
html.push_str("</");
html.push_str(open_elements.pop().unwrap().as_slice());
diff --git a/components/script/script_task.rs b/components/script/script_task.rs
index f29e5690cf5..16785a8abef 100644
--- a/components/script/script_task.rs
+++ b/components/script/script_task.rs
@@ -66,8 +66,7 @@ use util::task::spawn_named_with_send_on_failure;
use util::task_state;
use geom::point::Point2D;
-use hyper::header::{Header, Headers, HeaderFormat};
-use hyper::header::parsing as header_parsing;
+use hyper::header::{LastModified, Headers};
use js::jsapi::{JS_SetWrapObjectCallbacks, JS_SetGCZeal, JS_DEFAULT_ZEAL_FREQ, JS_GC};
use js::jsapi::{JSContext, JSRuntime, JSObject};
use js::jsapi::{JS_SetGCParameter, JSGC_MAX_BYTES};
@@ -80,14 +79,13 @@ use libc;
use std::any::Any;
use std::borrow::ToOwned;
use std::cell::Cell;
-use std::fmt::{self, Display};
use std::mem::replace;
use std::num::ToPrimitive;
use std::rc::Rc;
use std::result::Result;
use std::sync::mpsc::{channel, Sender, Receiver, Select};
use std::u32;
-use time::{Tm, strptime};
+use time::Tm;
thread_local!(pub static STACK_ROOTS: Cell<Option<RootCollectionPtr>> = Cell::new(None));
@@ -1278,41 +1276,6 @@ pub fn get_page(page: &Rc<Page>, pipeline_id: PipelineId) -> Rc<Page> {
This is a bug.")
}
-//FIXME(seanmonstar): uplift to Hyper
-#[derive(Clone)]
-struct LastModified(pub Tm);
-
-impl Header for LastModified {
- #[inline]
- fn header_name() -> &'static str {
- "Last-Modified"
- }
-
- // Parses an RFC 2616 compliant date/time string,
- fn parse_header(raw: &[Vec<u8>]) -> Option<LastModified> {
- header_parsing::from_one_raw_str(raw).and_then(|s: String| {
- let s = s.as_slice();
- strptime(s, "%a, %d %b %Y %T %Z").or_else(|_| {
- strptime(s, "%A, %d-%b-%y %T %Z")
- }).or_else(|_| {
- strptime(s, "%c")
- }).ok().map(|tm| LastModified(tm))
- })
- }
-}
-
-impl HeaderFormat for LastModified {
- // a localized date/time string in a format suitable
- // for document.lastModified.
- fn fmt_header(&self, f: &mut fmt::Formatter) -> fmt::Result {
- let LastModified(ref tm) = *self;
- match tm.tm_utcoff {
- 0 => <_ as Display>::fmt(&tm.rfc822(), f),
- _ => <_ as Display>::fmt(&tm.to_utc().rfc822(), f)
- }
- }
-}
-
fn dom_last_modified(tm: &Tm) -> String {
format!("{}", tm.to_local().strftime("%m/%d/%Y %H:%M:%S").unwrap())
}
diff --git a/ports/cef/core.rs b/ports/cef/core.rs
index f330a82a4fa..111d2c72487 100644
--- a/ports/cef/core.rs
+++ b/ports/cef/core.rs
@@ -6,7 +6,6 @@ use command_line::command_line_init;
use interfaces::cef_app_t;
use types::{cef_main_args_t, cef_settings_t};
-use geom::size::TypedSize2D;
use libc::{c_char, c_int, c_void};
use util::opts;
use std::borrow::ToOwned;
@@ -70,36 +69,15 @@ pub extern "C" fn cef_initialize(args: *const cef_main_args_t,
}
};
- let urls = vec![HOME_URL.to_owned()];
- opts::set_opts(opts::Opts {
- urls: urls,
- paint_threads: rendering_threads,
- gpu_painting: false,
- tile_size: 512,
- device_pixels_per_px: None,
- time_profiler_period: None,
- memory_profiler_period: None,
- enable_experimental: false,
- nonincremental_layout: false,
- layout_threads: rendering_threads,
- output_file: None,
- headless: false,
- hard_fail: false,
- bubble_inline_sizes_separately: false,
- show_debug_borders: false,
- show_debug_fragment_borders: false,
- show_debug_parallel_paint: false,
- show_debug_parallel_layout: false,
- enable_text_antialiasing: true,
- trace_layout: false,
- devtools_port: None,
- initial_window_size: TypedSize2D(800, 600),
- profile_tasks: false,
- user_agent: None,
- dump_flow_tree: false,
- validate_display_list_geometry: false,
- resources_path: resources_path(),
- });
+ let mut temp_opts = opts::default_opts();
+ temp_opts.urls = vec![HOME_URL.to_owned()];
+ temp_opts.paint_threads = rendering_threads;
+ temp_opts.layout_threads = rendering_threads;
+ temp_opts.headless = false;
+ temp_opts.hard_fail = false;
+ temp_opts.enable_text_antialiasing = true;
+ temp_opts.resources_path = resources_path();
+ opts::set_opts(temp_opts);
return 1
}
diff --git a/tests/content/test_innerHTML.html b/tests/content/test_innerHTML.html
index 710dc256de4..b140cfbe894 100644
--- a/tests/content/test_innerHTML.html
+++ b/tests/content/test_innerHTML.html
@@ -4,7 +4,9 @@
<script>
var a = document.createElement("div");
a.appendChild(document.createElement("pre")).appendChild(new Text(""));
- is(a.innerHTML, "<pre></pre>");
+ var b = document.createElement("div");
+ b.appendChild(a);
+ is(b.innerHTML, "<div><pre></pre></div>");
</script>
</head>
</html>
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/update-the-source-set.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/update-the-source-set.html.ini
index dc6f217a5af..4116da857ef 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/update-the-source-set.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/update-the-source-set.html.ini
@@ -48,219 +48,221 @@
[<img srcset="data:,a" data-expect="data:,a">]
expected: FAIL
- [<picture></picture>foo<img src="data:,a" data-expect="data:,a">]
+ [<picture>foo<img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><!--foo--><img src="data:,a" data-expect="data:,a">]
+ [<picture><!--foo--><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><br><img src="data:,a" data-expect="data:,a">]
+ [<picture><br><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><p></p><img src="data:,a" data-expect="data:,a">]
+ [<picture><p></p><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><video></video><source srcset="data:,b"><img src="data:,a" data-expect="data:,a">]
+ [<picture><video><source srcset="data:,b"></video><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><span></span><source srcset="data:,b"><img src="data:,a" data-expect="data:,a">]
+ [<picture><span><source srcset="data:,b"></span><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><img src="data:,a"><img src="data:,b" data-expect="data:,b">]
+ [<picture><svg><source srcset="data:,b"></svg><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><img src="data:,a" data-expect="data:,a">foo]
+ [<picture><svg><source srcset="data:,b"><img src="data:,a" data-expect="data:,b"></svg></picture>]
expected: FAIL
- [<picture></picture><img src="data:,a" data-expect="data:,a"><br>]
+ [<picture><svg><font><source srcset="data:,b"></font></svg><font><img src="data:,a" data-expect="data:,a"></font></picture>]
expected: FAIL
- [<picture></picture><img src="data:,a" data-expect="data:,a"><!--foo-->]
+ [<picture><svg><!--<font face> tag breaks out of svg--><font face=""></font><source srcset="data:,b"></svg><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><img src="data:,a" data-expect="data:,a"><img src="data:,b">]
+ [<picture><img src="data:,a"><img src="data:,b" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><img data-expect=""><img src="data:,b">]
+ [<picture><source><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><img src="data:,a" data-expect="data:,a"><source srcset="data:,b">]
+ [<picture><source src="data:,b"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><img data-expect=""><source srcset="data:,b">]
+ [<picture><source srcset=""><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><svg></svg><source srcset="data:,b"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset=", ,"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><svg></svg><source srcset="data:,b"><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b 1x 1x"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><svg></svg><!--<font face> tag breaks out of svg--><font face=""></font><source srcset="data:,b"><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" media=""><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" media="all"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source src="data:,b"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" media="all and (min-width:0)"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset=""><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" media="all and !"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset=", ,"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" media="all and (!)"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b 1x 1x"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" media="not all"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" media=""><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" media="not all and (min-width:0)"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" media="all"><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" media="not all and (max-width:0)"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" media="all and (min-width:0)"><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" media="not all and !"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" media="all and !"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" media="not all and (!)"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" media="all and (!)"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" media="all, !"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" media="not all"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" media=","><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" media="not all and (min-width:0)"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" media=", all"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" media="not all and (max-width:0)"><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" type=""><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" media="not all and !"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" type=" "><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" media="not all and (!)"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" type="image/gif"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" media="all, !"><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" type=" image/gif"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" media=","><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" type="image/gif "><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" media=", all"><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" type="image/gif;"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type=""><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" type="image/gif;encodings"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type=" "><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" type="image/gif;encodings="><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="image/gif"><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" type="image/gif;encodings=foobar"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type=" image/gif"><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" type="image/png"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="image/gif "><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" type="image/jpeg"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="image/gif;"><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" type="image/svg+xml"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="image/gif;encodings"><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" type="image/x-icon"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="image/gif;encodings="><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" type="text/xml"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="image/gif;encodings=foobar"><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" type="text/html"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="image/png"><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" type="text/plain"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="image/jpeg"><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" type="text/css"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="image/svg+xml"><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" type="video/mp4"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="image/x-icon"><img src="data:,a" data-expect="data:,b">]
+ [<picture><source srcset="data:,b" type="video/ogg"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="text/xml"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" type="video/webm"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="text/html"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" type="unknown/unknown"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="text/plain"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" type="application/octet-stream"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="text/css"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" type="application/x-shockwave-flash"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="video/mp4"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" type="image\gif"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="video/ogg"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" type="gif"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="video/webm"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" type=".gif"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="unknown/unknown"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" type="*"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="application/octet-stream"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" type="*/*"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="application/x-shockwave-flash"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" type="image/*"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="image\\gif"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" type=","><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="gif"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" type="image/gif, image/png"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type=".gif"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" type="image/gif image/png"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="*"><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b" type="image/foobarbaz"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="*/*"><img src="data:,a" data-expect="data:,a">]
+ [<picture><img src="data:,a" data-expect="data:,a">foo</picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="image/*"><img src="data:,a" data-expect="data:,a">]
+ [<picture><img src="data:,a" data-expect="data:,a"><br></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type=","><img src="data:,a" data-expect="data:,a">]
+ [<picture><img src="data:,a" data-expect="data:,a"><!--foo--></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="image/gif, image/png"><img src="data:,a" data-expect="data:,a">]
+ [<picture><img src="data:,a" data-expect="data:,a"><img src="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="image/gif image/png"><img src="data:,a" data-expect="data:,a">]
+ [<picture><img data-expect=""><img src="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b" type="image/foobarbaz"><img src="data:,a" data-expect="data:,a">]
+ [<picture><img src="data:,a" data-expect="data:,a"><source srcset="data:,b"></picture>]
expected: FAIL
- [<picture></picture><span></span><source srcset="data:,b"><img data-expect="">]
+ [<picture><img data-expect=""><source srcset="data:,b"></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b"><span></span><img src="data:,a" data-expect="data:,a">]
+ [<picture><span><source srcset="data:,b"><img data-expect=""></span></picture>]
expected: FAIL
- [<picture></picture><source srcset="data:,b"><img data-expect="data:,b">]
+ [<picture><span><source srcset="data:,b"><img src="data:,a" data-expect="data:,a"></span></picture>]
expected: FAIL
- [<picture></picture><svg></svg><font></font><source srcset="data:,b"><font></font><img src="data:,a" data-expect="data:,a">]
+ [<picture><source srcset="data:,b"><span><img src="data:,a" data-expect="data:,a"></span></picture>]
expected: FAIL
+ [<picture><source srcset="data:,b"><img data-expect="data:,b"></picture>]
+ expected: FAIL