mirror of
https://github.com/servo/servo.git
synced 2025-09-22 04:40:09 +01:00
commit
5b8f045f2b
127 changed files with 1967 additions and 3493 deletions
4
Cargo.lock
generated
4
Cargo.lock
generated
|
@ -3785,7 +3785,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mozjs"
|
name = "mozjs"
|
||||||
version = "0.14.1"
|
version = "0.14.1"
|
||||||
source = "git+https://github.com/servo/rust-mozjs#db90a4651adcc1447d1eb8c4bb13f18ea957d263"
|
source = "git+https://github.com/servo/rust-mozjs#b8122da4ea8a48ea21454e65f42d5b2194a2d311"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cc",
|
"cc",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
|
@ -3798,7 +3798,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mozjs_sys"
|
name = "mozjs_sys"
|
||||||
version = "0.68.2"
|
version = "0.68.2"
|
||||||
source = "git+https://github.com/servo/mozjs?rev=26a1e8afdb21beec33373ef2a38131272d064bdd#26a1e8afdb21beec33373ef2a38131272d064bdd"
|
source = "git+https://github.com/servo/mozjs?rev=c6c7b5319975a8f0465ce8c17329e74be4cb80b1#c6c7b5319975a8f0465ce8c17329e74be4cb80b1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bindgen",
|
"bindgen",
|
||||||
"cc",
|
"cc",
|
||||||
|
|
|
@ -65,11 +65,11 @@ impl<'a> phf_shared::PhfHash for Bytes<'a> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn find_python() -> String {
|
fn find_python() -> String {
|
||||||
env::var("PYTHON2").ok().unwrap_or_else(|| {
|
env::var("PYTHON3").ok().unwrap_or_else(|| {
|
||||||
let candidates = if cfg!(windows) {
|
let candidates = if cfg!(windows) {
|
||||||
["python2.7.exe", "python27.exe", "python.exe"]
|
["python3.8.exe", "python38.exe", "python.exe"]
|
||||||
} else {
|
} else {
|
||||||
["python2.7", "python2", "python"]
|
["python3.8", "python3", "python"]
|
||||||
};
|
};
|
||||||
for &name in &candidates {
|
for &name in &candidates {
|
||||||
if Command::new(name)
|
if Command::new(name)
|
||||||
|
@ -82,7 +82,7 @@ fn find_python() -> String {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
panic!(
|
panic!(
|
||||||
"Can't find python (tried {})! Try fixing PATH or setting the PYTHON2 env var",
|
"Can't find python (tried {})! Try fixing PATH or setting the PYTHON3 env var",
|
||||||
candidates.join(", ")
|
candidates.join(", ")
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
|
@ -23,9 +23,8 @@ use devtools_traits::{AutoMargins, ComputedNodeLayout, TimelineMarkerType};
|
||||||
use devtools_traits::{EvaluateJSReply, Modification, NodeInfo, TimelineMarker};
|
use devtools_traits::{EvaluateJSReply, Modification, NodeInfo, TimelineMarker};
|
||||||
use ipc_channel::ipc::IpcSender;
|
use ipc_channel::ipc::IpcSender;
|
||||||
use js::jsval::UndefinedValue;
|
use js::jsval::UndefinedValue;
|
||||||
use js::rust::wrappers::ObjectClassName;
|
use js::rust::ToString;
|
||||||
use msg::constellation_msg::PipelineId;
|
use msg::constellation_msg::PipelineId;
|
||||||
use std::ffi::CStr;
|
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
use std::str;
|
use std::str;
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
@ -65,12 +64,11 @@ pub fn handle_evaluate_js(global: &GlobalScope, eval: String, reply: IpcSender<E
|
||||||
} else {
|
} else {
|
||||||
assert!(rval.is_object());
|
assert!(rval.is_object());
|
||||||
|
|
||||||
rooted!(in(*cx) let obj = rval.to_object());
|
let jsstr = ToString(*cx, rval.handle());
|
||||||
let class_name = CStr::from_ptr(ObjectClassName(*cx, obj.handle()));
|
let class_name = jsstring_to_str(*cx, jsstr);
|
||||||
let class_name = str::from_utf8(class_name.to_bytes()).unwrap();
|
|
||||||
|
|
||||||
EvaluateJSReply::ActorValue {
|
EvaluateJSReply::ActorValue {
|
||||||
class: class_name.to_owned(),
|
class: class_name.to_string(),
|
||||||
uuid: Uuid::new_v4().to_string(),
|
uuid: Uuid::new_v4().to_string(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -344,7 +344,7 @@ class CGMethodCall(CGThing):
|
||||||
distinguishingArg = "HandleValue::from_raw(args.get(%d))" % distinguishingIndex
|
distinguishingArg = "HandleValue::from_raw(args.get(%d))" % distinguishingIndex
|
||||||
|
|
||||||
def pickFirstSignature(condition, filterLambda):
|
def pickFirstSignature(condition, filterLambda):
|
||||||
sigs = filter(filterLambda, possibleSignatures)
|
sigs = list(filter(filterLambda, possibleSignatures))
|
||||||
assert len(sigs) < 2
|
assert len(sigs) < 2
|
||||||
if len(sigs) > 0:
|
if len(sigs) > 0:
|
||||||
call = getPerSignatureCall(sigs[0], distinguishingIndex)
|
call = getPerSignatureCall(sigs[0], distinguishingIndex)
|
||||||
|
@ -1616,9 +1616,12 @@ class PropertyDefiner:
|
||||||
specs = []
|
specs = []
|
||||||
prefableSpecs = []
|
prefableSpecs = []
|
||||||
prefableTemplate = ' Guard::new(%s, %s[%d])'
|
prefableTemplate = ' Guard::new(%s, %s[%d])'
|
||||||
|
origTemplate = specTemplate
|
||||||
|
if isinstance(specTemplate, str):
|
||||||
|
specTemplate = lambda _: origTemplate # noqa
|
||||||
|
|
||||||
for cond, members in groupby(array, lambda m: getCondition(m, self.descriptor)):
|
for cond, members in groupby(array, lambda m: getCondition(m, self.descriptor)):
|
||||||
currentSpecs = [specTemplate % getDataTuple(m) for m in members]
|
currentSpecs = [specTemplate(m) % getDataTuple(m) for m in members]
|
||||||
if specTerminator:
|
if specTerminator:
|
||||||
currentSpecs.append(specTerminator)
|
currentSpecs.append(specTerminator)
|
||||||
specs.append("&[\n" + ",\n".join(currentSpecs) + "]\n")
|
specs.append("&[\n" + ",\n".join(currentSpecs) + "]\n")
|
||||||
|
@ -1826,7 +1829,11 @@ class AttrDefiner(PropertyDefiner):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.descriptor = descriptor
|
self.descriptor = descriptor
|
||||||
self.regular = [
|
self.regular = [
|
||||||
m
|
{
|
||||||
|
"name": m.identifier.name,
|
||||||
|
"attr": m,
|
||||||
|
"flags": "JSPROP_ENUMERATE",
|
||||||
|
}
|
||||||
for m in descriptor.interface.members if
|
for m in descriptor.interface.members if
|
||||||
m.isAttr() and m.isStatic() == static
|
m.isAttr() and m.isStatic() == static
|
||||||
and MemberIsUnforgeable(m, descriptor) == unforgeable
|
and MemberIsUnforgeable(m, descriptor) == unforgeable
|
||||||
|
@ -1834,15 +1841,21 @@ class AttrDefiner(PropertyDefiner):
|
||||||
self.static = static
|
self.static = static
|
||||||
self.unforgeable = unforgeable
|
self.unforgeable = unforgeable
|
||||||
|
|
||||||
|
if not static and not unforgeable and not (
|
||||||
|
descriptor.interface.isNamespace() or descriptor.interface.isCallback()
|
||||||
|
):
|
||||||
|
self.regular.append({
|
||||||
|
"name": "@@toStringTag",
|
||||||
|
"attr": None,
|
||||||
|
"flags": "JSPROP_READONLY | JSPROP_INTERNAL_USE_BIT"
|
||||||
|
})
|
||||||
|
|
||||||
def generateArray(self, array, name):
|
def generateArray(self, array, name):
|
||||||
if len(array) == 0:
|
if len(array) == 0:
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
flags = "JSPROP_ENUMERATE"
|
|
||||||
if self.unforgeable:
|
|
||||||
flags += " | JSPROP_PERMANENT"
|
|
||||||
|
|
||||||
def getter(attr):
|
def getter(attr):
|
||||||
|
attr = attr['attr']
|
||||||
if self.static:
|
if self.static:
|
||||||
accessor = 'get_' + self.descriptor.internalNameFor(attr.identifier.name)
|
accessor = 'get_' + self.descriptor.internalNameFor(attr.identifier.name)
|
||||||
jitinfo = "0 as *const JSJitInfo"
|
jitinfo = "0 as *const JSJitInfo"
|
||||||
|
@ -1858,6 +1871,7 @@ class AttrDefiner(PropertyDefiner):
|
||||||
"native": accessor})
|
"native": accessor})
|
||||||
|
|
||||||
def setter(attr):
|
def setter(attr):
|
||||||
|
attr = attr['attr']
|
||||||
if (attr.readonly and not attr.getExtendedAttribute("PutForwards")
|
if (attr.readonly and not attr.getExtendedAttribute("PutForwards")
|
||||||
and not attr.getExtendedAttribute("Replaceable")):
|
and not attr.getExtendedAttribute("Replaceable")):
|
||||||
return "JSNativeWrapper { op: None, info: 0 as *const JSJitInfo }"
|
return "JSNativeWrapper { op: None, info: 0 as *const JSJitInfo }"
|
||||||
|
@ -1876,29 +1890,59 @@ class AttrDefiner(PropertyDefiner):
|
||||||
% {"info": jitinfo,
|
% {"info": jitinfo,
|
||||||
"native": accessor})
|
"native": accessor})
|
||||||
|
|
||||||
|
def condition(m, d):
|
||||||
|
if m["name"] == "@@toStringTag":
|
||||||
|
return MemberCondition(pref=None, func=None, exposed=None, secure=None)
|
||||||
|
return PropertyDefiner.getControllingCondition(m["attr"], d)
|
||||||
|
|
||||||
def specData(attr):
|
def specData(attr):
|
||||||
return (str_to_const_array(attr.identifier.name), flags, getter(attr),
|
if attr["name"] == "@@toStringTag":
|
||||||
|
return (attr["name"][2:], attr["flags"],
|
||||||
|
str_to_const_array(self.descriptor.interface.getClassName()))
|
||||||
|
|
||||||
|
flags = attr["flags"]
|
||||||
|
if self.unforgeable:
|
||||||
|
flags += " | JSPROP_PERMANENT"
|
||||||
|
return (str_to_const_array(attr["attr"].identifier.name), flags, getter(attr),
|
||||||
setter(attr))
|
setter(attr))
|
||||||
|
|
||||||
|
def template(m):
|
||||||
|
if m["name"] == "@@toStringTag":
|
||||||
|
return """ JSPropertySpec {
|
||||||
|
name: JSPropertySpec_Name { symbol_: SymbolCode::%s as usize + 1 },
|
||||||
|
flags_: (%s) as u8,
|
||||||
|
u: JSPropertySpec_AccessorsOrValue {
|
||||||
|
value: JSPropertySpec_ValueWrapper {
|
||||||
|
type_: JSValueType::JSVAL_TYPE_STRING as _,
|
||||||
|
__bindgen_anon_1: JSPropertySpec_ValueWrapper__bindgen_ty_1 {
|
||||||
|
string: %s as *const u8 as *const libc::c_char,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
return """ JSPropertySpec {
|
||||||
|
name: JSPropertySpec_Name { string_: %s as *const u8 as *const libc::c_char },
|
||||||
|
flags_: (%s) as u8,
|
||||||
|
u: JSPropertySpec_AccessorsOrValue {
|
||||||
|
accessors: JSPropertySpec_AccessorsOrValue_Accessors {
|
||||||
|
getter: JSPropertySpec_Accessor {
|
||||||
|
native: %s,
|
||||||
|
},
|
||||||
|
setter: JSPropertySpec_Accessor {
|
||||||
|
native: %s,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
return self.generateGuardedArray(
|
return self.generateGuardedArray(
|
||||||
array, name,
|
array, name,
|
||||||
' JSPropertySpec {\n'
|
template,
|
||||||
' name: JSPropertySpec_Name { string_: %s as *const u8 as *const libc::c_char },\n'
|
|
||||||
' flags: (%s) as u8,\n'
|
|
||||||
' u: JSPropertySpec_AccessorsOrValue {\n'
|
|
||||||
' accessors: JSPropertySpec_AccessorsOrValue_Accessors {\n'
|
|
||||||
' getter: JSPropertySpec_Accessor {\n'
|
|
||||||
' native: %s,\n'
|
|
||||||
' },\n'
|
|
||||||
' setter: JSPropertySpec_Accessor {\n'
|
|
||||||
' native: %s,\n'
|
|
||||||
' }\n'
|
|
||||||
' }\n'
|
|
||||||
' }\n'
|
|
||||||
' }',
|
|
||||||
' JSPropertySpec::ZERO',
|
' JSPropertySpec::ZERO',
|
||||||
'JSPropertySpec',
|
'JSPropertySpec',
|
||||||
PropertyDefiner.getControllingCondition, specData)
|
condition, specData)
|
||||||
|
|
||||||
|
|
||||||
class ConstDefiner(PropertyDefiner):
|
class ConstDefiner(PropertyDefiner):
|
||||||
|
@ -2073,7 +2117,7 @@ class CGImports(CGWrapper):
|
||||||
members += [constructor]
|
members += [constructor]
|
||||||
|
|
||||||
if d.proxy:
|
if d.proxy:
|
||||||
members += [o for o in d.operations.values() if o]
|
members += [o for o in list(d.operations.values()) if o]
|
||||||
|
|
||||||
for m in members:
|
for m in members:
|
||||||
if m.isMethod():
|
if m.isMethod():
|
||||||
|
@ -2513,7 +2557,7 @@ def UnionTypes(descriptors, dictionaries, callbacks, typedefs, config):
|
||||||
])
|
])
|
||||||
|
|
||||||
# Sort unionStructs by key, retrieve value
|
# Sort unionStructs by key, retrieve value
|
||||||
unionStructs = (i[1] for i in sorted(unionStructs.items(), key=operator.itemgetter(0)))
|
unionStructs = (i[1] for i in sorted(list(unionStructs.items()), key=operator.itemgetter(0)))
|
||||||
|
|
||||||
return CGImports(CGList(unionStructs, "\n\n"),
|
return CGImports(CGList(unionStructs, "\n\n"),
|
||||||
descriptors=[],
|
descriptors=[],
|
||||||
|
@ -2741,7 +2785,7 @@ ensure_expando_object(*cx, obj.handle().into(), expando.handle_mut());
|
||||||
# unforgeable holder for those with the right JSClass. Luckily, there
|
# unforgeable holder for those with the right JSClass. Luckily, there
|
||||||
# aren't too many globals being created.
|
# aren't too many globals being created.
|
||||||
if descriptor.isGlobal():
|
if descriptor.isGlobal():
|
||||||
copyFunc = "JS_CopyPropertiesFrom"
|
copyFunc = "JS_CopyOwnPropertiesAndPrivateFields"
|
||||||
else:
|
else:
|
||||||
copyFunc = "JS_InitializePropertiesFromCompatibleNativeObject"
|
copyFunc = "JS_InitializePropertiesFromCompatibleNativeObject"
|
||||||
copyCode += """\
|
copyCode += """\
|
||||||
|
@ -2783,7 +2827,6 @@ rooted!(in(*cx) let obj = NewProxyObject(
|
||||||
Handle::from_raw(UndefinedHandleValue),
|
Handle::from_raw(UndefinedHandleValue),
|
||||||
proto.get(),
|
proto.get(),
|
||||||
ptr::null(),
|
ptr::null(),
|
||||||
false,
|
|
||||||
));
|
));
|
||||||
assert!(!obj.is_null());
|
assert!(!obj.is_null());
|
||||||
SetProxyReservedSlot(
|
SetProxyReservedSlot(
|
||||||
|
@ -4412,9 +4455,10 @@ class CGEnum(CGThing):
|
||||||
pub enum %s {
|
pub enum %s {
|
||||||
%s
|
%s
|
||||||
}
|
}
|
||||||
""" % (ident, ",\n ".join(map(getEnumValueName, enum.values())))
|
""" % (ident, ",\n ".join(map(getEnumValueName, list(enum.values()))))
|
||||||
|
|
||||||
pairs = ",\n ".join(['("%s", super::%s::%s)' % (val, ident, getEnumValueName(val)) for val in enum.values()])
|
pairs = ",\n ".join(['("%s", super::%s::%s)' % (val, ident, getEnumValueName(val))
|
||||||
|
for val in list(enum.values())])
|
||||||
|
|
||||||
inner = string.Template("""\
|
inner = string.Template("""\
|
||||||
use crate::dom::bindings::conversions::ConversionResult;
|
use crate::dom::bindings::conversions::ConversionResult;
|
||||||
|
@ -4597,9 +4641,8 @@ class CGUnionStruct(CGThing):
|
||||||
return "Rc"
|
return "Rc"
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
templateVars = map(lambda t: (getUnionTypeTemplateVars(t, self.descriptorProvider),
|
templateVars = [(getUnionTypeTemplateVars(t, self.descriptorProvider),
|
||||||
getTypeWrapper(t)),
|
getTypeWrapper(t)) for t in self.type.flatMemberTypes]
|
||||||
self.type.flatMemberTypes)
|
|
||||||
enumValues = [
|
enumValues = [
|
||||||
" %s(%s)," % (v["name"], "%s<%s>" % (wrapper, v["typeName"]) if wrapper else v["typeName"])
|
" %s(%s)," % (v["name"], "%s<%s>" % (wrapper, v["typeName"]) if wrapper else v["typeName"])
|
||||||
for (v, wrapper) in templateVars
|
for (v, wrapper) in templateVars
|
||||||
|
@ -4658,7 +4701,7 @@ class CGUnionConversionStruct(CGThing):
|
||||||
" Ok(None) => (),\n"
|
" Ok(None) => (),\n"
|
||||||
"}\n") % (self.type, name, self.type, name)
|
"}\n") % (self.type, name, self.type, name)
|
||||||
|
|
||||||
interfaceMemberTypes = filter(lambda t: t.isNonCallbackInterface(), memberTypes)
|
interfaceMemberTypes = [t for t in memberTypes if t.isNonCallbackInterface()]
|
||||||
if len(interfaceMemberTypes) > 0:
|
if len(interfaceMemberTypes) > 0:
|
||||||
typeNames = [get_name(memberType) for memberType in interfaceMemberTypes]
|
typeNames = [get_name(memberType) for memberType in interfaceMemberTypes]
|
||||||
interfaceObject = CGList(CGGeneric(get_match(typeName)) for typeName in typeNames)
|
interfaceObject = CGList(CGGeneric(get_match(typeName)) for typeName in typeNames)
|
||||||
|
@ -4666,7 +4709,7 @@ class CGUnionConversionStruct(CGThing):
|
||||||
else:
|
else:
|
||||||
interfaceObject = None
|
interfaceObject = None
|
||||||
|
|
||||||
arrayObjectMemberTypes = filter(lambda t: t.isSequence(), memberTypes)
|
arrayObjectMemberTypes = [t for t in memberTypes if t.isSequence()]
|
||||||
if len(arrayObjectMemberTypes) > 0:
|
if len(arrayObjectMemberTypes) > 0:
|
||||||
assert len(arrayObjectMemberTypes) == 1
|
assert len(arrayObjectMemberTypes) == 1
|
||||||
typeName = arrayObjectMemberTypes[0].name
|
typeName = arrayObjectMemberTypes[0].name
|
||||||
|
@ -4675,7 +4718,7 @@ class CGUnionConversionStruct(CGThing):
|
||||||
else:
|
else:
|
||||||
arrayObject = None
|
arrayObject = None
|
||||||
|
|
||||||
callbackMemberTypes = filter(lambda t: t.isCallback() or t.isCallbackInterface(), memberTypes)
|
callbackMemberTypes = [t for t in memberTypes if t.isCallback() or t.isCallbackInterface()]
|
||||||
if len(callbackMemberTypes) > 0:
|
if len(callbackMemberTypes) > 0:
|
||||||
assert len(callbackMemberTypes) == 1
|
assert len(callbackMemberTypes) == 1
|
||||||
typeName = callbackMemberTypes[0].name
|
typeName = callbackMemberTypes[0].name
|
||||||
|
@ -4683,7 +4726,7 @@ class CGUnionConversionStruct(CGThing):
|
||||||
else:
|
else:
|
||||||
callbackObject = None
|
callbackObject = None
|
||||||
|
|
||||||
dictionaryMemberTypes = filter(lambda t: t.isDictionary(), memberTypes)
|
dictionaryMemberTypes = [t for t in memberTypes if t.isDictionary()]
|
||||||
if len(dictionaryMemberTypes) > 0:
|
if len(dictionaryMemberTypes) > 0:
|
||||||
assert len(dictionaryMemberTypes) == 1
|
assert len(dictionaryMemberTypes) == 1
|
||||||
typeName = dictionaryMemberTypes[0].name
|
typeName = dictionaryMemberTypes[0].name
|
||||||
|
@ -4692,7 +4735,7 @@ class CGUnionConversionStruct(CGThing):
|
||||||
else:
|
else:
|
||||||
dictionaryObject = None
|
dictionaryObject = None
|
||||||
|
|
||||||
objectMemberTypes = filter(lambda t: t.isObject(), memberTypes)
|
objectMemberTypes = [t for t in memberTypes if t.isObject()]
|
||||||
if len(objectMemberTypes) > 0:
|
if len(objectMemberTypes) > 0:
|
||||||
assert len(objectMemberTypes) == 1
|
assert len(objectMemberTypes) == 1
|
||||||
typeName = objectMemberTypes[0].name
|
typeName = objectMemberTypes[0].name
|
||||||
|
@ -4701,7 +4744,7 @@ class CGUnionConversionStruct(CGThing):
|
||||||
else:
|
else:
|
||||||
object = None
|
object = None
|
||||||
|
|
||||||
mozMapMemberTypes = filter(lambda t: t.isRecord(), memberTypes)
|
mozMapMemberTypes = [t for t in memberTypes if t.isRecord()]
|
||||||
if len(mozMapMemberTypes) > 0:
|
if len(mozMapMemberTypes) > 0:
|
||||||
assert len(mozMapMemberTypes) == 1
|
assert len(mozMapMemberTypes) == 1
|
||||||
typeName = mozMapMemberTypes[0].name
|
typeName = mozMapMemberTypes[0].name
|
||||||
|
@ -4747,9 +4790,9 @@ class CGUnionConversionStruct(CGThing):
|
||||||
typename = get_name(memberType)
|
typename = get_name(memberType)
|
||||||
return CGGeneric(get_match(typename))
|
return CGGeneric(get_match(typename))
|
||||||
other = []
|
other = []
|
||||||
stringConversion = map(getStringOrPrimitiveConversion, stringTypes)
|
stringConversion = list(map(getStringOrPrimitiveConversion, stringTypes))
|
||||||
numericConversion = map(getStringOrPrimitiveConversion, numericTypes)
|
numericConversion = list(map(getStringOrPrimitiveConversion, numericTypes))
|
||||||
booleanConversion = map(getStringOrPrimitiveConversion, booleanTypes)
|
booleanConversion = list(map(getStringOrPrimitiveConversion, booleanTypes))
|
||||||
if stringConversion:
|
if stringConversion:
|
||||||
if booleanConversion:
|
if booleanConversion:
|
||||||
other.append(CGIfWrapper("value.get().is_boolean()", booleanConversion[0]))
|
other.append(CGIfWrapper("value.get().is_boolean()", booleanConversion[0]))
|
||||||
|
@ -5915,7 +5958,7 @@ class CGInterfaceTrait(CGThing):
|
||||||
rettype)
|
rettype)
|
||||||
|
|
||||||
if descriptor.proxy:
|
if descriptor.proxy:
|
||||||
for name, operation in descriptor.operations.iteritems():
|
for name, operation in descriptor.operations.items():
|
||||||
if not operation or operation.isStringifier():
|
if not operation or operation.isStringifier():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
@ -6047,11 +6090,14 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries
|
||||||
'js::jsapi::JSPROP_ENUMERATE',
|
'js::jsapi::JSPROP_ENUMERATE',
|
||||||
'js::jsapi::JSPROP_PERMANENT',
|
'js::jsapi::JSPROP_PERMANENT',
|
||||||
'js::jsapi::JSPROP_READONLY',
|
'js::jsapi::JSPROP_READONLY',
|
||||||
|
'js::jsapi::JSPROP_INTERNAL_USE_BIT',
|
||||||
'js::jsapi::JSPropertySpec',
|
'js::jsapi::JSPropertySpec',
|
||||||
'js::jsapi::JSPropertySpec_Accessor',
|
'js::jsapi::JSPropertySpec_Accessor',
|
||||||
'js::jsapi::JSPropertySpec_AccessorsOrValue',
|
'js::jsapi::JSPropertySpec_AccessorsOrValue',
|
||||||
'js::jsapi::JSPropertySpec_AccessorsOrValue_Accessors',
|
'js::jsapi::JSPropertySpec_AccessorsOrValue_Accessors',
|
||||||
'js::jsapi::JSPropertySpec_Name',
|
'js::jsapi::JSPropertySpec_Name',
|
||||||
|
'js::jsapi::JSPropertySpec_ValueWrapper',
|
||||||
|
'js::jsapi::JSPropertySpec_ValueWrapper__bindgen_ty_1',
|
||||||
'js::jsapi::JSString',
|
'js::jsapi::JSString',
|
||||||
'js::jsapi::JSTracer',
|
'js::jsapi::JSTracer',
|
||||||
'js::jsapi::JSType',
|
'js::jsapi::JSType',
|
||||||
|
@ -6059,7 +6105,7 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries
|
||||||
'js::jsapi::JSValueType',
|
'js::jsapi::JSValueType',
|
||||||
'js::jsapi::JS_AtomizeAndPinString',
|
'js::jsapi::JS_AtomizeAndPinString',
|
||||||
'js::rust::wrappers::JS_CallFunctionValue',
|
'js::rust::wrappers::JS_CallFunctionValue',
|
||||||
'js::rust::wrappers::JS_CopyPropertiesFrom',
|
'js::rust::wrappers::JS_CopyOwnPropertiesAndPrivateFields',
|
||||||
'js::rust::wrappers::JS_DefineProperty',
|
'js::rust::wrappers::JS_DefineProperty',
|
||||||
'js::rust::wrappers::JS_DefinePropertyById2',
|
'js::rust::wrappers::JS_DefinePropertyById2',
|
||||||
'js::jsapi::JS_ForwardGetPropertyTo',
|
'js::jsapi::JS_ForwardGetPropertyTo',
|
||||||
|
@ -6442,7 +6488,7 @@ class CGDescriptor(CGThing):
|
||||||
post='\n')
|
post='\n')
|
||||||
|
|
||||||
if reexports:
|
if reexports:
|
||||||
reexports = ', '.join(map(lambda name: reexportedName(name), reexports))
|
reexports = ', '.join([reexportedName(name) for name in reexports])
|
||||||
cgThings = CGList([CGGeneric('pub use self::%s::{%s};' % (toBindingNamespace(descriptor.name), reexports)),
|
cgThings = CGList([CGGeneric('pub use self::%s::{%s};' % (toBindingNamespace(descriptor.name), reexports)),
|
||||||
cgThings], '\n')
|
cgThings], '\n')
|
||||||
|
|
||||||
|
@ -7778,7 +7824,7 @@ impl Clone for TopTypeId {
|
||||||
# TypeId enum.
|
# TypeId enum.
|
||||||
return "%s(%sTypeId)" % (name, name) if name in hierarchy else name
|
return "%s(%sTypeId)" % (name, name) if name in hierarchy else name
|
||||||
|
|
||||||
for base, derived in hierarchy.iteritems():
|
for base, derived in hierarchy.items():
|
||||||
variants = []
|
variants = []
|
||||||
if config.getDescriptor(base).concrete:
|
if config.getDescriptor(base).concrete:
|
||||||
variants.append(CGGeneric(base))
|
variants.append(CGGeneric(base))
|
||||||
|
|
|
@ -73,7 +73,7 @@ class Configuration:
|
||||||
def getDescriptors(self, **filters):
|
def getDescriptors(self, **filters):
|
||||||
"""Gets the descriptors that match the given filters."""
|
"""Gets the descriptors that match the given filters."""
|
||||||
curr = self.descriptors
|
curr = self.descriptors
|
||||||
for key, val in filters.iteritems():
|
for key, val in filters.items():
|
||||||
if key == 'webIDLFile':
|
if key == 'webIDLFile':
|
||||||
def getter(x):
|
def getter(x):
|
||||||
return x.interface.filename()
|
return x.interface.filename()
|
||||||
|
@ -104,14 +104,14 @@ class Configuration:
|
||||||
else:
|
else:
|
||||||
def getter(x):
|
def getter(x):
|
||||||
return getattr(x, key)
|
return getattr(x, key)
|
||||||
curr = filter(lambda x: getter(x) == val, curr)
|
curr = [x for x in curr if getter(x) == val]
|
||||||
return curr
|
return curr
|
||||||
|
|
||||||
def getEnums(self, webIDLFile):
|
def getEnums(self, webIDLFile):
|
||||||
return filter(lambda e: e.filename() == webIDLFile, self.enums)
|
return [e for e in self.enums if e.filename() == webIDLFile]
|
||||||
|
|
||||||
def getTypedefs(self, webIDLFile):
|
def getTypedefs(self, webIDLFile):
|
||||||
return filter(lambda e: e.filename() == webIDLFile, self.typedefs)
|
return [e for e in self.typedefs if e.filename() == webIDLFile]
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _filterForFile(items, webIDLFile=""):
|
def _filterForFile(items, webIDLFile=""):
|
||||||
|
@ -119,7 +119,7 @@ class Configuration:
|
||||||
if not webIDLFile:
|
if not webIDLFile:
|
||||||
return items
|
return items
|
||||||
|
|
||||||
return filter(lambda x: x.filename() == webIDLFile, items)
|
return [x for x in items if x.filename() == webIDLFile]
|
||||||
|
|
||||||
def getDictionaries(self, webIDLFile=""):
|
def getDictionaries(self, webIDLFile=""):
|
||||||
return self._filterForFile(self.dictionaries, webIDLFile=webIDLFile)
|
return self._filterForFile(self.dictionaries, webIDLFile=webIDLFile)
|
||||||
|
@ -327,7 +327,7 @@ class Descriptor(DescriptorProvider):
|
||||||
if config == '*':
|
if config == '*':
|
||||||
iface = self.interface
|
iface = self.interface
|
||||||
while iface:
|
while iface:
|
||||||
add('all', map(lambda m: m.name, iface.members), attribute)
|
add('all', [m.name for m in iface.members], attribute)
|
||||||
iface = iface.parent
|
iface = iface.parent
|
||||||
else:
|
else:
|
||||||
add('all', [config], attribute)
|
add('all', [config], attribute)
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
""" A WebIDL parser. """
|
""" A WebIDL parser. """
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
from ply import lex, yacc
|
from ply import lex, yacc
|
||||||
import re
|
import re
|
||||||
import os
|
import os
|
||||||
|
@ -57,7 +57,7 @@ def enum(*names, **kw):
|
||||||
|
|
||||||
if "base" not in kw:
|
if "base" not in kw:
|
||||||
return Foo(names)
|
return Foo(names)
|
||||||
return Foo(chain(kw["base"].attrs.keys(), names))
|
return Foo(chain(list(kw["base"].attrs.keys()), names))
|
||||||
|
|
||||||
|
|
||||||
class WebIDLError(Exception):
|
class WebIDLError(Exception):
|
||||||
|
@ -124,6 +124,9 @@ class BuiltinLocation(object):
|
||||||
return (isinstance(other, BuiltinLocation) and
|
return (isinstance(other, BuiltinLocation) and
|
||||||
self.msg == other.msg)
|
self.msg == other.msg)
|
||||||
|
|
||||||
|
def __hash__(self):
|
||||||
|
return hash(self.msg)
|
||||||
|
|
||||||
def filename(self):
|
def filename(self):
|
||||||
return '<builtin>'
|
return '<builtin>'
|
||||||
|
|
||||||
|
@ -2360,6 +2363,9 @@ class IDLNullableType(IDLParametrizedType):
|
||||||
def __eq__(self, other):
|
def __eq__(self, other):
|
||||||
return isinstance(other, IDLNullableType) and self.inner == other.inner
|
return isinstance(other, IDLNullableType) and self.inner == other.inner
|
||||||
|
|
||||||
|
def __hash__(self):
|
||||||
|
return hash(self.inner)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.inner.__str__() + "OrNull"
|
return self.inner.__str__() + "OrNull"
|
||||||
|
|
||||||
|
@ -2522,6 +2528,9 @@ class IDLSequenceType(IDLParametrizedType):
|
||||||
def __eq__(self, other):
|
def __eq__(self, other):
|
||||||
return isinstance(other, IDLSequenceType) and self.inner == other.inner
|
return isinstance(other, IDLSequenceType) and self.inner == other.inner
|
||||||
|
|
||||||
|
def __hash__(self):
|
||||||
|
return hash(self.inner)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.inner.__str__() + "Sequence"
|
return self.inner.__str__() + "Sequence"
|
||||||
|
|
||||||
|
@ -2933,6 +2942,9 @@ class IDLWrapperType(IDLType):
|
||||||
self._identifier == other._identifier and
|
self._identifier == other._identifier and
|
||||||
self.builtin == other.builtin)
|
self.builtin == other.builtin)
|
||||||
|
|
||||||
|
def __hash__(self):
|
||||||
|
return hash((self._identifier, self.builtin))
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.name) + " (Wrapper)"
|
return str(self.name) + " (Wrapper)"
|
||||||
|
|
||||||
|
@ -3301,6 +3313,12 @@ class IDLBuiltinType(IDLType):
|
||||||
return "MaybeShared" + str(self.name)
|
return "MaybeShared" + str(self.name)
|
||||||
return str(self.name)
|
return str(self.name)
|
||||||
|
|
||||||
|
def __eq__(self, other):
|
||||||
|
return other and self.location == other.location and self.name == other.name and self._typeTag == other._typeTag
|
||||||
|
|
||||||
|
def __hash__(self):
|
||||||
|
return hash((self.location, self.name, self._typeTag))
|
||||||
|
|
||||||
def prettyName(self):
|
def prettyName(self):
|
||||||
return IDLBuiltinType.PrettyNames[self._typeTag]
|
return IDLBuiltinType.PrettyNames[self._typeTag]
|
||||||
|
|
||||||
|
@ -3628,7 +3646,7 @@ integerTypeSizes = {
|
||||||
|
|
||||||
|
|
||||||
def matchIntegerValueToType(value):
|
def matchIntegerValueToType(value):
|
||||||
for type, extremes in integerTypeSizes.items():
|
for type, extremes in list(integerTypeSizes.items()):
|
||||||
(min, max) = extremes
|
(min, max) = extremes
|
||||||
if value <= max and value >= min:
|
if value <= max and value >= min:
|
||||||
return BuiltinTypes[type]
|
return BuiltinTypes[type]
|
||||||
|
@ -3707,7 +3725,7 @@ class IDLValue(IDLObject):
|
||||||
elif self.type.isString() and type.isEnum():
|
elif self.type.isString() and type.isEnum():
|
||||||
# Just keep our string, but make sure it's a valid value for this enum
|
# Just keep our string, but make sure it's a valid value for this enum
|
||||||
enum = type.unroll().inner
|
enum = type.unroll().inner
|
||||||
if self.value not in enum.values():
|
if self.value not in list(enum.values()):
|
||||||
raise WebIDLError("'%s' is not a valid default value for enum %s"
|
raise WebIDLError("'%s' is not a valid default value for enum %s"
|
||||||
% (self.value, enum.identifier.name),
|
% (self.value, enum.identifier.name),
|
||||||
[location, enum.location])
|
[location, enum.location])
|
||||||
|
@ -4789,7 +4807,7 @@ class IDLAttribute(IDLInterfaceMember):
|
||||||
"CrossOriginWritable",
|
"CrossOriginWritable",
|
||||||
"SetterThrows",
|
"SetterThrows",
|
||||||
]
|
]
|
||||||
for (key, value) in self._extendedAttrDict.items():
|
for (key, value) in list(self._extendedAttrDict.items()):
|
||||||
if key in allowedExtAttrs:
|
if key in allowedExtAttrs:
|
||||||
if value is not True:
|
if value is not True:
|
||||||
raise WebIDLError("[%s] with a value is currently "
|
raise WebIDLError("[%s] with a value is currently "
|
||||||
|
@ -5479,7 +5497,7 @@ class IDLMethod(IDLInterfaceMember, IDLScope):
|
||||||
[attr.location])
|
[attr.location])
|
||||||
if identifier == "CrossOriginCallable" and self.isStatic():
|
if identifier == "CrossOriginCallable" and self.isStatic():
|
||||||
raise WebIDLError("[CrossOriginCallable] is only allowed on non-static "
|
raise WebIDLError("[CrossOriginCallable] is only allowed on non-static "
|
||||||
"attributes"
|
"attributes",
|
||||||
[attr.location, self.location])
|
[attr.location, self.location])
|
||||||
elif identifier == "Pure":
|
elif identifier == "Pure":
|
||||||
if not attr.noArguments():
|
if not attr.noArguments():
|
||||||
|
@ -5721,6 +5739,7 @@ class Tokenizer(object):
|
||||||
"FLOATLITERAL",
|
"FLOATLITERAL",
|
||||||
"IDENTIFIER",
|
"IDENTIFIER",
|
||||||
"STRING",
|
"STRING",
|
||||||
|
"COMMENTS",
|
||||||
"WHITESPACE",
|
"WHITESPACE",
|
||||||
"OTHER"
|
"OTHER"
|
||||||
]
|
]
|
||||||
|
@ -5753,8 +5772,12 @@ class Tokenizer(object):
|
||||||
t.value = t.value[1:-1]
|
t.value = t.value[1:-1]
|
||||||
return t
|
return t
|
||||||
|
|
||||||
|
def t_COMMENTS(self, t):
|
||||||
|
r'(\/\*(.|\n)*?\*\/)|(\/\/.*)'
|
||||||
|
pass
|
||||||
|
|
||||||
def t_WHITESPACE(self, t):
|
def t_WHITESPACE(self, t):
|
||||||
r'[\t\n\r ]+|[\t\n\r ]*((//[^\n]*|/\*.*?\*/)[\t\n\r ]*)+'
|
r'[\t\n\r ]+'
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def t_ELLIPSIS(self, t):
|
def t_ELLIPSIS(self, t):
|
||||||
|
@ -5840,7 +5863,7 @@ class Tokenizer(object):
|
||||||
"async": "ASYNC",
|
"async": "ASYNC",
|
||||||
}
|
}
|
||||||
|
|
||||||
tokens.extend(keywords.values())
|
tokens.extend(list(keywords.values()))
|
||||||
|
|
||||||
def t_error(self, t):
|
def t_error(self, t):
|
||||||
raise WebIDLError("Unrecognized Input",
|
raise WebIDLError("Unrecognized Input",
|
||||||
|
@ -5849,23 +5872,21 @@ class Tokenizer(object):
|
||||||
lexpos=self.lexer.lexpos,
|
lexpos=self.lexer.lexpos,
|
||||||
filename=self.filename)])
|
filename=self.filename)])
|
||||||
|
|
||||||
def __init__(self, outputdir, lexer=None):
|
def __init__(self, lexer=None):
|
||||||
if lexer:
|
if lexer:
|
||||||
self.lexer = lexer
|
self.lexer = lexer
|
||||||
else:
|
else:
|
||||||
self.lexer = lex.lex(object=self,
|
self.lexer = lex.lex(object=self)
|
||||||
outputdir=outputdir,
|
|
||||||
lextab='webidllex',
|
|
||||||
reflags=re.DOTALL)
|
|
||||||
|
|
||||||
|
|
||||||
class SqueakyCleanLogger(object):
|
class SqueakyCleanLogger(object):
|
||||||
errorWhitelist = [
|
errorWhitelist = [
|
||||||
# Web IDL defines the WHITESPACE token, but doesn't actually
|
# Web IDL defines the WHITESPACE and COMMENTS token, but doesn't actually
|
||||||
# use it ... so far.
|
# use it ... so far.
|
||||||
"Token 'WHITESPACE' defined, but not used",
|
"Token 'WHITESPACE' defined, but not used",
|
||||||
# And that means we have an unused token
|
"Token 'COMMENTS' defined, but not used",
|
||||||
"There is 1 unused token",
|
# And that means we have unused tokens
|
||||||
|
"There are 2 unused tokens",
|
||||||
# Web IDL defines a OtherOrComma rule that's only used in
|
# Web IDL defines a OtherOrComma rule that's only used in
|
||||||
# ExtendedAttributeInner, which we don't use yet.
|
# ExtendedAttributeInner, which we don't use yet.
|
||||||
"Rule 'OtherOrComma' defined, but not used",
|
"Rule 'OtherOrComma' defined, but not used",
|
||||||
|
@ -7506,22 +7527,11 @@ class Parser(Tokenizer):
|
||||||
raise WebIDLError("invalid syntax", [Location(self.lexer, p.lineno, p.lexpos, self._filename)])
|
raise WebIDLError("invalid syntax", [Location(self.lexer, p.lineno, p.lexpos, self._filename)])
|
||||||
|
|
||||||
def __init__(self, outputdir='', lexer=None):
|
def __init__(self, outputdir='', lexer=None):
|
||||||
Tokenizer.__init__(self, outputdir, lexer)
|
Tokenizer.__init__(self, lexer)
|
||||||
|
|
||||||
logger = SqueakyCleanLogger()
|
logger = SqueakyCleanLogger()
|
||||||
try:
|
try:
|
||||||
self.parser = yacc.yacc(module=self,
|
self.parser = yacc.yacc(module=self, errorlog=logger, debug=False)
|
||||||
outputdir=outputdir,
|
|
||||||
tabmodule='webidlyacc',
|
|
||||||
errorlog=logger,
|
|
||||||
debug=False
|
|
||||||
# Pickling the grammar is a speedup in
|
|
||||||
# some cases (older Python?) but a
|
|
||||||
# significant slowdown in others.
|
|
||||||
# We're not pickling for now, until it
|
|
||||||
# becomes a speedup again.
|
|
||||||
# , picklefile='WebIDLGrammar.pkl'
|
|
||||||
)
|
|
||||||
finally:
|
finally:
|
||||||
logger.reportGrammarErrors()
|
logger.reportGrammarErrors()
|
||||||
|
|
||||||
|
@ -7553,12 +7563,12 @@ class Parser(Tokenizer):
|
||||||
return type
|
return type
|
||||||
|
|
||||||
def parse(self, t, filename=None):
|
def parse(self, t, filename=None):
|
||||||
self.lexer.input(t)
|
self._filename = filename
|
||||||
|
self.lexer.input(t.decode(encoding = 'utf-8'))
|
||||||
|
|
||||||
# for tok in iter(self.lexer.token, None):
|
# for tok in iter(self.lexer.token, None):
|
||||||
# print tok
|
# print tok
|
||||||
|
|
||||||
self._filename = filename
|
|
||||||
self._productions.extend(self.parser.parse(lexer=self.lexer, tracking=True))
|
self._productions.extend(self.parser.parse(lexer=self.lexer, tracking=True))
|
||||||
self._filename = None
|
self._filename = None
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ http://www.dabeaz.com/ply/
|
||||||
|
|
||||||
Licensed under BSD.
|
Licensed under BSD.
|
||||||
|
|
||||||
This directory contains just the code and license from PLY version 3.3;
|
This directory contains just the code and license from PLY version 4.0;
|
||||||
the full distribution (see the URL) also contains examples, tests,
|
the full distribution (see the URL) also contains examples, tests,
|
||||||
documentation, and a longer README.
|
documentation, and a longer README.
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
# PLY package
|
# PLY package
|
||||||
# Author: David Beazley (dave@dabeaz.com)
|
# Author: David Beazley (dave@dabeaz.com)
|
||||||
|
# https://dabeaz.com/ply/index.html
|
||||||
|
|
||||||
|
__version__ = '4.0'
|
||||||
__all__ = ['lex','yacc']
|
__all__ = ['lex','yacc']
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -52,7 +52,7 @@ def main():
|
||||||
module = CGBindingRoot(config, prefix, filename).define()
|
module = CGBindingRoot(config, prefix, filename).define()
|
||||||
if module:
|
if module:
|
||||||
with open(os.path.join(out_dir, prefix + ".rs"), "wb") as f:
|
with open(os.path.join(out_dir, prefix + ".rs"), "wb") as f:
|
||||||
f.write(module)
|
f.write(module.encode("utf-8"))
|
||||||
|
|
||||||
|
|
||||||
def make_dir(path):
|
def make_dir(path):
|
||||||
|
@ -66,7 +66,7 @@ def generate(config, name, filename):
|
||||||
root = getattr(GlobalGenRoots, name)(config)
|
root = getattr(GlobalGenRoots, name)(config)
|
||||||
code = root.define()
|
code = root.define()
|
||||||
with open(filename, "wb") as f:
|
with open(filename, "wb") as f:
|
||||||
f.write(code)
|
f.write(code.encode("utf-8"))
|
||||||
|
|
||||||
|
|
||||||
def add_css_properties_attributes(css_properties_json, parser):
|
def add_css_properties_attributes(css_properties_json, parser):
|
||||||
|
|
|
@ -56,12 +56,12 @@ use js::glue::{IsWrapper, UnwrapObjectDynamic};
|
||||||
use js::glue::{RUST_JSID_IS_INT, RUST_JSID_TO_INT};
|
use js::glue::{RUST_JSID_IS_INT, RUST_JSID_TO_INT};
|
||||||
use js::glue::{RUST_JSID_IS_STRING, RUST_JSID_TO_STRING};
|
use js::glue::{RUST_JSID_IS_STRING, RUST_JSID_TO_STRING};
|
||||||
use js::jsapi::{Heap, JSContext, JSObject, JSString};
|
use js::jsapi::{Heap, JSContext, JSObject, JSString};
|
||||||
use js::jsapi::{IsWindowProxy, JS_NewStringCopyN, JS_StringHasLatin1Chars};
|
use js::jsapi::{IsWindowProxy, JS_DeprecatedStringHasLatin1Chars, JS_NewStringCopyN};
|
||||||
use js::jsapi::{
|
use js::jsapi::{
|
||||||
JS_GetLatin1StringCharsAndLength, JS_GetTwoByteStringCharsAndLength, JS_IsExceptionPending,
|
JS_GetLatin1StringCharsAndLength, JS_GetTwoByteStringCharsAndLength, JS_IsExceptionPending,
|
||||||
};
|
};
|
||||||
use js::jsval::{ObjectValue, StringValue, UndefinedValue};
|
use js::jsval::{ObjectValue, StringValue, UndefinedValue};
|
||||||
use js::rust::wrappers::{JS_GetProperty, JS_HasProperty, JS_IsArrayObject};
|
use js::rust::wrappers::{IsArrayObject, JS_GetProperty, JS_HasProperty};
|
||||||
use js::rust::{get_object_class, is_dom_class, is_dom_object, maybe_wrap_value, ToString};
|
use js::rust::{get_object_class, is_dom_class, is_dom_object, maybe_wrap_value, ToString};
|
||||||
use js::rust::{HandleId, HandleObject, HandleValue, MutableHandleValue};
|
use js::rust::{HandleId, HandleObject, HandleValue, MutableHandleValue};
|
||||||
use num_traits::Float;
|
use num_traits::Float;
|
||||||
|
@ -220,7 +220,7 @@ impl FromJSValConvertible for DOMString {
|
||||||
/// Convert the given `JSString` to a `DOMString`. Fails if the string does not
|
/// Convert the given `JSString` to a `DOMString`. Fails if the string does not
|
||||||
/// contain valid UTF-16.
|
/// contain valid UTF-16.
|
||||||
pub unsafe fn jsstring_to_str(cx: *mut JSContext, s: *mut JSString) -> DOMString {
|
pub unsafe fn jsstring_to_str(cx: *mut JSContext, s: *mut JSString) -> DOMString {
|
||||||
let latin1 = JS_StringHasLatin1Chars(s);
|
let latin1 = JS_DeprecatedStringHasLatin1Chars(s);
|
||||||
DOMString::from_string(if latin1 {
|
DOMString::from_string(if latin1 {
|
||||||
latin1_to_string(cx, s)
|
latin1_to_string(cx, s)
|
||||||
} else {
|
} else {
|
||||||
|
@ -271,7 +271,7 @@ impl FromJSValConvertible for USVString {
|
||||||
debug!("ToString failed");
|
debug!("ToString failed");
|
||||||
return Err(());
|
return Err(());
|
||||||
}
|
}
|
||||||
let latin1 = JS_StringHasLatin1Chars(jsstr);
|
let latin1 = JS_DeprecatedStringHasLatin1Chars(jsstr);
|
||||||
if latin1 {
|
if latin1 {
|
||||||
// FIXME(ajeffrey): Convert directly from DOMString to USVString
|
// FIXME(ajeffrey): Convert directly from DOMString to USVString
|
||||||
return Ok(ConversionResult::Success(USVString(String::from(
|
return Ok(ConversionResult::Success(USVString(String::from(
|
||||||
|
@ -317,7 +317,7 @@ impl FromJSValConvertible for ByteString {
|
||||||
return Err(());
|
return Err(());
|
||||||
}
|
}
|
||||||
|
|
||||||
let latin1 = JS_StringHasLatin1Chars(string);
|
let latin1 = JS_DeprecatedStringHasLatin1Chars(string);
|
||||||
if latin1 {
|
if latin1 {
|
||||||
let mut length = 0;
|
let mut length = 0;
|
||||||
let chars = JS_GetLatin1StringCharsAndLength(cx, ptr::null(), string, &mut length);
|
let chars = JS_GetLatin1StringCharsAndLength(cx, ptr::null(), string, &mut length);
|
||||||
|
@ -564,7 +564,7 @@ impl<T: DomObject> ToJSValConvertible for DomRoot<T> {
|
||||||
/// NodeList).
|
/// NodeList).
|
||||||
pub unsafe fn is_array_like(cx: *mut JSContext, value: HandleValue) -> bool {
|
pub unsafe fn is_array_like(cx: *mut JSContext, value: HandleValue) -> bool {
|
||||||
let mut is_array = false;
|
let mut is_array = false;
|
||||||
assert!(JS_IsArrayObject(cx, value, &mut is_array));
|
assert!(IsArrayObject(cx, value, &mut is_array));
|
||||||
if is_array {
|
if is_array {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,6 +116,7 @@ unsafe fn write_blob(
|
||||||
unsafe extern "C" fn read_callback(
|
unsafe extern "C" fn read_callback(
|
||||||
cx: *mut JSContext,
|
cx: *mut JSContext,
|
||||||
r: *mut JSStructuredCloneReader,
|
r: *mut JSStructuredCloneReader,
|
||||||
|
_policy: *const CloneDataPolicy,
|
||||||
tag: u32,
|
tag: u32,
|
||||||
_data: u32,
|
_data: u32,
|
||||||
closure: *mut raw::c_void,
|
closure: *mut raw::c_void,
|
||||||
|
@ -143,6 +144,7 @@ unsafe extern "C" fn write_callback(
|
||||||
cx: *mut JSContext,
|
cx: *mut JSContext,
|
||||||
w: *mut JSStructuredCloneWriter,
|
w: *mut JSStructuredCloneWriter,
|
||||||
obj: RawHandleObject,
|
obj: RawHandleObject,
|
||||||
|
_same_process_scope_required: *mut bool,
|
||||||
closure: *mut raw::c_void,
|
closure: *mut raw::c_void,
|
||||||
) -> bool {
|
) -> bool {
|
||||||
if let Ok(blob) = root_from_object::<Blob>(*obj, cx) {
|
if let Ok(blob) = root_from_object::<Blob>(*obj, cx) {
|
||||||
|
@ -216,6 +218,7 @@ unsafe extern "C" fn free_transfer_callback(
|
||||||
unsafe extern "C" fn can_transfer_callback(
|
unsafe extern "C" fn can_transfer_callback(
|
||||||
cx: *mut JSContext,
|
cx: *mut JSContext,
|
||||||
obj: RawHandleObject,
|
obj: RawHandleObject,
|
||||||
|
_same_process_scope_required: *mut bool,
|
||||||
_closure: *mut raw::c_void,
|
_closure: *mut raw::c_void,
|
||||||
) -> bool {
|
) -> bool {
|
||||||
if let Ok(_port) = root_from_object::<MessagePort>(*obj, cx) {
|
if let Ok(_port) = root_from_object::<MessagePort>(*obj, cx) {
|
||||||
|
@ -224,7 +227,21 @@ unsafe extern "C" fn can_transfer_callback(
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe extern "C" fn report_error_callback(_cx: *mut JSContext, _errorid: u32) {}
|
unsafe extern "C" fn report_error_callback(
|
||||||
|
_cx: *mut JSContext,
|
||||||
|
_errorid: u32,
|
||||||
|
_closure: *mut ::std::os::raw::c_void,
|
||||||
|
_error_message: *const ::std::os::raw::c_char,
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
|
unsafe extern "C" fn sab_cloned_callback(
|
||||||
|
_cx: *mut JSContext,
|
||||||
|
_receiving: bool,
|
||||||
|
_closure: *mut ::std::os::raw::c_void,
|
||||||
|
) -> bool {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
|
||||||
static STRUCTURED_CLONE_CALLBACKS: JSStructuredCloneCallbacks = JSStructuredCloneCallbacks {
|
static STRUCTURED_CLONE_CALLBACKS: JSStructuredCloneCallbacks = JSStructuredCloneCallbacks {
|
||||||
read: Some(read_callback),
|
read: Some(read_callback),
|
||||||
|
@ -234,6 +251,7 @@ static STRUCTURED_CLONE_CALLBACKS: JSStructuredCloneCallbacks = JSStructuredClon
|
||||||
writeTransfer: Some(write_transfer_callback),
|
writeTransfer: Some(write_transfer_callback),
|
||||||
freeTransfer: Some(free_transfer_callback),
|
freeTransfer: Some(free_transfer_callback),
|
||||||
canTransfer: Some(can_transfer_callback),
|
canTransfer: Some(can_transfer_callback),
|
||||||
|
sabCloned: Some(sab_cloned_callback),
|
||||||
};
|
};
|
||||||
|
|
||||||
/// A data holder for results from, and inputs to, structured-data read/write operations.
|
/// A data holder for results from, and inputs to, structured-data read/write operations.
|
||||||
|
@ -286,15 +304,15 @@ pub fn write(
|
||||||
);
|
);
|
||||||
let scdata = &mut ((*scbuf).data_);
|
let scdata = &mut ((*scbuf).data_);
|
||||||
let policy = CloneDataPolicy {
|
let policy = CloneDataPolicy {
|
||||||
// TODO: SAB?
|
allowIntraClusterClonableSharedObjects_: false,
|
||||||
sharedArrayBuffer_: false,
|
allowSharedMemoryObjects_: false,
|
||||||
};
|
};
|
||||||
let result = JS_WriteStructuredClone(
|
let result = JS_WriteStructuredClone(
|
||||||
*cx,
|
*cx,
|
||||||
message,
|
message,
|
||||||
scdata,
|
scdata,
|
||||||
StructuredCloneScope::DifferentProcess,
|
StructuredCloneScope::DifferentProcess,
|
||||||
policy,
|
&policy,
|
||||||
&STRUCTURED_CLONE_CALLBACKS,
|
&STRUCTURED_CLONE_CALLBACKS,
|
||||||
sc_holder_ptr as *mut raw::c_void,
|
sc_holder_ptr as *mut raw::c_void,
|
||||||
val.handle(),
|
val.handle(),
|
||||||
|
@ -361,8 +379,9 @@ pub fn read(
|
||||||
JS_STRUCTURED_CLONE_VERSION,
|
JS_STRUCTURED_CLONE_VERSION,
|
||||||
StructuredCloneScope::DifferentProcess,
|
StructuredCloneScope::DifferentProcess,
|
||||||
rval,
|
rval,
|
||||||
CloneDataPolicy {
|
&CloneDataPolicy {
|
||||||
sharedArrayBuffer_: false,
|
allowIntraClusterClonableSharedObjects_: false,
|
||||||
|
allowSharedMemoryObjects_: false,
|
||||||
},
|
},
|
||||||
&STRUCTURED_CLONE_CALLBACKS,
|
&STRUCTURED_CLONE_CALLBACKS,
|
||||||
sc_holder_ptr as *mut raw::c_void,
|
sc_holder_ptr as *mut raw::c_void,
|
||||||
|
|
|
@ -16,7 +16,7 @@ use crate::dom::bindings::str::DOMString;
|
||||||
use crate::dom::bindings::trace::trace_object;
|
use crate::dom::bindings::trace::trace_object;
|
||||||
use crate::dom::windowproxy;
|
use crate::dom::windowproxy;
|
||||||
use crate::script_runtime::JSContext as SafeJSContext;
|
use crate::script_runtime::JSContext as SafeJSContext;
|
||||||
use js::conversions::{jsstr_to_string, ToJSValConvertible};
|
use js::conversions::ToJSValConvertible;
|
||||||
use js::glue::{CallJitGetterOp, CallJitMethodOp, CallJitSetterOp, IsWrapper};
|
use js::glue::{CallJitGetterOp, CallJitMethodOp, CallJitSetterOp, IsWrapper};
|
||||||
use js::glue::{GetCrossCompartmentWrapper, JS_GetReservedSlot, WrapperNew};
|
use js::glue::{GetCrossCompartmentWrapper, JS_GetReservedSlot, WrapperNew};
|
||||||
use js::glue::{UnwrapObjectDynamic, UnwrapObjectStatic, RUST_JSID_TO_INT, RUST_JSID_TO_STRING};
|
use js::glue::{UnwrapObjectDynamic, UnwrapObjectStatic, RUST_JSID_TO_INT, RUST_JSID_TO_STRING};
|
||||||
|
@ -27,15 +27,15 @@ use js::jsapi::HandleId as RawHandleId;
|
||||||
use js::jsapi::HandleObject as RawHandleObject;
|
use js::jsapi::HandleObject as RawHandleObject;
|
||||||
use js::jsapi::MutableHandleIdVector as RawMutableHandleIdVector;
|
use js::jsapi::MutableHandleIdVector as RawMutableHandleIdVector;
|
||||||
use js::jsapi::MutableHandleObject as RawMutableHandleObject;
|
use js::jsapi::MutableHandleObject as RawMutableHandleObject;
|
||||||
|
use js::jsapi::{AtomToLinearString, GetLinearStringCharAt, GetLinearStringLength};
|
||||||
use js::jsapi::{CallArgs, DOMCallbacks, GetNonCCWObjectGlobal};
|
use js::jsapi::{CallArgs, DOMCallbacks, GetNonCCWObjectGlobal};
|
||||||
use js::jsapi::{Heap, JSAutoRealm, JSContext, JS_FreezeObject};
|
use js::jsapi::{Heap, JSAutoRealm, JSContext, JS_FreezeObject};
|
||||||
|
use js::jsapi::{JSAtom, JS_IsExceptionPending, JS_IsGlobalObject};
|
||||||
use js::jsapi::{JSJitInfo, JSObject, JSTracer, JSWrapObjectCallbacks};
|
use js::jsapi::{JSJitInfo, JSObject, JSTracer, JSWrapObjectCallbacks};
|
||||||
use js::jsapi::{JS_EnumerateStandardClasses, JS_GetLatin1StringCharsAndLength};
|
|
||||||
use js::jsapi::{JS_IsExceptionPending, JS_IsGlobalObject};
|
|
||||||
use js::jsapi::{
|
use js::jsapi::{
|
||||||
JS_ResolveStandardClass, JS_StringHasLatin1Chars, ObjectOpResult, StringIsArrayIndex1,
|
JS_DeprecatedStringHasLatin1Chars, JS_ResolveStandardClass, ObjectOpResult, StringIsArrayIndex,
|
||||||
StringIsArrayIndex2,
|
|
||||||
};
|
};
|
||||||
|
use js::jsapi::{JS_EnumerateStandardClasses, JS_GetLatin1StringCharsAndLength};
|
||||||
use js::jsval::{JSVal, UndefinedValue};
|
use js::jsval::{JSVal, UndefinedValue};
|
||||||
use js::rust::wrappers::JS_DeletePropertyById;
|
use js::rust::wrappers::JS_DeletePropertyById;
|
||||||
use js::rust::wrappers::JS_ForwardGetPropertyTo;
|
use js::rust::wrappers::JS_ForwardGetPropertyTo;
|
||||||
|
@ -191,7 +191,7 @@ pub unsafe fn get_property_on_prototype(
|
||||||
|
|
||||||
/// Get an array index from the given `jsid`. Returns `None` if the given
|
/// Get an array index from the given `jsid`. Returns `None` if the given
|
||||||
/// `jsid` is not an integer.
|
/// `jsid` is not an integer.
|
||||||
pub unsafe fn get_array_index_from_id(cx: *mut JSContext, id: HandleId) -> Option<u32> {
|
pub unsafe fn get_array_index_from_id(_cx: *mut JSContext, id: HandleId) -> Option<u32> {
|
||||||
let raw_id = id.into();
|
let raw_id = id.into();
|
||||||
if RUST_JSID_IS_INT(raw_id) {
|
if RUST_JSID_IS_INT(raw_id) {
|
||||||
return Some(RUST_JSID_TO_INT(raw_id) as u32);
|
return Some(RUST_JSID_TO_INT(raw_id) as u32);
|
||||||
|
@ -201,7 +201,28 @@ pub unsafe fn get_array_index_from_id(cx: *mut JSContext, id: HandleId) -> Optio
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
|
||||||
let s = jsstr_to_string(cx, RUST_JSID_TO_STRING(raw_id));
|
let atom = RUST_JSID_TO_STRING(raw_id) as *mut JSAtom;
|
||||||
|
let s = AtomToLinearString(atom);
|
||||||
|
if GetLinearStringLength(s) == 0 {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
|
||||||
|
let chars = [GetLinearStringCharAt(s, 0)];
|
||||||
|
let first_char = char::decode_utf16(chars.iter().cloned())
|
||||||
|
.next()
|
||||||
|
.map_or('\0', |r| r.unwrap_or('\0'));
|
||||||
|
if first_char < 'a' || first_char > 'z' {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut i = 0;
|
||||||
|
if StringIsArrayIndex(s, &mut i) {
|
||||||
|
Some(i)
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
|
||||||
|
/*let s = jsstr_to_string(cx, RUST_JSID_TO_STRING(raw_id));
|
||||||
if s.len() == 0 {
|
if s.len() == 0 {
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
@ -225,7 +246,7 @@ pub unsafe fn get_array_index_from_id(cx: *mut JSContext, id: HandleId) -> Optio
|
||||||
Some(i)
|
Some(i)
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Find the enum equivelent of a string given by `v` in `pairs`.
|
/// Find the enum equivelent of a string given by `v` in `pairs`.
|
||||||
|
@ -436,7 +457,7 @@ pub unsafe extern "C" fn resolve_global(
|
||||||
}
|
}
|
||||||
|
|
||||||
let string = RUST_JSID_TO_STRING(id);
|
let string = RUST_JSID_TO_STRING(id);
|
||||||
if !JS_StringHasLatin1Chars(string) {
|
if !JS_DeprecatedStringHasLatin1Chars(string) {
|
||||||
*rval = false;
|
*rval = false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,6 +66,7 @@ use std::io::{Read, Seek, Write};
|
||||||
use std::mem::replace;
|
use std::mem::replace;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
use std::process::Command;
|
use std::process::Command;
|
||||||
|
use std::ptr;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
use std::sync::{Arc, Mutex};
|
use std::sync::{Arc, Mutex};
|
||||||
use style::str::{StaticStringVec, HTML_SPACE_CHARACTERS};
|
use style::str::{StaticStringVec, HTML_SPACE_CHARACTERS};
|
||||||
|
@ -445,6 +446,7 @@ impl FetchResponseListener for ClassicContext {
|
||||||
fetch_options: self.fetch_options.clone(),
|
fetch_options: self.fetch_options.clone(),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let mut token = ptr::null_mut();
|
||||||
unsafe {
|
unsafe {
|
||||||
assert!(CompileOffThread1(
|
assert!(CompileOffThread1(
|
||||||
*cx,
|
*cx,
|
||||||
|
@ -452,6 +454,7 @@ impl FetchResponseListener for ClassicContext {
|
||||||
&mut transform_str_to_source_text(&context.script_text) as *mut _,
|
&mut transform_str_to_source_text(&context.script_text) as *mut _,
|
||||||
Some(off_thread_compilation_callback),
|
Some(off_thread_compilation_callback),
|
||||||
Box::into_raw(context) as *mut c_void,
|
Box::into_raw(context) as *mut c_void,
|
||||||
|
&mut token,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -36,7 +36,7 @@ use js::jsapi::JSAutoRealm;
|
||||||
use js::jsapi::JSObject;
|
use js::jsapi::JSObject;
|
||||||
use js::jsapi::JS_ClearPendingException;
|
use js::jsapi::JS_ClearPendingException;
|
||||||
use js::jsapi::JS_IsExceptionPending;
|
use js::jsapi::JS_IsExceptionPending;
|
||||||
use js::jsapi::JS_NewArrayObject;
|
use js::jsapi::NewArrayObject;
|
||||||
use js::jsval::JSVal;
|
use js::jsval::JSVal;
|
||||||
use js::jsval::ObjectValue;
|
use js::jsval::ObjectValue;
|
||||||
use js::jsval::UndefinedValue;
|
use js::jsval::UndefinedValue;
|
||||||
|
@ -333,7 +333,7 @@ impl PaintWorkletGlobalScope {
|
||||||
.collect();
|
.collect();
|
||||||
let arguments_value_array =
|
let arguments_value_array =
|
||||||
unsafe { HandleValueArray::from_rooted_slice(&*arguments_value_vec) };
|
unsafe { HandleValueArray::from_rooted_slice(&*arguments_value_vec) };
|
||||||
rooted!(in(*cx) let argument_object = unsafe { JS_NewArrayObject(*cx, &arguments_value_array) });
|
rooted!(in(*cx) let argument_object = unsafe { NewArrayObject(*cx, &arguments_value_array) });
|
||||||
|
|
||||||
let args_slice = [
|
let args_slice = [
|
||||||
ObjectValue(rendering_context.reflector().get_jsobject().get()),
|
ObjectValue(rendering_context.reflector().get_jsobject().get()),
|
||||||
|
|
|
@ -112,7 +112,7 @@ fn typedarray_elem_size(typeid: Type) -> usize {
|
||||||
Type::Int32 | Type::Uint32 | Type::Float32 => 4,
|
Type::Int32 | Type::Uint32 | Type::Float32 => 4,
|
||||||
Type::Int64 | Type::Float64 => 8,
|
Type::Int64 | Type::Float64 => 8,
|
||||||
Type::BigInt64 | Type::BigUint64 => 8,
|
Type::BigInt64 | Type::BigUint64 => 8,
|
||||||
Type::MaxTypedArrayViewType => unreachable!(),
|
Type::Simd128 | Type::MaxTypedArrayViewType => unreachable!(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5042,6 +5042,7 @@ fn array_buffer_type_to_sized_type(type_: Type) -> Option<SizedDataType> {
|
||||||
Type::BigInt64 |
|
Type::BigInt64 |
|
||||||
Type::BigUint64 |
|
Type::BigUint64 |
|
||||||
Type::MaxTypedArrayViewType |
|
Type::MaxTypedArrayViewType |
|
||||||
Type::Int64 => None,
|
Type::Int64 |
|
||||||
|
Type::Simd128 => None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#![feature(assoc_char_funcs)]
|
||||||
#![feature(const_fn)]
|
#![feature(const_fn)]
|
||||||
#![feature(core_intrinsics)]
|
#![feature(core_intrinsics)]
|
||||||
#![feature(drain_filter)]
|
#![feature(drain_filter)]
|
||||||
|
|
|
@ -45,17 +45,17 @@ use js::jsapi::Handle as RawHandle;
|
||||||
use js::jsapi::HandleObject;
|
use js::jsapi::HandleObject;
|
||||||
use js::jsapi::HandleValue as RawHandleValue;
|
use js::jsapi::HandleValue as RawHandleValue;
|
||||||
use js::jsapi::Value;
|
use js::jsapi::Value;
|
||||||
use js::jsapi::{CompileModuleDontInflate, ExceptionStackBehavior, FinishDynamicModuleImport};
|
use js::jsapi::{CompileModule1, ExceptionStackBehavior, FinishDynamicModuleImport};
|
||||||
|
use js::jsapi::{DynamicImportStatus, SetModuleDynamicImportHook, SetScriptPrivateReferenceHooks};
|
||||||
use js::jsapi::{GetModuleResolveHook, JSRuntime, SetModuleResolveHook};
|
use js::jsapi::{GetModuleResolveHook, JSRuntime, SetModuleResolveHook};
|
||||||
use js::jsapi::{GetRequestedModules, SetModuleMetadataHook};
|
use js::jsapi::{GetRequestedModules, SetModuleMetadataHook};
|
||||||
use js::jsapi::{Heap, JSContext, JS_ClearPendingException, SetModulePrivate};
|
use js::jsapi::{Heap, JSContext, JS_ClearPendingException, SetModulePrivate};
|
||||||
use js::jsapi::{JSAutoRealm, JSObject, JSString};
|
use js::jsapi::{JSAutoRealm, JSObject, JSString};
|
||||||
use js::jsapi::{JS_DefineProperty4, JS_IsExceptionPending, JS_NewStringCopyN, JSPROP_ENUMERATE};
|
use js::jsapi::{JS_DefineProperty4, JS_IsExceptionPending, JS_NewStringCopyN, JSPROP_ENUMERATE};
|
||||||
use js::jsapi::{ModuleEvaluate, ModuleInstantiate};
|
use js::jsapi::{ModuleEvaluate, ModuleInstantiate};
|
||||||
use js::jsapi::{SetModuleDynamicImportHook, SetScriptPrivateReferenceHooks};
|
|
||||||
use js::jsval::{JSVal, PrivateValue, UndefinedValue};
|
use js::jsval::{JSVal, PrivateValue, UndefinedValue};
|
||||||
|
use js::rust::jsapi_wrapped::{GetArrayLength, JS_GetElement};
|
||||||
use js::rust::jsapi_wrapped::{GetRequestedModuleSpecifier, JS_GetPendingException};
|
use js::rust::jsapi_wrapped::{GetRequestedModuleSpecifier, JS_GetPendingException};
|
||||||
use js::rust::jsapi_wrapped::{JS_GetArrayLength, JS_GetElement};
|
|
||||||
use js::rust::transform_str_to_source_text;
|
use js::rust::transform_str_to_source_text;
|
||||||
use js::rust::wrappers::JS_SetPendingException;
|
use js::rust::wrappers::JS_SetPendingException;
|
||||||
use js::rust::CompileOptionsWrapper;
|
use js::rust::CompileOptionsWrapper;
|
||||||
|
@ -425,7 +425,7 @@ impl ModuleTree {
|
||||||
unsafe { CompileOptionsWrapper::new(*global.get_cx(), url.as_str(), 1) };
|
unsafe { CompileOptionsWrapper::new(*global.get_cx(), url.as_str(), 1) };
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
rooted!(in(*global.get_cx()) let mut module_script = CompileModuleDontInflate(
|
rooted!(in(*global.get_cx()) let mut module_script = CompileModule1(
|
||||||
*global.get_cx(),
|
*global.get_cx(),
|
||||||
compile_options.ptr,
|
compile_options.ptr,
|
||||||
&mut transform_str_to_source_text(&module_script_text),
|
&mut transform_str_to_source_text(&module_script_text),
|
||||||
|
@ -558,7 +558,7 @@ impl ModuleTree {
|
||||||
|
|
||||||
let mut length = 0;
|
let mut length = 0;
|
||||||
|
|
||||||
if !JS_GetArrayLength(*global.get_cx(), requested_modules.handle(), &mut length) {
|
if !GetArrayLength(*global.get_cx(), requested_modules.handle(), &mut length) {
|
||||||
let module_length_error =
|
let module_length_error =
|
||||||
gen_type_error(&global, "Wrong length of requested modules".to_owned());
|
gen_type_error(&global, "Wrong length of requested modules".to_owned());
|
||||||
|
|
||||||
|
@ -995,26 +995,38 @@ impl ModuleOwner {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Ensure any failures related to importing this dynamic module are immediately reported.
|
// Ensure any failures related to importing this dynamic module are immediately reported.
|
||||||
match (network_error, existing_rethrow_error, execution_err) {
|
let status = match (network_error, existing_rethrow_error, execution_err) {
|
||||||
(Some(_), _, _) => unsafe {
|
(Some(_), _, _) => unsafe {
|
||||||
let err = gen_type_error(&global, "Dynamic import failed".to_owned());
|
let err = gen_type_error(&global, "Dynamic import failed".to_owned());
|
||||||
JS_SetPendingException(*cx, err.handle(), ExceptionStackBehavior::Capture)
|
JS_SetPendingException(*cx, err.handle(), ExceptionStackBehavior::Capture);
|
||||||
|
DynamicImportStatus::Failed
|
||||||
},
|
},
|
||||||
(None, _, Some(execution_err)) => unsafe {
|
(None, _, Some(execution_err)) => unsafe {
|
||||||
JS_SetPendingException(*cx, execution_err.handle(), ExceptionStackBehavior::Capture)
|
JS_SetPendingException(
|
||||||
|
*cx,
|
||||||
|
execution_err.handle(),
|
||||||
|
ExceptionStackBehavior::Capture,
|
||||||
|
);
|
||||||
|
DynamicImportStatus::Failed
|
||||||
},
|
},
|
||||||
(None, Some(rethrow_error), _) => unsafe {
|
(None, Some(rethrow_error), _) => unsafe {
|
||||||
JS_SetPendingException(*cx, rethrow_error.handle(), ExceptionStackBehavior::Capture)
|
JS_SetPendingException(
|
||||||
|
*cx,
|
||||||
|
rethrow_error.handle(),
|
||||||
|
ExceptionStackBehavior::Capture,
|
||||||
|
);
|
||||||
|
DynamicImportStatus::Failed
|
||||||
},
|
},
|
||||||
// do nothing if there's no errors
|
// do nothing if there's no errors
|
||||||
(None, None, None) => {},
|
(None, None, None) => DynamicImportStatus::Ok,
|
||||||
}
|
};
|
||||||
|
|
||||||
debug!("Finishing dynamic import for {:?}", module_identity);
|
debug!("Finishing dynamic import for {:?}", module_identity);
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
FinishDynamicModuleImport(
|
FinishDynamicModuleImport(
|
||||||
*cx,
|
*cx,
|
||||||
|
status,
|
||||||
module.referencing_private.handle(),
|
module.referencing_private.handle(),
|
||||||
module.specifier.handle(),
|
module.specifier.handle(),
|
||||||
module.promise.reflector().get_jsobject().into_handle(),
|
module.promise.reflector().get_jsobject().into_handle(),
|
||||||
|
|
|
@ -50,17 +50,17 @@ use js::jsapi::PromiseUserInputEventHandlingState;
|
||||||
use js::jsapi::StreamConsumer as JSStreamConsumer;
|
use js::jsapi::StreamConsumer as JSStreamConsumer;
|
||||||
use js::jsapi::{BuildIdCharVector, DisableIncrementalGC, GCDescription, GCProgress};
|
use js::jsapi::{BuildIdCharVector, DisableIncrementalGC, GCDescription, GCProgress};
|
||||||
use js::jsapi::{Dispatchable as JSRunnable, Dispatchable_MaybeShuttingDown};
|
use js::jsapi::{Dispatchable as JSRunnable, Dispatchable_MaybeShuttingDown};
|
||||||
|
use js::jsapi::{
|
||||||
|
GCReason, JSGCInvocationKind, JSGCStatus, JS_AddExtraGCRootsTracer,
|
||||||
|
JS_RequestInterruptCallback, JS_SetGCCallback,
|
||||||
|
};
|
||||||
use js::jsapi::{HandleObject, Heap, JobQueue};
|
use js::jsapi::{HandleObject, Heap, JobQueue};
|
||||||
use js::jsapi::{JSContext as RawJSContext, JSTracer, SetDOMCallbacks, SetGCSliceCallback};
|
use js::jsapi::{JSContext as RawJSContext, JSTracer, SetDOMCallbacks, SetGCSliceCallback};
|
||||||
use js::jsapi::{
|
|
||||||
JSGCInvocationKind, JSGCStatus, JS_AddExtraGCRootsTracer, JS_RequestInterruptCallback,
|
|
||||||
JS_SetGCCallback,
|
|
||||||
};
|
|
||||||
use js::jsapi::{JSGCMode, JSGCParamKey, JS_SetGCParameter, JS_SetGlobalJitCompilerOption};
|
use js::jsapi::{JSGCMode, JSGCParamKey, JS_SetGCParameter, JS_SetGlobalJitCompilerOption};
|
||||||
use js::jsapi::{
|
use js::jsapi::{
|
||||||
JSJitCompilerOption, JS_SetOffthreadIonCompilationEnabled, JS_SetParallelParsingEnabled,
|
JSJitCompilerOption, JS_SetOffthreadIonCompilationEnabled, JS_SetParallelParsingEnabled,
|
||||||
};
|
};
|
||||||
use js::jsapi::{JSObject, PromiseRejectionHandlingState, SetPreserveWrapperCallback};
|
use js::jsapi::{JSObject, PromiseRejectionHandlingState, SetPreserveWrapperCallbacks};
|
||||||
use js::jsapi::{SetJobQueue, SetProcessBuildIdOp, SetPromiseRejectionTrackerCallback};
|
use js::jsapi::{SetJobQueue, SetProcessBuildIdOp, SetPromiseRejectionTrackerCallback};
|
||||||
use js::jsval::UndefinedValue;
|
use js::jsval::UndefinedValue;
|
||||||
use js::panic::wrap_panic;
|
use js::panic::wrap_panic;
|
||||||
|
@ -478,8 +478,16 @@ unsafe fn new_rt_and_cx_with_parent(
|
||||||
unsafe extern "C" fn empty_wrapper_callback(_: *mut RawJSContext, _: HandleObject) -> bool {
|
unsafe extern "C" fn empty_wrapper_callback(_: *mut RawJSContext, _: HandleObject) -> bool {
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
unsafe extern "C" fn empty_has_released_callback(_: HandleObject) -> bool {
|
||||||
|
// fixme: return true when the Drop impl for a DOM object has been invoked
|
||||||
|
false
|
||||||
|
}
|
||||||
SetDOMCallbacks(cx, &DOM_CALLBACKS);
|
SetDOMCallbacks(cx, &DOM_CALLBACKS);
|
||||||
SetPreserveWrapperCallback(cx, Some(empty_wrapper_callback));
|
SetPreserveWrapperCallbacks(
|
||||||
|
cx,
|
||||||
|
Some(empty_wrapper_callback),
|
||||||
|
Some(empty_has_released_callback),
|
||||||
|
);
|
||||||
// Pre barriers aren't working correctly at the moment
|
// Pre barriers aren't working correctly at the moment
|
||||||
DisableIncrementalGC(cx);
|
DisableIncrementalGC(cx);
|
||||||
|
|
||||||
|
@ -542,7 +550,7 @@ unsafe fn new_rt_and_cx_with_parent(
|
||||||
}
|
}
|
||||||
cx_opts.set_wasmBaseline_(pref!(js.wasm.baseline.enabled));
|
cx_opts.set_wasmBaseline_(pref!(js.wasm.baseline.enabled));
|
||||||
cx_opts.set_wasmIon_(pref!(js.wasm.ion.enabled));
|
cx_opts.set_wasmIon_(pref!(js.wasm.ion.enabled));
|
||||||
cx_opts.set_extraWarnings_(pref!(js.strict.enabled));
|
cx_opts.set_strictMode_(pref!(js.strict.enabled));
|
||||||
// TODO: handle js.strict.debug.enabled
|
// TODO: handle js.strict.debug.enabled
|
||||||
// TODO: handle js.throw_on_asmjs_validation_failure (needs new Spidermonkey)
|
// TODO: handle js.throw_on_asmjs_validation_failure (needs new Spidermonkey)
|
||||||
JS_SetGlobalJitCompilerOption(
|
JS_SetGlobalJitCompilerOption(
|
||||||
|
@ -574,7 +582,6 @@ unsafe fn new_rt_and_cx_with_parent(
|
||||||
// TODO: handle js.asyncstack.enabled (needs new Spidermonkey)
|
// TODO: handle js.asyncstack.enabled (needs new Spidermonkey)
|
||||||
// TODO: handle js.throw_on_debugee_would_run (needs new Spidermonkey)
|
// TODO: handle js.throw_on_debugee_would_run (needs new Spidermonkey)
|
||||||
// TODO: handle js.dump_stack_on_debugee_would_run (needs new Spidermonkey)
|
// TODO: handle js.dump_stack_on_debugee_would_run (needs new Spidermonkey)
|
||||||
cx_opts.set_werror_(pref!(js.werror.enabled));
|
|
||||||
// TODO: handle js.shared_memory.enabled
|
// TODO: handle js.shared_memory.enabled
|
||||||
JS_SetGCParameter(
|
JS_SetGCParameter(
|
||||||
cx,
|
cx,
|
||||||
|
@ -604,49 +611,39 @@ unsafe fn new_rt_and_cx_with_parent(
|
||||||
if let Some(val) = in_range(pref!(js.mem.gc.high_frequency_time_limit_ms), 0, 10_000) {
|
if let Some(val) = in_range(pref!(js.mem.gc.high_frequency_time_limit_ms), 0, 10_000) {
|
||||||
JS_SetGCParameter(cx, JSGCParamKey::JSGC_HIGH_FREQUENCY_TIME_LIMIT, val as u32);
|
JS_SetGCParameter(cx, JSGCParamKey::JSGC_HIGH_FREQUENCY_TIME_LIMIT, val as u32);
|
||||||
}
|
}
|
||||||
JS_SetGCParameter(
|
|
||||||
cx,
|
|
||||||
JSGCParamKey::JSGC_DYNAMIC_MARK_SLICE,
|
|
||||||
pref!(js.mem.gc.dynamic_mark_slice.enabled) as u32,
|
|
||||||
);
|
|
||||||
JS_SetGCParameter(
|
|
||||||
cx,
|
|
||||||
JSGCParamKey::JSGC_DYNAMIC_HEAP_GROWTH,
|
|
||||||
pref!(js.mem.gc.dynamic_heap_growth.enabled) as u32,
|
|
||||||
);
|
|
||||||
if let Some(val) = in_range(pref!(js.mem.gc.low_frequency_heap_growth), 0, 10_000) {
|
if let Some(val) = in_range(pref!(js.mem.gc.low_frequency_heap_growth), 0, 10_000) {
|
||||||
JS_SetGCParameter(cx, JSGCParamKey::JSGC_LOW_FREQUENCY_HEAP_GROWTH, val as u32);
|
JS_SetGCParameter(cx, JSGCParamKey::JSGC_LOW_FREQUENCY_HEAP_GROWTH, val as u32);
|
||||||
}
|
}
|
||||||
if let Some(val) = in_range(pref!(js.mem.gc.high_frequency_heap_growth_min), 0, 10_000) {
|
if let Some(val) = in_range(pref!(js.mem.gc.high_frequency_heap_growth_min), 0, 10_000) {
|
||||||
JS_SetGCParameter(
|
JS_SetGCParameter(
|
||||||
cx,
|
cx,
|
||||||
JSGCParamKey::JSGC_HIGH_FREQUENCY_HEAP_GROWTH_MIN,
|
JSGCParamKey::JSGC_HIGH_FREQUENCY_LARGE_HEAP_GROWTH,
|
||||||
val as u32,
|
val as u32,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if let Some(val) = in_range(pref!(js.mem.gc.high_frequency_heap_growth_max), 0, 10_000) {
|
if let Some(val) = in_range(pref!(js.mem.gc.high_frequency_heap_growth_max), 0, 10_000) {
|
||||||
JS_SetGCParameter(
|
JS_SetGCParameter(
|
||||||
cx,
|
cx,
|
||||||
JSGCParamKey::JSGC_HIGH_FREQUENCY_HEAP_GROWTH_MAX,
|
JSGCParamKey::JSGC_HIGH_FREQUENCY_SMALL_HEAP_GROWTH,
|
||||||
val as u32,
|
val as u32,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if let Some(val) = in_range(pref!(js.mem.gc.high_frequency_low_limit_mb), 0, 10_000) {
|
if let Some(val) = in_range(pref!(js.mem.gc.high_frequency_low_limit_mb), 0, 10_000) {
|
||||||
JS_SetGCParameter(cx, JSGCParamKey::JSGC_HIGH_FREQUENCY_LOW_LIMIT, val as u32);
|
JS_SetGCParameter(cx, JSGCParamKey::JSGC_SMALL_HEAP_SIZE_MAX, val as u32);
|
||||||
}
|
}
|
||||||
if let Some(val) = in_range(pref!(js.mem.gc.high_frequency_high_limit_mb), 0, 10_000) {
|
if let Some(val) = in_range(pref!(js.mem.gc.high_frequency_high_limit_mb), 0, 10_000) {
|
||||||
JS_SetGCParameter(cx, JSGCParamKey::JSGC_HIGH_FREQUENCY_HIGH_LIMIT, val as u32);
|
JS_SetGCParameter(cx, JSGCParamKey::JSGC_LARGE_HEAP_SIZE_MIN, val as u32);
|
||||||
}
|
}
|
||||||
if let Some(val) = in_range(pref!(js.mem.gc.allocation_threshold_factor), 0, 10_000) {
|
/*if let Some(val) = in_range(pref!(js.mem.gc.allocation_threshold_factor), 0, 10_000) {
|
||||||
JS_SetGCParameter(cx, JSGCParamKey::JSGC_NON_INCREMENTAL_FACTOR, val as u32);
|
JS_SetGCParameter(cx, JSGCParamKey::JSGC_NON_INCREMENTAL_FACTOR, val as u32);
|
||||||
}
|
}*/
|
||||||
if let Some(val) = in_range(
|
/*
|
||||||
pref!(js.mem.gc.allocation_threshold_avoid_interrupt_factor),
|
// JSGC_SMALL_HEAP_INCREMENTAL_LIMIT
|
||||||
0,
|
pref("javascript.options.mem.gc_small_heap_incremental_limit", 140);
|
||||||
10_000,
|
|
||||||
) {
|
// JSGC_LARGE_HEAP_INCREMENTAL_LIMIT
|
||||||
JS_SetGCParameter(cx, JSGCParamKey::JSGC_AVOID_INTERRUPT_FACTOR, val as u32);
|
pref("javascript.options.mem.gc_large_heap_incremental_limit", 110);
|
||||||
}
|
*/
|
||||||
if let Some(val) = in_range(pref!(js.mem.gc.empty_chunk_count_min), 0, 10_000) {
|
if let Some(val) = in_range(pref!(js.mem.gc.empty_chunk_count_min), 0, 10_000) {
|
||||||
JS_SetGCParameter(cx, JSGCParamKey::JSGC_MIN_EMPTY_CHUNK_COUNT, val as u32);
|
JS_SetGCParameter(cx, JSGCParamKey::JSGC_MIN_EMPTY_CHUNK_COUNT, val as u32);
|
||||||
}
|
}
|
||||||
|
@ -796,6 +793,7 @@ unsafe extern "C" fn gc_slice_callback(
|
||||||
unsafe extern "C" fn debug_gc_callback(
|
unsafe extern "C" fn debug_gc_callback(
|
||||||
_cx: *mut RawJSContext,
|
_cx: *mut RawJSContext,
|
||||||
status: JSGCStatus,
|
status: JSGCStatus,
|
||||||
|
_reason: GCReason,
|
||||||
_data: *mut os::raw::c_void,
|
_data: *mut os::raw::c_void,
|
||||||
) {
|
) {
|
||||||
match status {
|
match status {
|
||||||
|
|
|
@ -40,11 +40,11 @@ fn error(message: &str) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn find_python() -> String {
|
fn find_python() -> String {
|
||||||
env::var("PYTHON2").ok().unwrap_or_else(|| {
|
env::var("PYTHON3").ok().unwrap_or_else(|| {
|
||||||
let candidates = if cfg!(windows) {
|
let candidates = if cfg!(windows) {
|
||||||
["python2.7.exe", "python27.exe", "python.exe"]
|
["python3.8.exe", "python38.exe", "python.exe"]
|
||||||
} else {
|
} else {
|
||||||
["python2.7", "python2", "python"]
|
["python3.8", "python3", "python"]
|
||||||
};
|
};
|
||||||
for &name in &candidates {
|
for &name in &candidates {
|
||||||
if Command::new(name)
|
if Command::new(name)
|
||||||
|
@ -57,7 +57,7 @@ fn find_python() -> String {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
panic!(
|
panic!(
|
||||||
"Can't find python (tried {})! Try fixing PATH or setting the PYTHON2 env var",
|
"Can't find python (tried {})! Try fixing PATH or setting the PYTHON3 env var",
|
||||||
candidates.join(", ")
|
candidates.join(", ")
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
# Copyright 2018 The Servo Project Developers. See the COPYRIGHT
|
# Copyright 2018 The Servo Project Developers. See the COPYRIGHT
|
||||||
# file at the top-level directory of this distribution.
|
# file at the top-level directory of this distribution.
|
||||||
|
|
|
@ -132,6 +132,8 @@ windows_build_env = {
|
||||||
"PYTHON3": "%HOMEDRIVE%%HOMEPATH%\\python3\\python.exe",
|
"PYTHON3": "%HOMEDRIVE%%HOMEPATH%\\python3\\python.exe",
|
||||||
"LINKER": "lld-link.exe",
|
"LINKER": "lld-link.exe",
|
||||||
"MOZTOOLS_PATH_PREPEND": "%HOMEDRIVE%%HOMEPATH%\\git\\cmd",
|
"MOZTOOLS_PATH_PREPEND": "%HOMEDRIVE%%HOMEPATH%\\git\\cmd",
|
||||||
|
"CC": "clang-cl.exe",
|
||||||
|
"CXX": "clang-cl.exe",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,11 +157,11 @@ def linux_tidy_unit_untrusted():
|
||||||
.with_env(**build_env, **unix_build_env, **linux_build_env)
|
.with_env(**build_env, **unix_build_env, **linux_build_env)
|
||||||
.with_repo_bundle()
|
.with_repo_bundle()
|
||||||
.with_script("""
|
.with_script("""
|
||||||
./mach test-tidy --no-progress --all
|
python3 ./mach test-tidy --no-progress --all
|
||||||
./mach test-tidy --no-progress --self-test
|
python3 ./mach test-tidy --no-progress --self-test
|
||||||
./mach bootstrap-gstreamer
|
python3 ./mach bootstrap-gstreamer
|
||||||
./mach build --dev
|
python3 ./mach build --dev
|
||||||
./mach test-unit
|
python3 ./mach test-unit
|
||||||
|
|
||||||
./etc/ci/lockfile_changed.sh
|
./etc/ci/lockfile_changed.sh
|
||||||
./etc/memory_reports_over_time.py --test
|
./etc/memory_reports_over_time.py --test
|
||||||
|
@ -175,8 +177,7 @@ def linux_tidy_unit():
|
||||||
.with_treeherder("Linux x64", "Tidy+Unit")
|
.with_treeherder("Linux x64", "Tidy+Unit")
|
||||||
.with_max_run_time_minutes(75)
|
.with_max_run_time_minutes(75)
|
||||||
.with_script("""
|
.with_script("""
|
||||||
./mach test-tidy --no-progress --all
|
python3 ./mach test-tidy --no-progress --all
|
||||||
python3 ./mach test-tidy --no-progress --all --no-wpt
|
|
||||||
python3 ./mach build --dev
|
python3 ./mach build --dev
|
||||||
python3 ./mach test-unit
|
python3 ./mach test-unit
|
||||||
python3 ./mach package --dev
|
python3 ./mach package --dev
|
||||||
|
@ -201,7 +202,7 @@ def linux_docs_check():
|
||||||
linux_build_task("Docs + check")
|
linux_build_task("Docs + check")
|
||||||
.with_treeherder("Linux x64", "Doc+Check")
|
.with_treeherder("Linux x64", "Doc+Check")
|
||||||
.with_script("""
|
.with_script("""
|
||||||
RUSTDOCFLAGS="--disable-minification" ./mach doc
|
RUSTDOCFLAGS="--disable-minification" python3 ./mach doc
|
||||||
(
|
(
|
||||||
cd target/doc
|
cd target/doc
|
||||||
git init
|
git init
|
||||||
|
@ -219,7 +220,7 @@ def linux_docs_check():
|
||||||
# The reverse order would not increase the total amount of work to do,
|
# The reverse order would not increase the total amount of work to do,
|
||||||
# but would reduce the amount of parallelism available.
|
# but would reduce the amount of parallelism available.
|
||||||
"""
|
"""
|
||||||
./mach check
|
python3 ./mach check
|
||||||
""")
|
""")
|
||||||
.with_artifacts("/repo/target/doc/docs.bundle")
|
.with_artifacts("/repo/target/doc/docs.bundle")
|
||||||
.find_or_create("docs." + CONFIG.tree_hash())
|
.find_or_create("docs." + CONFIG.tree_hash())
|
||||||
|
@ -243,7 +244,7 @@ def upload_docs():
|
||||||
open("/root/.git-credentials", "w").write("https://git:%s@github.com/" % token)
|
open("/root/.git-credentials", "w").write("https://git:%s@github.com/" % token)
|
||||||
""")
|
""")
|
||||||
.with_script("""
|
.with_script("""
|
||||||
python -c "$PY"
|
python3 -c "$PY"
|
||||||
git init --bare
|
git init --bare
|
||||||
git config credential.helper store
|
git config credential.helper store
|
||||||
git fetch --quiet docs.bundle
|
git fetch --quiet docs.bundle
|
||||||
|
@ -274,9 +275,9 @@ def macos_unit():
|
||||||
macos_build_task("Dev build + unit tests")
|
macos_build_task("Dev build + unit tests")
|
||||||
.with_treeherder("macOS x64", "Unit")
|
.with_treeherder("macOS x64", "Unit")
|
||||||
.with_script("""
|
.with_script("""
|
||||||
./mach build --dev --verbose
|
python3 ./mach build --dev --verbose
|
||||||
./mach test-unit
|
python3 ./mach test-unit
|
||||||
./mach package --dev
|
python3 ./mach package --dev
|
||||||
./etc/ci/macos_package_smoketest.sh target/debug/servo-tech-demo.dmg
|
./etc/ci/macos_package_smoketest.sh target/debug/servo-tech-demo.dmg
|
||||||
./etc/ci/lockfile_changed.sh
|
./etc/ci/lockfile_changed.sh
|
||||||
""")
|
""")
|
||||||
|
@ -296,8 +297,8 @@ def with_rust_nightly():
|
||||||
.with_treeherder("Linux x64", "RustNightly")
|
.with_treeherder("Linux x64", "RustNightly")
|
||||||
.with_script("""
|
.with_script("""
|
||||||
echo "nightly" > rust-toolchain
|
echo "nightly" > rust-toolchain
|
||||||
./mach build --dev
|
python3 ./mach build --dev
|
||||||
./mach test-unit
|
python3 ./mach test-unit
|
||||||
""")
|
""")
|
||||||
.create()
|
.create()
|
||||||
)
|
)
|
||||||
|
@ -354,10 +355,10 @@ def uwp_nightly(rdp=False):
|
||||||
"secrets:get:project/servo/windows-codesign-cert/latest",
|
"secrets:get:project/servo/windows-codesign-cert/latest",
|
||||||
)
|
)
|
||||||
.with_script(
|
.with_script(
|
||||||
"python mach build --release --target=x86_64-uwp-windows-msvc",
|
"python3 mach build --release --target=x86_64-uwp-windows-msvc",
|
||||||
"python mach build --release --target=aarch64-uwp-windows-msvc",
|
"python3 mach build --release --target=aarch64-uwp-windows-msvc",
|
||||||
"python mach package --release --target=x86_64-uwp-windows-msvc --uwp=x64 --uwp=arm64",
|
"python3 mach package --release --target=x86_64-uwp-windows-msvc --uwp=x64 --uwp=arm64",
|
||||||
"python mach upload-nightly uwp --secret-from-taskcluster",
|
"python3 mach upload-nightly uwp --secret-from-taskcluster",
|
||||||
)
|
)
|
||||||
.with_artifacts(appx_artifact)
|
.with_artifacts(appx_artifact)
|
||||||
.with_max_run_time_minutes(3 * 60)
|
.with_max_run_time_minutes(3 * 60)
|
||||||
|
@ -377,6 +378,9 @@ def windows_unit(cached=True, rdp=False):
|
||||||
"python mach build --dev",
|
"python mach build --dev",
|
||||||
|
|
||||||
"python mach test-unit",
|
"python mach test-unit",
|
||||||
|
# Running the TC task with administrator privileges breaks the
|
||||||
|
# smoketest for unknown reasons.
|
||||||
|
#"python mach smoketest --angle",
|
||||||
|
|
||||||
"python mach package --dev",
|
"python mach package --dev",
|
||||||
"python mach build --dev --libsimpleservo",
|
"python mach build --dev --libsimpleservo",
|
||||||
|
@ -418,9 +422,9 @@ def linux_nightly():
|
||||||
.with_scopes("secrets:get:project/servo/s3-upload-credentials")
|
.with_scopes("secrets:get:project/servo/s3-upload-credentials")
|
||||||
# Not reusing the build made for WPT because it has debug assertions
|
# Not reusing the build made for WPT because it has debug assertions
|
||||||
.with_script(
|
.with_script(
|
||||||
"./mach build --release",
|
"python3 ./mach build --release",
|
||||||
"./mach package --release",
|
"python3 ./mach package --release",
|
||||||
"./mach upload-nightly linux --secret-from-taskcluster",
|
"python3 ./mach upload-nightly linux --secret-from-taskcluster",
|
||||||
)
|
)
|
||||||
.with_artifacts("/repo/target/release/servo-tech-demo.tar.gz")
|
.with_artifacts("/repo/target/release/servo-tech-demo.tar.gz")
|
||||||
.find_or_create("build.linux_x64_nightly" + CONFIG.tree_hash())
|
.find_or_create("build.linux_x64_nightly" + CONFIG.tree_hash())
|
||||||
|
@ -432,8 +436,8 @@ def linux_release():
|
||||||
linux_build_task("Release build")
|
linux_build_task("Release build")
|
||||||
.with_treeherder("Linux x64", "Release")
|
.with_treeherder("Linux x64", "Release")
|
||||||
.with_script(
|
.with_script(
|
||||||
"./mach build --release",
|
"python3 ./mach build --release",
|
||||||
"./mach package --release",
|
"python3 ./mach package --release",
|
||||||
)
|
)
|
||||||
.find_or_create("build.linux_x64_release" + CONFIG.tree_hash())
|
.find_or_create("build.linux_x64_release" + CONFIG.tree_hash())
|
||||||
)
|
)
|
||||||
|
@ -449,10 +453,10 @@ def macos_nightly():
|
||||||
"secrets:get:project/servo/github-homebrew-token",
|
"secrets:get:project/servo/github-homebrew-token",
|
||||||
)
|
)
|
||||||
.with_script(
|
.with_script(
|
||||||
"./mach build --release",
|
"python3 ./mach build --release",
|
||||||
"./mach package --release",
|
"python3 ./mach package --release",
|
||||||
"./etc/ci/macos_package_smoketest.sh target/release/servo-tech-demo.dmg",
|
"./etc/ci/macos_package_smoketest.sh target/release/servo-tech-demo.dmg",
|
||||||
"./mach upload-nightly mac --secret-from-taskcluster",
|
"python3 ./mach upload-nightly mac --secret-from-taskcluster",
|
||||||
)
|
)
|
||||||
.with_artifacts("repo/target/release/servo-tech-demo.dmg")
|
.with_artifacts("repo/target/release/servo-tech-demo.dmg")
|
||||||
.find_or_create("build.mac_x64_nightly." + CONFIG.tree_hash())
|
.find_or_create("build.mac_x64_nightly." + CONFIG.tree_hash())
|
||||||
|
@ -489,7 +493,7 @@ def macos_release_build_with_debug_assertions(priority=None):
|
||||||
.with_treeherder("macOS x64", "Release+A")
|
.with_treeherder("macOS x64", "Release+A")
|
||||||
.with_priority(priority)
|
.with_priority(priority)
|
||||||
.with_script("\n".join([
|
.with_script("\n".join([
|
||||||
"./mach build --release --verbose --with-debug-assertions",
|
"python3 ./mach build --release --verbose --with-debug-assertions",
|
||||||
"./etc/ci/lockfile_changed.sh",
|
"./etc/ci/lockfile_changed.sh",
|
||||||
"tar -czf target.tar.gz" +
|
"tar -czf target.tar.gz" +
|
||||||
" target/release/servo" +
|
" target/release/servo" +
|
||||||
|
@ -516,9 +520,9 @@ def linux_release_build_with_debug_assertions(layout_2020):
|
||||||
linux_build_task(name_prefix + "Release build, with debug assertions")
|
linux_build_task(name_prefix + "Release build, with debug assertions")
|
||||||
.with_treeherder("Linux x64", treeherder_prefix + "Release+A")
|
.with_treeherder("Linux x64", treeherder_prefix + "Release+A")
|
||||||
.with_script("""
|
.with_script("""
|
||||||
time ./mach rustc -V
|
time python3 ./mach rustc -V
|
||||||
time ./mach fetch
|
time python3 ./mach fetch
|
||||||
./mach build --release --with-debug-assertions %s -p servo
|
python3 ./mach build --release --with-debug-assertions %s -p servo
|
||||||
./etc/ci/lockfile_changed.sh
|
./etc/ci/lockfile_changed.sh
|
||||||
tar -czf /target.tar.gz \
|
tar -czf /target.tar.gz \
|
||||||
target/release/servo \
|
target/release/servo \
|
||||||
|
@ -537,7 +541,7 @@ def macos_wpt():
|
||||||
priority = "high" if CONFIG.git_ref == "refs/heads/auto" else None
|
priority = "high" if CONFIG.git_ref == "refs/heads/auto" else None
|
||||||
build_task = macos_release_build_with_debug_assertions(priority=priority)
|
build_task = macos_release_build_with_debug_assertions(priority=priority)
|
||||||
def macos_run_task(name):
|
def macos_run_task(name):
|
||||||
task = macos_task(name).with_python2().with_python3() \
|
task = macos_task(name).with_python3() \
|
||||||
.with_repo_bundle(alternate_object_dir="/var/cache/servo.git/objects")
|
.with_repo_bundle(alternate_object_dir="/var/cache/servo.git/objects")
|
||||||
return with_homebrew(task, ["etc/taskcluster/macos/Brewfile"])
|
return with_homebrew(task, ["etc/taskcluster/macos/Brewfile"])
|
||||||
wpt_chunks(
|
wpt_chunks(
|
||||||
|
@ -619,11 +623,11 @@ def wpt_chunks(platform, make_chunk_task, build_task, total_chunks, processes,
|
||||||
if this_chunk == 0:
|
if this_chunk == 0:
|
||||||
if run_webgpu:
|
if run_webgpu:
|
||||||
webgpu_script = """
|
webgpu_script = """
|
||||||
time ./mach test-wpt _webgpu --release --processes $PROCESSES \
|
time python3 ./mach test-wpt _webgpu --release --processes $PROCESSES \
|
||||||
--headless --log-raw test-webgpu.log --always-succeed \
|
--headless --log-raw test-webgpu.log --always-succeed \
|
||||||
--log-errorsummary webgpu-errorsummary.log \
|
--log-errorsummary webgpu-errorsummary.log \
|
||||||
| cat
|
| cat
|
||||||
./mach filter-intermittents \
|
python3 ./mach filter-intermittents \
|
||||||
webgpu-errorsummary.log \
|
webgpu-errorsummary.log \
|
||||||
--log-intermittents webgpu-intermittents.log \
|
--log-intermittents webgpu-intermittents.log \
|
||||||
--log-filteredsummary filtered-webgpu-errorsummary.log \
|
--log-filteredsummary filtered-webgpu-errorsummary.log \
|
||||||
|
@ -634,7 +638,7 @@ def wpt_chunks(platform, make_chunk_task, build_task, total_chunks, processes,
|
||||||
webgpu_script = ""
|
webgpu_script = ""
|
||||||
|
|
||||||
task.with_script("""
|
task.with_script("""
|
||||||
time python ./mach test-wpt --release --binary-arg=--multiprocess \
|
time python3 ./mach test-wpt --release --binary-arg=--multiprocess \
|
||||||
--processes $PROCESSES \
|
--processes $PROCESSES \
|
||||||
--log-raw test-wpt-mp.log \
|
--log-raw test-wpt-mp.log \
|
||||||
--log-errorsummary wpt-mp-errorsummary.log \
|
--log-errorsummary wpt-mp-errorsummary.log \
|
||||||
|
@ -647,30 +651,30 @@ def wpt_chunks(platform, make_chunk_task, build_task, total_chunks, processes,
|
||||||
--always-succeed \
|
--always-succeed \
|
||||||
url \
|
url \
|
||||||
| cat
|
| cat
|
||||||
./mach filter-intermittents \
|
python3 ./mach filter-intermittents \
|
||||||
wpt-py3-errorsummary.log \
|
wpt-py3-errorsummary.log \
|
||||||
--log-intermittents wpt-py3-intermittents.log \
|
--log-intermittents wpt-py3-intermittents.log \
|
||||||
--log-filteredsummary filtered-py3-errorsummary.log \
|
--log-filteredsummary filtered-py3-errorsummary.log \
|
||||||
--tracker-api default \
|
--tracker-api default \
|
||||||
--reporter-api default
|
--reporter-api default
|
||||||
time ./mach test-wpt --release --product=servodriver --headless \
|
time python3 ./mach test-wpt --release --product=servodriver --headless \
|
||||||
tests/wpt/mozilla/tests/mozilla/DOMParser.html \
|
tests/wpt/mozilla/tests/mozilla/DOMParser.html \
|
||||||
tests/wpt/mozilla/tests/css/per_glyph_font_fallback_a.html \
|
tests/wpt/mozilla/tests/css/per_glyph_font_fallback_a.html \
|
||||||
tests/wpt/mozilla/tests/css/img_simple.html \
|
tests/wpt/mozilla/tests/css/img_simple.html \
|
||||||
tests/wpt/mozilla/tests/mozilla/secure.https.html \
|
tests/wpt/mozilla/tests/mozilla/secure.https.html \
|
||||||
| cat
|
| cat
|
||||||
time ./mach test-wpt --release --processes $PROCESSES --product=servodriver \
|
time python3 ./mach test-wpt --release --processes $PROCESSES --product=servodriver \
|
||||||
--headless --log-raw test-bluetooth.log \
|
--headless --log-raw test-bluetooth.log \
|
||||||
--log-errorsummary bluetooth-errorsummary.log \
|
--log-errorsummary bluetooth-errorsummary.log \
|
||||||
bluetooth \
|
bluetooth \
|
||||||
| cat
|
| cat
|
||||||
time ./mach test-wpt --release --processes $PROCESSES --timeout-multiplier=4 \
|
time python3 ./mach test-wpt --release --processes $PROCESSES --timeout-multiplier=4 \
|
||||||
--headless --log-raw test-wdspec.log \
|
--headless --log-raw test-wdspec.log \
|
||||||
--log-servojson wdspec-jsonsummary.log \
|
--log-servojson wdspec-jsonsummary.log \
|
||||||
--always-succeed \
|
--always-succeed \
|
||||||
webdriver \
|
webdriver \
|
||||||
| cat
|
| cat
|
||||||
./mach filter-intermittents \
|
python3 ./mach filter-intermittents \
|
||||||
wdspec-jsonsummary.log \
|
wdspec-jsonsummary.log \
|
||||||
--log-intermittents intermittents.log \
|
--log-intermittents intermittents.log \
|
||||||
--log-filteredsummary filtered-wdspec-errorsummary.log \
|
--log-filteredsummary filtered-wdspec-errorsummary.log \
|
||||||
|
@ -680,7 +684,7 @@ def wpt_chunks(platform, make_chunk_task, build_task, total_chunks, processes,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
task.with_script("""
|
task.with_script("""
|
||||||
./mach test-wpt \
|
python3 ./mach test-wpt \
|
||||||
--release \
|
--release \
|
||||||
$WPT_ARGS \
|
$WPT_ARGS \
|
||||||
--processes $PROCESSES \
|
--processes $PROCESSES \
|
||||||
|
@ -690,7 +694,7 @@ def wpt_chunks(platform, make_chunk_task, build_task, total_chunks, processes,
|
||||||
--log-servojson wpt-jsonsummary.log \
|
--log-servojson wpt-jsonsummary.log \
|
||||||
--always-succeed \
|
--always-succeed \
|
||||||
| cat
|
| cat
|
||||||
./mach filter-intermittents \
|
python3 ./mach filter-intermittents \
|
||||||
wpt-jsonsummary.log \
|
wpt-jsonsummary.log \
|
||||||
--log-intermittents intermittents.log \
|
--log-intermittents intermittents.log \
|
||||||
--log-filteredsummary filtered-wpt-errorsummary.log \
|
--log-filteredsummary filtered-wpt-errorsummary.log \
|
||||||
|
@ -770,7 +774,7 @@ def linux_build_task(name, *, build_env=build_env):
|
||||||
.with_dockerfile(dockerfile_path("build"))
|
.with_dockerfile(dockerfile_path("build"))
|
||||||
.with_env(**build_env, **unix_build_env, **linux_build_env)
|
.with_env(**build_env, **unix_build_env, **linux_build_env)
|
||||||
.with_repo_bundle()
|
.with_repo_bundle()
|
||||||
.with_script("./mach bootstrap-gstreamer")
|
.with_script("python3 ./mach bootstrap-gstreamer")
|
||||||
)
|
)
|
||||||
return task
|
return task
|
||||||
|
|
||||||
|
@ -797,12 +801,7 @@ def windows_build_task(name, package=True, arch="x86_64", rdp=False):
|
||||||
**windows_build_env["all"]
|
**windows_build_env["all"]
|
||||||
)
|
)
|
||||||
.with_repo_bundle(sparse_checkout=windows_sparse_checkout)
|
.with_repo_bundle(sparse_checkout=windows_sparse_checkout)
|
||||||
.with_python2()
|
.with_python3()
|
||||||
.with_directory_mount(
|
|
||||||
"https://www.python.org/ftp/python/3.7.3/python-3.7.3-embed-amd64.zip",
|
|
||||||
sha256="6de14c9223226cf0cd8c965ecb08c51d62c770171a256991b4fddc25188cfa8e",
|
|
||||||
path="python3",
|
|
||||||
)
|
|
||||||
.with_rustup()
|
.with_rustup()
|
||||||
)
|
)
|
||||||
if arch in hashes["non-devel"] and arch in hashes["devel"]:
|
if arch in hashes["non-devel"] and arch in hashes["devel"]:
|
||||||
|
@ -844,7 +843,7 @@ def macos_build_task(name):
|
||||||
.with_max_run_time_minutes(60 * 2)
|
.with_max_run_time_minutes(60 * 2)
|
||||||
.with_env(**build_env, **unix_build_env, **macos_build_env)
|
.with_env(**build_env, **unix_build_env, **macos_build_env)
|
||||||
.with_repo_bundle(alternate_object_dir="/var/cache/servo.git/objects")
|
.with_repo_bundle(alternate_object_dir="/var/cache/servo.git/objects")
|
||||||
.with_python2()
|
.with_python3()
|
||||||
.with_rustup()
|
.with_rustup()
|
||||||
.with_index_and_artifacts_expire_in(build_artifacts_expire_in)
|
.with_index_and_artifacts_expire_in(build_artifacts_expire_in)
|
||||||
# Debugging for surprising generic-worker behaviour
|
# Debugging for surprising generic-worker behaviour
|
||||||
|
|
|
@ -474,9 +474,13 @@ class WindowsGenericWorkerTask(GenericWorkerTask):
|
||||||
if self.rdp_info_artifact_name:
|
if self.rdp_info_artifact_name:
|
||||||
rdp_scope = "generic-worker:allow-rdp:%s/%s" % (self.provisioner_id, self.worker_type)
|
rdp_scope = "generic-worker:allow-rdp:%s/%s" % (self.provisioner_id, self.worker_type)
|
||||||
self.scopes.append(rdp_scope)
|
self.scopes.append(rdp_scope)
|
||||||
|
self.scopes.append("generic-worker:os-group:proj-servo/win2016/Administrators")
|
||||||
|
self.scopes.append("generic-worker:run-as-administrator:proj-servo/win2016")
|
||||||
|
self.with_features("runAsAdministrator")
|
||||||
return dict_update_if_truthy(
|
return dict_update_if_truthy(
|
||||||
super().build_worker_payload(),
|
super().build_worker_payload(),
|
||||||
rdpInfo=self.rdp_info_artifact_name,
|
rdpInfo=self.rdp_info_artifact_name,
|
||||||
|
osGroups=["Administrators"]
|
||||||
)
|
)
|
||||||
|
|
||||||
def with_rdp_info(self, *, artifact_name):
|
def with_rdp_info(self, *, artifact_name):
|
||||||
|
@ -619,26 +623,23 @@ class WindowsGenericWorkerTask(GenericWorkerTask):
|
||||||
.with_dependencies(repack_task) \
|
.with_dependencies(repack_task) \
|
||||||
.with_directory_mount("public/repacked.zip", task_id=repack_task, path=path)
|
.with_directory_mount("public/repacked.zip", task_id=repack_task, path=path)
|
||||||
|
|
||||||
def with_python2(self):
|
def with_python3(self):
|
||||||
"""
|
"""
|
||||||
Make Python 2, pip, and virtualenv accessible to the task’s commands.
|
|
||||||
|
|
||||||
For Python 3, use `with_directory_mount` and the "embeddable zip file" distribution
|
For Python 3, use `with_directory_mount` and the "embeddable zip file" distribution
|
||||||
from python.org.
|
from python.org.
|
||||||
You may need to remove `python37._pth` from the ZIP in order to work around
|
You may need to remove `python37._pth` from the ZIP in order to work around
|
||||||
<https://bugs.python.org/issue34841>.
|
<https://bugs.python.org/issue34841>.
|
||||||
"""
|
"""
|
||||||
return self \
|
return (
|
||||||
.with_repacked_msi(
|
self
|
||||||
"https://www.python.org/ftp/python/2.7.15/python-2.7.15.amd64.msi",
|
.with_curl_script(
|
||||||
sha256="5e85f3c4c209de98480acbf2ba2e71a907fd5567a838ad4b6748c76deb286ad7",
|
"https://www.python.org/ftp/python/3.7.3/python-3.7.3-amd64.exe",
|
||||||
path="python2"
|
"do-the-python.exe"
|
||||||
) \
|
)
|
||||||
.with_early_script("""
|
.with_script("do-the-python.exe /quiet TargetDir=%HOMEDRIVE%%HOMEPATH%\\python3")
|
||||||
python -m ensurepip
|
.with_path_from_homedir("python3", "python3\\Scripts")
|
||||||
pip install virtualenv==16.0.0
|
.with_script("pip install virtualenv==20.2.1")
|
||||||
""") \
|
)
|
||||||
.with_path_from_homedir("python2", "python2\\Scripts")
|
|
||||||
|
|
||||||
|
|
||||||
class UnixTaskMixin(Task):
|
class UnixTaskMixin(Task):
|
||||||
|
@ -697,13 +698,6 @@ class MacOsGenericWorkerTask(UnixTaskMixin, GenericWorkerTask):
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
def with_python2(self):
|
|
||||||
return self.with_early_script("""
|
|
||||||
export PATH="$HOME/Library/Python/2.7/bin:$PATH"
|
|
||||||
python -m ensurepip --user
|
|
||||||
pip install --user virtualenv
|
|
||||||
""")
|
|
||||||
|
|
||||||
def with_python3(self):
|
def with_python3(self):
|
||||||
return self.with_early_script("""
|
return self.with_early_script("""
|
||||||
python3 -m ensurepip --user
|
python3 -m ensurepip --user
|
||||||
|
|
|
@ -17,11 +17,6 @@ RUN \
|
||||||
git \
|
git \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
#
|
#
|
||||||
# Running mach with Python 2
|
|
||||||
python2 \
|
|
||||||
python2-dev \
|
|
||||||
python-is-python2 \
|
|
||||||
#
|
|
||||||
# Running mach with Python 3
|
# Running mach with Python 3
|
||||||
python3 \
|
python3 \
|
||||||
python3-pip \
|
python3-pip \
|
||||||
|
@ -35,12 +30,4 @@ RUN \
|
||||||
curl \
|
curl \
|
||||||
# Setting the default locale
|
# Setting the default locale
|
||||||
locales \
|
locales \
|
||||||
locales-all \
|
locales-all
|
||||||
&& \
|
|
||||||
#
|
|
||||||
# Python 2 bits that have been removed from Ubuntu packages
|
|
||||||
curl https://bootstrap.pypa.io/2.7/get-pip.py -sSf -o get-pip.py && \
|
|
||||||
python2 get-pip.py && \
|
|
||||||
python2 -m pip install virtualenv && \
|
|
||||||
# Ensure modern pip is present.
|
|
||||||
python3 -m pip install -U pip
|
|
||||||
|
|
6
mach
6
mach
|
@ -6,7 +6,7 @@
|
||||||
# The beginning of this script is both valid shell and valid python,
|
# The beginning of this script is both valid shell and valid python,
|
||||||
# such that the script starts with the shell and is reexecuted with
|
# such that the script starts with the shell and is reexecuted with
|
||||||
# the right python.
|
# the right python.
|
||||||
''':' && if [ ! -z "$MSYSTEM" ] ; then exec python "$0" "$@" ; else which python2.7 > /dev/null 2> /dev/null && exec python2.7 "$0" "$@" || exec python "$0" "$@" ; fi
|
''':' && if [ ! -z "$MSYSTEM" ] ; then exec python "$0" "$@" ; else which python3 > /dev/null 2> /dev/null && exec python3 "$0" "$@" || exec python "$0" "$@" ; fi
|
||||||
'''
|
'''
|
||||||
|
|
||||||
from __future__ import print_function, unicode_literals
|
from __future__ import print_function, unicode_literals
|
||||||
|
@ -18,8 +18,8 @@ import sys
|
||||||
# Check for the current python version as some users (especially on archlinux)
|
# Check for the current python version as some users (especially on archlinux)
|
||||||
# may not have python 2 installed and their /bin/python binary symlinked to
|
# may not have python 2 installed and their /bin/python binary symlinked to
|
||||||
# python 3.
|
# python 3.
|
||||||
if sys.version_info >= (3, 0) and sys.version_info < (3, 5):
|
if sys.version_info < (3, 5):
|
||||||
print("mach does not support python 3 (< 3.5), please install python 2 or python 3 (>= 3.5)")
|
print("mach does not support python 3 (< 3.5), please install python 3 (>= 3.5)")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -5,9 +5,9 @@ blessings == 1.6
|
||||||
distro == 1.4
|
distro == 1.4
|
||||||
mach == 1.0.0
|
mach == 1.0.0
|
||||||
mozdebug == 0.2
|
mozdebug == 0.2
|
||||||
mozinfo == 1.1.0
|
mozinfo == 1.2.1
|
||||||
mozlog == 5.0
|
mozlog == 7.1.0
|
||||||
setuptools == 39.0
|
setuptools == 50.3.2
|
||||||
toml == 0.9.2
|
toml == 0.9.2
|
||||||
|
|
||||||
# For Python linting
|
# For Python linting
|
||||||
|
@ -30,6 +30,6 @@ boto3 == 1.4.4
|
||||||
certifi
|
certifi
|
||||||
|
|
||||||
# For Python3 compatibility
|
# For Python3 compatibility
|
||||||
six == 1.12
|
six == 1.15
|
||||||
|
|
||||||
-e python/tidy
|
-e python/tidy
|
||||||
|
|
|
@ -749,7 +749,7 @@ install them, let us know by filing a bug!")
|
||||||
# Shorten hash
|
# Shorten hash
|
||||||
# NOTE: Partially verifies the hash, but it will still pass if it's, e.g., a tree
|
# NOTE: Partially verifies the hash, but it will still pass if it's, e.g., a tree
|
||||||
git_sha = subprocess.check_output([
|
git_sha = subprocess.check_output([
|
||||||
'git', 'rev-parse', '--short', git_sha
|
'git', 'rev-parse', '--short', git_sha.decode('ascii')
|
||||||
])
|
])
|
||||||
else:
|
else:
|
||||||
# This is a regular commit
|
# This is a regular commit
|
||||||
|
@ -999,7 +999,7 @@ install them, let us know by filing a bug!")
|
||||||
toolchain = self.rust_toolchain()
|
toolchain = self.rust_toolchain()
|
||||||
|
|
||||||
status = subprocess.call(
|
status = subprocess.call(
|
||||||
["rustup", "run", toolchain.encode("utf-8"), "rustc", "--version"],
|
["rustup", "run", toolchain, "rustc", "--version"],
|
||||||
stdout=open(os.devnull, "wb"),
|
stdout=open(os.devnull, "wb"),
|
||||||
stderr=subprocess.STDOUT,
|
stderr=subprocess.STDOUT,
|
||||||
)
|
)
|
||||||
|
|
|
@ -775,7 +775,11 @@ def setup_uwp_signing(ms_app_store, publisher):
|
||||||
|
|
||||||
def run_powershell_cmd(cmd):
|
def run_powershell_cmd(cmd):
|
||||||
try:
|
try:
|
||||||
return subprocess.check_output(['powershell.exe', '-NoProfile', '-Command', cmd])
|
return (
|
||||||
|
subprocess
|
||||||
|
.check_output(['powershell.exe', '-NoProfile', '-Command', cmd])
|
||||||
|
.decode('utf-8')
|
||||||
|
)
|
||||||
except subprocess.CalledProcessError:
|
except subprocess.CalledProcessError:
|
||||||
print("ERROR: PowerShell command failed: ", cmd)
|
print("ERROR: PowerShell command failed: ", cmd)
|
||||||
exit(1)
|
exit(1)
|
||||||
|
@ -841,6 +845,7 @@ def build_uwp(platforms, dev, msbuild_dir, ms_app_store):
|
||||||
.replace("%%PACKAGE_PLATFORMS%%", '|'.join(platforms))
|
.replace("%%PACKAGE_PLATFORMS%%", '|'.join(platforms))
|
||||||
.replace("%%CONFIGURATION%%", Configuration)
|
.replace("%%CONFIGURATION%%", Configuration)
|
||||||
.replace("%%SOLUTION%%", path.join(os.getcwd(), 'support', 'hololens', 'ServoApp.sln'))
|
.replace("%%SOLUTION%%", path.join(os.getcwd(), 'support', 'hololens', 'ServoApp.sln'))
|
||||||
|
.encode('utf-8')
|
||||||
)
|
)
|
||||||
build_file.close()
|
build_file.close()
|
||||||
# Generate an appxbundle.
|
# Generate an appxbundle.
|
||||||
|
|
|
@ -243,7 +243,8 @@ class PostBuildCommands(CommandBase):
|
||||||
media_stack=None, **kwargs):
|
media_stack=None, **kwargs):
|
||||||
self.ensure_bootstrapped(rustup_components=["rust-docs"])
|
self.ensure_bootstrapped(rustup_components=["rust-docs"])
|
||||||
rustc_path = check_output(
|
rustc_path = check_output(
|
||||||
["rustup" + BIN_SUFFIX, "which", "--toolchain", self.rust_toolchain(), "rustc"])
|
["rustup" + BIN_SUFFIX, "which", "--toolchain", self.rust_toolchain(), "rustc"]
|
||||||
|
).decode('utf-8')
|
||||||
assert path.basename(path.dirname(rustc_path)) == "bin"
|
assert path.basename(path.dirname(rustc_path)) == "bin"
|
||||||
toolchain_path = path.dirname(path.dirname(rustc_path))
|
toolchain_path = path.dirname(path.dirname(rustc_path))
|
||||||
rust_docs = path.join(toolchain_path, "share", "doc", "rust", "html")
|
rust_docs = path.join(toolchain_path, "share", "doc", "rust", "html")
|
||||||
|
|
|
@ -585,6 +585,9 @@ class MachCommands(CommandBase):
|
||||||
|
|
||||||
def format(outputs, description, file=sys.stdout):
|
def format(outputs, description, file=sys.stdout):
|
||||||
formatted = "%s %s:\n%s" % (len(outputs), description, "\n".join(outputs))
|
formatted = "%s %s:\n%s" % (len(outputs), description, "\n".join(outputs))
|
||||||
|
if file == sys.stdout:
|
||||||
|
file.write(formatted)
|
||||||
|
else:
|
||||||
file.write(formatted.encode("utf-8"))
|
file.write(formatted.encode("utf-8"))
|
||||||
|
|
||||||
if log_intermittents:
|
if log_intermittents:
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[bg-color-with-gradient.html]
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
||||||
|
[backdrop-filters-hue-rotate.html]
|
||||||
|
expected: FAIL
|
|
@ -1,33 +0,0 @@
|
||||||
[class-string-interface.any.html]
|
|
||||||
[Object.prototype.toString applied to the prototype]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Object.prototype.toString applied to a null-prototype instance]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Object.prototype.toString applied after modifying the prototype's @@toStringTag]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Object.prototype.toString applied after deleting @@toStringTag]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[@@toStringTag exists on the prototype with the appropriate descriptor]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
||||||
[class-string-interface.any.worker.html]
|
|
||||||
[Object.prototype.toString applied to the prototype]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Object.prototype.toString applied to a null-prototype instance]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Object.prototype.toString applied after modifying the prototype's @@toStringTag]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Object.prototype.toString applied after deleting @@toStringTag]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[@@toStringTag exists on the prototype with the appropriate descriptor]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
[class-string-iterator-prototype-object.any.html]
|
|
||||||
[Object.prototype.toString]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Object.prototype.toString applied after deleting @@toStringTag]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[@@toStringTag exists with the appropriate descriptor]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Object.prototype.toString applied after modifying @@toStringTag]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Object.prototype.toString applied after nulling the prototype]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Object.prototype.toString applied to a null-prototype instance]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
||||||
[class-string-iterator-prototype-object.any.worker.html]
|
|
||||||
[Object.prototype.toString]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Object.prototype.toString applied after deleting @@toStringTag]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[@@toStringTag exists with the appropriate descriptor]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Object.prototype.toString applied after modifying @@toStringTag]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Object.prototype.toString applied after nulling the prototype]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Object.prototype.toString applied to a null-prototype instance]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
[class-string-named-properties-object.window.html]
|
[class-string-named-properties-object.window.html]
|
||||||
[Object.prototype.toString applied after modifying @@toStringTag]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Object.prototype.toString applied after deleting @@toStringTag]
|
[Object.prototype.toString applied after deleting @@toStringTag]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
[default-iterator-object.html]
|
|
||||||
[Object.prototype.toString returns correct value]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[@@toStringTag has correct value from prototype]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -5,9 +5,9 @@
|
||||||
[[data-expected-height\] 7]
|
[[data-expected-height\] 7]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[[data-expected-height\] 3]
|
[[data-expected-height\] 1]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[[data-expected-height\] 4]
|
[[data-expected-height\] 2]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[white-space-002.xht]
|
|
||||||
expected: FAIL
|
|
|
@ -1,2 +0,0 @@
|
||||||
[white-space-003.xht]
|
|
||||||
expected: FAIL
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[bg-color-with-gradient.html]
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
||||||
|
[line-break-normal-018.xht]
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
||||||
|
[line-break-strict-018.xht]
|
||||||
|
expected: FAIL
|
2
tests/wpt/metadata/css/css-ui/outline-006.html.ini
Normal file
2
tests/wpt/metadata/css/css-ui/outline-006.html.ini
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[outline-006.html]
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
||||||
|
[backdrop-filters-hue-rotate.html]
|
||||||
|
expected: FAIL
|
|
@ -1,2 +1,22 @@
|
||||||
[element-internals-shadowroot.html]
|
[element-internals-shadowroot.html]
|
||||||
expected: ERROR
|
expected: ERROR
|
||||||
|
[ElementInternals cannot be called after constructor calls it, create case]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[ElementInternals cannot be called before constructor, upgrade case]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[ElementInternals.shadowRoot allows access to open shadow root]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[ElementInternals.shadowRoot allows access to closed shadow root]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[ElementInternals *can* be called after constructor, upgrade case]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[ElementInternals disabled by disabledFeatures]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[ElementInternals.shadowRoot doesn't reveal pre-attached closed shadowRoot]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -6,3 +6,8 @@
|
||||||
[Trying to set an expando with an indexed property name past the end of the list]
|
[Trying to set an expando with an indexed property name past the end of the list]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[Handling of property names that look like integers around 2^32]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Handling of property names that look like integers around 2^31]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
expected: ERROR
|
expected: ERROR
|
||||||
|
|
||||||
[response-error-from-stream.any.html]
|
[response-error-from-stream.any.html]
|
||||||
expected: ERROR
|
|
||||||
|
|
||||||
[response-error-from-stream.any.sharedworker.html]
|
[response-error-from-stream.any.sharedworker.html]
|
||||||
expected: ERROR
|
expected: ERROR
|
||||||
|
|
|
@ -1,86 +1,43 @@
|
||||||
[parent-no-child-bad-subdomain.sub.https.html]
|
[parent-no-child-bad-subdomain.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
["true": originAgentCluster must equal false]
|
["true": originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[""?1"": message event must occur]
|
[""?1"": message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
["(?1)": originAgentCluster must equal false]
|
["(?1)": originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
["1": frame insertion]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
["?2": message event must occur]
|
["?2": message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
["?0": originAgentCluster must equal false]
|
["?0": originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[""?1"": setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
["true": message event must occur]
|
["true": message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
["": originAgentCluster must equal false]
|
["": originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
["true": setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[""?1"": originAgentCluster must equal false]
|
[""?1"": originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
["": message event must occur]
|
["": message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
["": frame insertion]
|
|
||||||
expected: TIMEOUT
|
|
||||||
|
|
||||||
["?2": originAgentCluster must equal false]
|
["?2": originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
["?2": setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
["(?1)": frame insertion]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
["1": message event must occur]
|
["1": message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
["?0": frame insertion]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
["?0": setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
["1": setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
["": setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
["(?1)": message event must occur]
|
["(?1)": message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
["true": frame insertion]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
["1": originAgentCluster must equal false]
|
["1": originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[""?1"": frame insertion]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
["?0": message event must occur]
|
["?0": message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
["?2": frame insertion]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
["(?1)": setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
[parent-no-child-yes-port.sub.https.html]
|
[parent-no-child-yes-port.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[setting document.domain must not give sync access]
|
[setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal false]
|
[parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[messageerror event must occur]
|
[messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child: originAgentCluster must equal true]
|
[child: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,10 @@
|
||||||
[parent-no-child-yes-same.sub.https.html]
|
[parent-no-child-yes-same.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[message event must occur]
|
[message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[parent: originAgentCluster must equal false]
|
[parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child: originAgentCluster must equal false]
|
[child: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
[parent-no-child-yes-subdomain-with-redirect.sub.https.html]
|
[parent-no-child-yes-subdomain-with-redirect.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[setting document.domain must not give sync access]
|
[setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal false]
|
[parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[messageerror event must occur]
|
[messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child: originAgentCluster must equal true]
|
[child: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
[parent-no-child-yes-subdomain.sub.https.html]
|
[parent-no-child-yes-subdomain.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[setting document.domain must not give sync access]
|
[setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal false]
|
[parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[messageerror event must occur]
|
[messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child: originAgentCluster must equal true]
|
[child: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
[parent-no-child-yeswithparams-subdomain.sub.https.html]
|
[parent-no-child-yeswithparams-subdomain.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[setting document.domain must not give sync access]
|
[setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal false]
|
[parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[messageerror event must occur]
|
[messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child: originAgentCluster must equal true]
|
[child: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
[parent-yes-child-no-port.sub.https.html]
|
[parent-yes-child-no-port.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[setting document.domain must not give sync access]
|
[setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal true]
|
[parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[messageerror event must occur]
|
[messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child: originAgentCluster must equal false]
|
[child: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,10 @@
|
||||||
[parent-yes-child-no-same.sub.https.html]
|
[parent-yes-child-no-same.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[message event must occur]
|
[message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[child: originAgentCluster must equal true]
|
[child: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal true]
|
[parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
[parent-yes-child-no-subdomain.sub.https.html]
|
[parent-yes-child-no-subdomain.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[setting document.domain must not give sync access]
|
[setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal true]
|
[parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[messageerror event must occur]
|
[messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child: originAgentCluster must equal false]
|
[child: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
[parent-yes-child-yes-port.sub.https.html]
|
[parent-yes-child-yes-port.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[setting document.domain must not give sync access]
|
[setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal true]
|
[parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[messageerror event must occur]
|
[messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child: originAgentCluster must equal true]
|
[child: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,10 @@
|
||||||
[parent-yes-child-yes-same.sub.https.html]
|
[parent-yes-child-yes-same.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[message event must occur]
|
[message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[child: originAgentCluster must equal true]
|
[child: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal true]
|
[parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
[parent-yes-child-yes-subdomain.sub.https.html]
|
[parent-yes-child-yes-subdomain.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[setting document.domain must not give sync access]
|
[setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal true]
|
[parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[messageerror event must occur]
|
[messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child: originAgentCluster must equal true]
|
[child: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -6,26 +6,20 @@
|
||||||
[parent: originAgentCluster must equal false]
|
[parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child2: setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[Parent to child2: message event must occur]
|
[Parent to child2: message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child1: originAgentCluster must equal false]
|
[child1: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[child1 to child2: message event must occur]
|
[child1 to child2: message event must occur]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[child2: originAgentCluster must equal false]
|
[child2: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child1: message event must occur]
|
[Parent to child1: message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child1: setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[child1 to child2: setting document.domain must give sync access]
|
[child1 to child2: setting document.domain must give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[child1 to child2: messageerror event must occur]
|
[child1 to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[parent: originAgentCluster must equal false]
|
[parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -12,11 +12,8 @@
|
||||||
[child2 to child1: setting document.domain must not give sync access]
|
[child2 to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child1: setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[Parent to child2: messageerror event must occur]
|
[Parent to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child1: originAgentCluster must equal false]
|
[child1: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -25,10 +22,10 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child1: message event must occur]
|
[Parent to child1: message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child2: setting document.domain must not give sync access]
|
[Parent to child2: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child2 to child1: messageerror event must occur]
|
[child2 to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[child1 to child2: messageerror event must occur]
|
[child1 to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[parent: originAgentCluster must equal false]
|
[parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -12,11 +12,8 @@
|
||||||
[child2 to child1: setting document.domain must not give sync access]
|
[child2 to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child1: setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[Parent to child2: messageerror event must occur]
|
[Parent to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child1: originAgentCluster must equal false]
|
[child1: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -25,10 +22,10 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child1: message event must occur]
|
[Parent to child1: message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child2: setting document.domain must not give sync access]
|
[Parent to child2: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child2 to child1: messageerror event must occur]
|
[child2 to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
|
@ -4,19 +4,16 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[child1 to child2: messageerror event must occur]
|
[child1 to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[parent: originAgentCluster must equal false]
|
[parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child2: setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[Parent to child2: message event must occur]
|
[Parent to child2: message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child1: setting document.domain must not give sync access]
|
[Parent to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child1 to child2: setting document.domain must not give sync access]
|
[child1 to child2: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -25,7 +22,7 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child1: messageerror event must occur]
|
[Parent to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child2 to child1: setting document.domain must not give sync access]
|
[child2 to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[parent-no-child1-yes-subdomain-child2-no-subdomain.sub.https.html]
|
[parent-no-child1-yes-subdomain-child2-no-subdomain.sub.https.html]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
[Parent to child1: messageerror event must occur]
|
[Parent to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child1: originAgentCluster must equal true]
|
[child1: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -13,19 +13,19 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child2: messageerror event must occur]
|
[Parent to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child1 to child2: message event must occur]
|
[child1 to child2: message event must occur]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[child2 to child1: setting document.domain must give sync access]
|
[child2 to child1: setting document.domain must give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child1: setting document.domain must not give sync access]
|
[Parent to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child2: setting document.domain must not give sync access]
|
[Parent to child2: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child2: originAgentCluster must equal true]
|
[child2: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
[parent-yes-child1-no-subdomain-child2-no-subdomain.sub.https.html]
|
[parent-yes-child1-no-subdomain-child2-no-subdomain.sub.https.html]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
[Parent to child1: messageerror event must occur]
|
[Parent to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child2 to child1: message event must occur]
|
[child2 to child1: message event must occur]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child2: messageerror event must occur]
|
[Parent to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal true]
|
[parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[child1 to child2: message event must occur]
|
[child1 to child2: message event must occur]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[child2 to child1: setting document.domain must give sync access]
|
[child2 to child1: setting document.domain must give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -25,10 +25,10 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child1: setting document.domain must not give sync access]
|
[Parent to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child2: setting document.domain must not give sync access]
|
[Parent to child2: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child1 to child2: setting document.domain must give sync access]
|
[child1 to child2: setting document.domain must give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
[parent-yes-child1-no-subdomain-child2-no-subdomain2.sub.https.html]
|
[parent-yes-child1-no-subdomain-child2-no-subdomain2.sub.https.html]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
[Parent to child1: messageerror event must occur]
|
[Parent to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child2 to child1: message event must occur]
|
[child2 to child1: message event must occur]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child2: messageerror event must occur]
|
[Parent to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal true]
|
[parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[child1 to child2: message event must occur]
|
[child1 to child2: message event must occur]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[child2 to child1: setting document.domain must give sync access]
|
[child2 to child1: setting document.domain must give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -25,10 +25,10 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child1: setting document.domain must not give sync access]
|
[Parent to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child2: setting document.domain must not give sync access]
|
[Parent to child2: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child1 to child2: setting document.domain must give sync access]
|
[child1 to child2: setting document.domain must give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
[parent-yes-child1-no-subdomain-child2-yes-subdomain.sub.https.html]
|
[parent-yes-child1-no-subdomain-child2-yes-subdomain.sub.https.html]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
[Parent to child1: messageerror event must occur]
|
[Parent to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child2 to child1: message event must occur]
|
[child2 to child1: message event must occur]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child2: messageerror event must occur]
|
[Parent to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal true]
|
[parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[child1 to child2: message event must occur]
|
[child1 to child2: message event must occur]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[child2 to child1: setting document.domain must give sync access]
|
[child2 to child1: setting document.domain must give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -25,10 +25,10 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child1: setting document.domain must not give sync access]
|
[Parent to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child2: setting document.domain must not give sync access]
|
[Parent to child2: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child1 to child2: setting document.domain must give sync access]
|
[child1 to child2: setting document.domain must give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
|
@ -4,13 +4,13 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[child1 to child2: messageerror event must occur]
|
[child1 to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[child2 to child1: setting document.domain must not give sync access]
|
[child2 to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child2: messageerror event must occur]
|
[Parent to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal true]
|
[parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -22,13 +22,13 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child1: setting document.domain must not give sync access]
|
[Parent to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child2: setting document.domain must not give sync access]
|
[Parent to child2: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child1: messageerror event must occur]
|
[Parent to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child2 to child1: messageerror event must occur]
|
[child2 to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
|
@ -4,13 +4,13 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[child1 to child2: messageerror event must occur]
|
[child1 to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[child2 to child1: setting document.domain must not give sync access]
|
[child2 to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child2: messageerror event must occur]
|
[Parent to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal true]
|
[parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -22,13 +22,13 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child1: setting document.domain must not give sync access]
|
[Parent to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child2: setting document.domain must not give sync access]
|
[Parent to child2: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child1: messageerror event must occur]
|
[Parent to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child2 to child1: messageerror event must occur]
|
[child2 to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
|
@ -4,13 +4,13 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[child1 to child2: messageerror event must occur]
|
[child1 to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[child2 to child1: setting document.domain must not give sync access]
|
[child2 to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child2: messageerror event must occur]
|
[Parent to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal true]
|
[parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -22,13 +22,13 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child1: setting document.domain must not give sync access]
|
[Parent to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child2: setting document.domain must not give sync access]
|
[Parent to child2: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child1: messageerror event must occur]
|
[Parent to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child2 to child1: messageerror event must occur]
|
[child2 to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[parent-yes-child1-yes-subdomain-child2-no-subdomain.sub.https.html]
|
[parent-yes-child1-yes-subdomain-child2-no-subdomain.sub.https.html]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
[Parent to child1: messageerror event must occur]
|
[Parent to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child1: originAgentCluster must equal true]
|
[child1: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -10,22 +10,22 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child2: messageerror event must occur]
|
[Parent to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal true]
|
[parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[child1 to child2: message event must occur]
|
[child1 to child2: message event must occur]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[child2 to child1: setting document.domain must give sync access]
|
[child2 to child1: setting document.domain must give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child1: setting document.domain must not give sync access]
|
[Parent to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child2: setting document.domain must not give sync access]
|
[Parent to child2: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child2: originAgentCluster must equal true]
|
[child2: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[parent-yes-child1-yes-subdomain-child2-yes-subdomain.sub.https.html]
|
[parent-yes-child1-yes-subdomain-child2-yes-subdomain.sub.https.html]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
[Parent to child1: messageerror event must occur]
|
[Parent to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child1: originAgentCluster must equal true]
|
[child1: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -10,22 +10,22 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child2: messageerror event must occur]
|
[Parent to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal true]
|
[parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[child1 to child2: message event must occur]
|
[child1 to child2: message event must occur]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[child2 to child1: setting document.domain must give sync access]
|
[child2 to child1: setting document.domain must give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child1: setting document.domain must not give sync access]
|
[Parent to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child2: setting document.domain must not give sync access]
|
[Parent to child2: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child2: originAgentCluster must equal true]
|
[child2: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
|
@ -7,13 +7,13 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[child1 to child2: messageerror event must occur]
|
[child1 to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[child2 to child1: setting document.domain must not give sync access]
|
[child2 to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child2: messageerror event must occur]
|
[Parent to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal true]
|
[parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -22,13 +22,13 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child1: setting document.domain must not give sync access]
|
[Parent to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child2: setting document.domain must not give sync access]
|
[Parent to child2: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child1: messageerror event must occur]
|
[Parent to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child2 to child1: messageerror event must occur]
|
[child2 to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
|
@ -7,13 +7,13 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[child1 to child2: messageerror event must occur]
|
[child1 to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[child2 to child1: setting document.domain must not give sync access]
|
[child2 to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child2: messageerror event must occur]
|
[Parent to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[parent: originAgentCluster must equal true]
|
[parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -22,13 +22,13 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Parent to child1: setting document.domain must not give sync access]
|
[Parent to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child2: setting document.domain must not give sync access]
|
[Parent to child2: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Parent to child1: messageerror event must occur]
|
[Parent to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child2 to child1: messageerror event must occur]
|
[child2 to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
|
@ -1,13 +1,10 @@
|
||||||
[about-blank.https.sub.html]
|
[about-blank.https.sub.html]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
[about:blank to child2: messageerror event must occur]
|
[about:blank to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[parent to about:blank: setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[parent to about:blank: message event must occur]
|
[parent to about:blank: message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[about:blank to child2: setting document.domain must not give sync access]
|
[about:blank to child2: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
[cross-origin-isolated.sub.https.html]
|
[cross-origin-isolated.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[self: originAgentCluster must equal true]
|
[self: originAgentCluster must equal true]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[child: originAgentCluster must equal true]
|
[child: originAgentCluster must equal true]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[sandboxed-iframe-no.https.html]
|
[sandboxed-iframe-no.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[originAgentCluster must equal true]
|
[originAgentCluster must equal true]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[sandboxed-iframe-yes.https.html]
|
[sandboxed-iframe-yes.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[originAgentCluster must equal true]
|
[originAgentCluster must equal true]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[sandboxed-same-origin-iframe-no.https.html]
|
[sandboxed-same-origin-iframe-no.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[originAgentCluster must equal false]
|
[originAgentCluster must equal false]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[sandboxed-same-origin-iframe-yes.https.html]
|
[sandboxed-same-origin-iframe-yes.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[originAgentCluster must equal true]
|
[originAgentCluster must equal true]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
[going-back.sub.https.html]
|
[going-back.sub.https.html]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
[After navigation: parent to child2: setting document.domain must not give sync access]
|
[After navigation: parent to child2: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child2 to child1: setting document.domain must give sync access]
|
[child2 to child1: setting document.domain must give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Before navigation: parent to child1: messageerror event must occur]
|
[Before navigation: parent to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[After back: parent to child1: messageerror event must occur]
|
[After back: parent to child1: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -15,11 +15,8 @@
|
||||||
[child2 to child1: message event must occur]
|
[child2 to child1: message event must occur]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Inserting a second iframe]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[After navigation: parent to child2: messageerror event must occur]
|
[After navigation: parent to child2: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[After back: parent to child2: setting document.domain must not give sync access]
|
[After back: parent to child2: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -31,17 +28,14 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Going back in history (navigating back the first iframe)]
|
[Going back in history (navigating back the first iframe)]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[Before navigation: parent to child1: setting document.domain must not give sync access]
|
[Before navigation: parent to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child1 to child2: setting document.domain must give sync access]
|
[child1 to child2: setting document.domain must give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Navigation]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[After back: parent to child1: setting document.domain must not give sync access]
|
[After back: parent to child1: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -1,29 +1,22 @@
|
||||||
[parent-no-1-no-same-2-yes-port.sub.https.html]
|
[parent-no-1-no-same-2-yes-port.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[before parent: originAgentCluster must equal false]
|
[before parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[before child: originAgentCluster must equal false]
|
[before child: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Before: parent to child: setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[after child: originAgentCluster must equal true]
|
[after child: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[After: parent to child: messageerror event must occur]
|
[After: parent to child: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[after parent: originAgentCluster must equal false]
|
[after parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Navigation]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[After: parent to child: setting document.domain must not give sync access]
|
[After: parent to child: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Before: parent to child: message event must occur]
|
[Before: parent to child: message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,29 +1,22 @@
|
||||||
[parent-no-1-no-same-2-yes-subdomain.sub.https.html]
|
[parent-no-1-no-same-2-yes-subdomain.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[before parent: originAgentCluster must equal false]
|
[before parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[before child: originAgentCluster must equal false]
|
[before child: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Before: parent to child: setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[after child: originAgentCluster must equal true]
|
[after child: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[After: parent to child: messageerror event must occur]
|
[After: parent to child: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[after parent: originAgentCluster must equal false]
|
[after parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Navigation]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[After: parent to child: setting document.domain must not give sync access]
|
[After: parent to child: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Before: parent to child: message event must occur]
|
[Before: parent to child: message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,29 +1,19 @@
|
||||||
[parent-no-1-no-subdomain-2-yes-subdomain.sub.https.html]
|
[parent-no-1-no-subdomain-2-yes-subdomain.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[before parent: originAgentCluster must equal false]
|
[before parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[before child: originAgentCluster must equal false]
|
[before child: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Before: parent to child: setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[After: parent to child: setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[After: parent to child: message event must occur]
|
[After: parent to child: message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[after parent: originAgentCluster must equal false]
|
[after parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[after child: originAgentCluster must equal false]
|
[after child: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Navigation]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[Before: parent to child: message event must occur]
|
[Before: parent to child: message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,29 +1,22 @@
|
||||||
[parent-no-1-no-subdomain-2-yes-subdomain2.sub.https.html]
|
[parent-no-1-no-subdomain-2-yes-subdomain2.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[before parent: originAgentCluster must equal false]
|
[before parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[before child: originAgentCluster must equal false]
|
[before child: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Before: parent to child: setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[after child: originAgentCluster must equal true]
|
[after child: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[After: parent to child: messageerror event must occur]
|
[After: parent to child: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[after parent: originAgentCluster must equal false]
|
[after parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Navigation]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[After: parent to child: setting document.domain must not give sync access]
|
[After: parent to child: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Before: parent to child: message event must occur]
|
[Before: parent to child: message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,29 +1,22 @@
|
||||||
[parent-no-1-subdomain-yes-2-subdomain2-no.sub.https.html]
|
[parent-no-1-subdomain-yes-2-subdomain2-no.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[before parent: originAgentCluster must equal false]
|
[before parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Before: parent to child: setting document.domain must not give sync access]
|
[Before: parent to child: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[After: parent to child: setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[Before: parent to child: messageerror event must occur]
|
[Before: parent to child: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[before child: originAgentCluster must equal true]
|
[before child: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[After: parent to child: message event must occur]
|
[After: parent to child: message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[after parent: originAgentCluster must equal false]
|
[after parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Navigation]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[after child: originAgentCluster must equal false]
|
[after child: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,29 +1,25 @@
|
||||||
[parent-no-1-yes-subdomain-2-no-subdomain.sub.https.html]
|
[parent-no-1-yes-subdomain-2-no-subdomain.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[before parent: originAgentCluster must equal false]
|
[before parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[after parent: originAgentCluster must equal false]
|
[after parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Before: parent to child: setting document.domain must not give sync access]
|
[Before: parent to child: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[after child: originAgentCluster must equal true]
|
[after child: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[After: parent to child: messageerror event must occur]
|
[After: parent to child: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[before child: originAgentCluster must equal true]
|
[before child: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Before: parent to child: messageerror event must occur]
|
[Before: parent to child: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Navigation]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[After: parent to child: setting document.domain must not give sync access]
|
[After: parent to child: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,29 +1,22 @@
|
||||||
[parent-yes-1-no-same-2-no-port.sub.https.html]
|
[parent-yes-1-no-same-2-no-port.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[after parent: originAgentCluster must equal true]
|
[after parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Before: parent to child: setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[before parent: originAgentCluster must equal true]
|
[before parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[before child: originAgentCluster must equal true]
|
[before child: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[After: parent to child: messageerror event must occur]
|
[After: parent to child: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[after child: originAgentCluster must equal false]
|
[after child: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Navigation]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[After: parent to child: setting document.domain must not give sync access]
|
[After: parent to child: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Before: parent to child: message event must occur]
|
[Before: parent to child: message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,29 +1,22 @@
|
||||||
[parent-yes-1-no-same-2-no-subdomain.sub.https.html]
|
[parent-yes-1-no-same-2-no-subdomain.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[after parent: originAgentCluster must equal true]
|
[after parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Before: parent to child: setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[before parent: originAgentCluster must equal true]
|
[before parent: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[before child: originAgentCluster must equal true]
|
[before child: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[After: parent to child: messageerror event must occur]
|
[After: parent to child: messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[after child: originAgentCluster must equal false]
|
[after child: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Navigation]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[After: parent to child: setting document.domain must not give sync access]
|
[After: parent to child: setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Before: parent to child: message event must occur]
|
[Before: parent to child: message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,10 @@
|
||||||
[insecure-http.sub.html]
|
[insecure-http.sub.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[message event must occur]
|
[message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[parent: originAgentCluster must equal false]
|
[parent: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[child: originAgentCluster must equal false]
|
[child: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
[opener-no-openee-yes-port.sub.https.html]
|
[opener-no-openee-yes-port.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[setting document.domain must not give sync access]
|
[setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[opener: originAgentCluster must equal false]
|
[opener: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[messageerror event must occur]
|
[messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[openee: originAgentCluster must equal true]
|
[openee: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,10 @@
|
||||||
[opener-no-openee-yes-same.sub.https.html]
|
[opener-no-openee-yes-same.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[message event must occur]
|
[message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[opener: originAgentCluster must equal false]
|
[opener: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[openee: originAgentCluster must equal false]
|
[openee: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
[opener-no-openee-yes-subdomain.sub.https.html]
|
[opener-no-openee-yes-subdomain.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[setting document.domain must not give sync access]
|
[setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[opener: originAgentCluster must equal false]
|
[opener: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[messageerror event must occur]
|
[messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[openee: originAgentCluster must equal true]
|
[openee: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
[opener-yes-openee-no-port.sub.https.html]
|
[opener-yes-openee-no-port.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[setting document.domain must not give sync access]
|
[setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[messageerror event must occur]
|
[messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[openee: originAgentCluster must equal false]
|
[openee: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[opener: originAgentCluster must equal true]
|
[opener: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,10 @@
|
||||||
[opener-yes-openee-no-same.sub.https.html]
|
[opener-yes-openee-no-same.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[message event must occur]
|
[message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[opener: originAgentCluster must equal true]
|
[opener: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[openee: originAgentCluster must equal true]
|
[openee: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
[opener-yes-openee-no-subdomain.sub.https.html]
|
[opener-yes-openee-no-subdomain.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[setting document.domain must not give sync access]
|
[setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[messageerror event must occur]
|
[messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[openee: originAgentCluster must equal false]
|
[openee: originAgentCluster must equal false]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[opener: originAgentCluster must equal true]
|
[opener: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
[opener-yes-openee-yes-port.sub.https.html]
|
[opener-yes-openee-yes-port.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[setting document.domain must not give sync access]
|
[setting document.domain must not give sync access]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[messageerror event must occur]
|
[messageerror event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[openee: originAgentCluster must equal true]
|
[openee: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[opener: originAgentCluster must equal true]
|
[opener: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,10 @@
|
||||||
[opener-yes-openee-yes-same.sub.https.html]
|
[opener-yes-openee-yes-same.sub.https.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[message event must occur]
|
[message event must occur]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[setting document.domain must give sync access]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[opener: originAgentCluster must equal true]
|
[opener: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[openee: originAgentCluster must equal true]
|
[openee: originAgentCluster must equal true]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue