mirror of
https://github.com/servo/servo.git
synced 2025-08-07 06:25:32 +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]]
|
||||
name = "mozjs"
|
||||
version = "0.14.1"
|
||||
source = "git+https://github.com/servo/rust-mozjs#db90a4651adcc1447d1eb8c4bb13f18ea957d263"
|
||||
source = "git+https://github.com/servo/rust-mozjs#b8122da4ea8a48ea21454e65f42d5b2194a2d311"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"lazy_static",
|
||||
|
@ -3798,7 +3798,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "mozjs_sys"
|
||||
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 = [
|
||||
"bindgen",
|
||||
"cc",
|
||||
|
|
|
@ -65,11 +65,11 @@ impl<'a> phf_shared::PhfHash for Bytes<'a> {
|
|||
}
|
||||
|
||||
fn find_python() -> String {
|
||||
env::var("PYTHON2").ok().unwrap_or_else(|| {
|
||||
env::var("PYTHON3").ok().unwrap_or_else(|| {
|
||||
let candidates = if cfg!(windows) {
|
||||
["python2.7.exe", "python27.exe", "python.exe"]
|
||||
["python3.8.exe", "python38.exe", "python.exe"]
|
||||
} else {
|
||||
["python2.7", "python2", "python"]
|
||||
["python3.8", "python3", "python"]
|
||||
};
|
||||
for &name in &candidates {
|
||||
if Command::new(name)
|
||||
|
@ -82,7 +82,7 @@ fn find_python() -> String {
|
|||
}
|
||||
}
|
||||
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(", ")
|
||||
)
|
||||
})
|
||||
|
|
|
@ -23,9 +23,8 @@ use devtools_traits::{AutoMargins, ComputedNodeLayout, TimelineMarkerType};
|
|||
use devtools_traits::{EvaluateJSReply, Modification, NodeInfo, TimelineMarker};
|
||||
use ipc_channel::ipc::IpcSender;
|
||||
use js::jsval::UndefinedValue;
|
||||
use js::rust::wrappers::ObjectClassName;
|
||||
use js::rust::ToString;
|
||||
use msg::constellation_msg::PipelineId;
|
||||
use std::ffi::CStr;
|
||||
use std::rc::Rc;
|
||||
use std::str;
|
||||
use uuid::Uuid;
|
||||
|
@ -65,12 +64,11 @@ pub fn handle_evaluate_js(global: &GlobalScope, eval: String, reply: IpcSender<E
|
|||
} else {
|
||||
assert!(rval.is_object());
|
||||
|
||||
rooted!(in(*cx) let obj = rval.to_object());
|
||||
let class_name = CStr::from_ptr(ObjectClassName(*cx, obj.handle()));
|
||||
let class_name = str::from_utf8(class_name.to_bytes()).unwrap();
|
||||
let jsstr = ToString(*cx, rval.handle());
|
||||
let class_name = jsstring_to_str(*cx, jsstr);
|
||||
|
||||
EvaluateJSReply::ActorValue {
|
||||
class: class_name.to_owned(),
|
||||
class: class_name.to_string(),
|
||||
uuid: Uuid::new_v4().to_string(),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -344,7 +344,7 @@ class CGMethodCall(CGThing):
|
|||
distinguishingArg = "HandleValue::from_raw(args.get(%d))" % distinguishingIndex
|
||||
|
||||
def pickFirstSignature(condition, filterLambda):
|
||||
sigs = filter(filterLambda, possibleSignatures)
|
||||
sigs = list(filter(filterLambda, possibleSignatures))
|
||||
assert len(sigs) < 2
|
||||
if len(sigs) > 0:
|
||||
call = getPerSignatureCall(sigs[0], distinguishingIndex)
|
||||
|
@ -1616,9 +1616,12 @@ class PropertyDefiner:
|
|||
specs = []
|
||||
prefableSpecs = []
|
||||
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)):
|
||||
currentSpecs = [specTemplate % getDataTuple(m) for m in members]
|
||||
currentSpecs = [specTemplate(m) % getDataTuple(m) for m in members]
|
||||
if specTerminator:
|
||||
currentSpecs.append(specTerminator)
|
||||
specs.append("&[\n" + ",\n".join(currentSpecs) + "]\n")
|
||||
|
@ -1826,7 +1829,11 @@ class AttrDefiner(PropertyDefiner):
|
|||
self.name = name
|
||||
self.descriptor = descriptor
|
||||
self.regular = [
|
||||
m
|
||||
{
|
||||
"name": m.identifier.name,
|
||||
"attr": m,
|
||||
"flags": "JSPROP_ENUMERATE",
|
||||
}
|
||||
for m in descriptor.interface.members if
|
||||
m.isAttr() and m.isStatic() == static
|
||||
and MemberIsUnforgeable(m, descriptor) == unforgeable
|
||||
|
@ -1834,15 +1841,21 @@ class AttrDefiner(PropertyDefiner):
|
|||
self.static = static
|
||||
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):
|
||||
if len(array) == 0:
|
||||
return ""
|
||||
|
||||
flags = "JSPROP_ENUMERATE"
|
||||
if self.unforgeable:
|
||||
flags += " | JSPROP_PERMANENT"
|
||||
|
||||
def getter(attr):
|
||||
attr = attr['attr']
|
||||
if self.static:
|
||||
accessor = 'get_' + self.descriptor.internalNameFor(attr.identifier.name)
|
||||
jitinfo = "0 as *const JSJitInfo"
|
||||
|
@ -1858,6 +1871,7 @@ class AttrDefiner(PropertyDefiner):
|
|||
"native": accessor})
|
||||
|
||||
def setter(attr):
|
||||
attr = attr['attr']
|
||||
if (attr.readonly and not attr.getExtendedAttribute("PutForwards")
|
||||
and not attr.getExtendedAttribute("Replaceable")):
|
||||
return "JSNativeWrapper { op: None, info: 0 as *const JSJitInfo }"
|
||||
|
@ -1876,29 +1890,59 @@ class AttrDefiner(PropertyDefiner):
|
|||
% {"info": jitinfo,
|
||||
"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):
|
||||
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))
|
||||
|
||||
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(
|
||||
array, name,
|
||||
' JSPropertySpec {\n'
|
||||
' 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'
|
||||
' }',
|
||||
template,
|
||||
' JSPropertySpec::ZERO',
|
||||
'JSPropertySpec',
|
||||
PropertyDefiner.getControllingCondition, specData)
|
||||
condition, specData)
|
||||
|
||||
|
||||
class ConstDefiner(PropertyDefiner):
|
||||
|
@ -2073,7 +2117,7 @@ class CGImports(CGWrapper):
|
|||
members += [constructor]
|
||||
|
||||
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:
|
||||
if m.isMethod():
|
||||
|
@ -2513,7 +2557,7 @@ def UnionTypes(descriptors, dictionaries, callbacks, typedefs, config):
|
|||
])
|
||||
|
||||
# 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"),
|
||||
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
|
||||
# aren't too many globals being created.
|
||||
if descriptor.isGlobal():
|
||||
copyFunc = "JS_CopyPropertiesFrom"
|
||||
copyFunc = "JS_CopyOwnPropertiesAndPrivateFields"
|
||||
else:
|
||||
copyFunc = "JS_InitializePropertiesFromCompatibleNativeObject"
|
||||
copyCode += """\
|
||||
|
@ -2783,7 +2827,6 @@ rooted!(in(*cx) let obj = NewProxyObject(
|
|||
Handle::from_raw(UndefinedHandleValue),
|
||||
proto.get(),
|
||||
ptr::null(),
|
||||
false,
|
||||
));
|
||||
assert!(!obj.is_null());
|
||||
SetProxyReservedSlot(
|
||||
|
@ -4412,9 +4455,10 @@ class CGEnum(CGThing):
|
|||
pub enum %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("""\
|
||||
use crate::dom::bindings::conversions::ConversionResult;
|
||||
|
@ -4597,9 +4641,8 @@ class CGUnionStruct(CGThing):
|
|||
return "Rc"
|
||||
return ""
|
||||
|
||||
templateVars = map(lambda t: (getUnionTypeTemplateVars(t, self.descriptorProvider),
|
||||
getTypeWrapper(t)),
|
||||
self.type.flatMemberTypes)
|
||||
templateVars = [(getUnionTypeTemplateVars(t, self.descriptorProvider),
|
||||
getTypeWrapper(t)) for t in self.type.flatMemberTypes]
|
||||
enumValues = [
|
||||
" %s(%s)," % (v["name"], "%s<%s>" % (wrapper, v["typeName"]) if wrapper else v["typeName"])
|
||||
for (v, wrapper) in templateVars
|
||||
|
@ -4658,7 +4701,7 @@ class CGUnionConversionStruct(CGThing):
|
|||
" Ok(None) => (),\n"
|
||||
"}\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:
|
||||
typeNames = [get_name(memberType) for memberType in interfaceMemberTypes]
|
||||
interfaceObject = CGList(CGGeneric(get_match(typeName)) for typeName in typeNames)
|
||||
|
@ -4666,7 +4709,7 @@ class CGUnionConversionStruct(CGThing):
|
|||
else:
|
||||
interfaceObject = None
|
||||
|
||||
arrayObjectMemberTypes = filter(lambda t: t.isSequence(), memberTypes)
|
||||
arrayObjectMemberTypes = [t for t in memberTypes if t.isSequence()]
|
||||
if len(arrayObjectMemberTypes) > 0:
|
||||
assert len(arrayObjectMemberTypes) == 1
|
||||
typeName = arrayObjectMemberTypes[0].name
|
||||
|
@ -4675,7 +4718,7 @@ class CGUnionConversionStruct(CGThing):
|
|||
else:
|
||||
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:
|
||||
assert len(callbackMemberTypes) == 1
|
||||
typeName = callbackMemberTypes[0].name
|
||||
|
@ -4683,7 +4726,7 @@ class CGUnionConversionStruct(CGThing):
|
|||
else:
|
||||
callbackObject = None
|
||||
|
||||
dictionaryMemberTypes = filter(lambda t: t.isDictionary(), memberTypes)
|
||||
dictionaryMemberTypes = [t for t in memberTypes if t.isDictionary()]
|
||||
if len(dictionaryMemberTypes) > 0:
|
||||
assert len(dictionaryMemberTypes) == 1
|
||||
typeName = dictionaryMemberTypes[0].name
|
||||
|
@ -4692,7 +4735,7 @@ class CGUnionConversionStruct(CGThing):
|
|||
else:
|
||||
dictionaryObject = None
|
||||
|
||||
objectMemberTypes = filter(lambda t: t.isObject(), memberTypes)
|
||||
objectMemberTypes = [t for t in memberTypes if t.isObject()]
|
||||
if len(objectMemberTypes) > 0:
|
||||
assert len(objectMemberTypes) == 1
|
||||
typeName = objectMemberTypes[0].name
|
||||
|
@ -4701,7 +4744,7 @@ class CGUnionConversionStruct(CGThing):
|
|||
else:
|
||||
object = None
|
||||
|
||||
mozMapMemberTypes = filter(lambda t: t.isRecord(), memberTypes)
|
||||
mozMapMemberTypes = [t for t in memberTypes if t.isRecord()]
|
||||
if len(mozMapMemberTypes) > 0:
|
||||
assert len(mozMapMemberTypes) == 1
|
||||
typeName = mozMapMemberTypes[0].name
|
||||
|
@ -4747,9 +4790,9 @@ class CGUnionConversionStruct(CGThing):
|
|||
typename = get_name(memberType)
|
||||
return CGGeneric(get_match(typename))
|
||||
other = []
|
||||
stringConversion = map(getStringOrPrimitiveConversion, stringTypes)
|
||||
numericConversion = map(getStringOrPrimitiveConversion, numericTypes)
|
||||
booleanConversion = map(getStringOrPrimitiveConversion, booleanTypes)
|
||||
stringConversion = list(map(getStringOrPrimitiveConversion, stringTypes))
|
||||
numericConversion = list(map(getStringOrPrimitiveConversion, numericTypes))
|
||||
booleanConversion = list(map(getStringOrPrimitiveConversion, booleanTypes))
|
||||
if stringConversion:
|
||||
if booleanConversion:
|
||||
other.append(CGIfWrapper("value.get().is_boolean()", booleanConversion[0]))
|
||||
|
@ -5915,7 +5958,7 @@ class CGInterfaceTrait(CGThing):
|
|||
rettype)
|
||||
|
||||
if descriptor.proxy:
|
||||
for name, operation in descriptor.operations.iteritems():
|
||||
for name, operation in descriptor.operations.items():
|
||||
if not operation or operation.isStringifier():
|
||||
continue
|
||||
|
||||
|
@ -6047,11 +6090,14 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries
|
|||
'js::jsapi::JSPROP_ENUMERATE',
|
||||
'js::jsapi::JSPROP_PERMANENT',
|
||||
'js::jsapi::JSPROP_READONLY',
|
||||
'js::jsapi::JSPROP_INTERNAL_USE_BIT',
|
||||
'js::jsapi::JSPropertySpec',
|
||||
'js::jsapi::JSPropertySpec_Accessor',
|
||||
'js::jsapi::JSPropertySpec_AccessorsOrValue',
|
||||
'js::jsapi::JSPropertySpec_AccessorsOrValue_Accessors',
|
||||
'js::jsapi::JSPropertySpec_Name',
|
||||
'js::jsapi::JSPropertySpec_ValueWrapper',
|
||||
'js::jsapi::JSPropertySpec_ValueWrapper__bindgen_ty_1',
|
||||
'js::jsapi::JSString',
|
||||
'js::jsapi::JSTracer',
|
||||
'js::jsapi::JSType',
|
||||
|
@ -6059,7 +6105,7 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries
|
|||
'js::jsapi::JSValueType',
|
||||
'js::jsapi::JS_AtomizeAndPinString',
|
||||
'js::rust::wrappers::JS_CallFunctionValue',
|
||||
'js::rust::wrappers::JS_CopyPropertiesFrom',
|
||||
'js::rust::wrappers::JS_CopyOwnPropertiesAndPrivateFields',
|
||||
'js::rust::wrappers::JS_DefineProperty',
|
||||
'js::rust::wrappers::JS_DefinePropertyById2',
|
||||
'js::jsapi::JS_ForwardGetPropertyTo',
|
||||
|
@ -6442,7 +6488,7 @@ class CGDescriptor(CGThing):
|
|||
post='\n')
|
||||
|
||||
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], '\n')
|
||||
|
||||
|
@ -7778,7 +7824,7 @@ impl Clone for TopTypeId {
|
|||
# TypeId enum.
|
||||
return "%s(%sTypeId)" % (name, name) if name in hierarchy else name
|
||||
|
||||
for base, derived in hierarchy.iteritems():
|
||||
for base, derived in hierarchy.items():
|
||||
variants = []
|
||||
if config.getDescriptor(base).concrete:
|
||||
variants.append(CGGeneric(base))
|
||||
|
|
|
@ -73,7 +73,7 @@ class Configuration:
|
|||
def getDescriptors(self, **filters):
|
||||
"""Gets the descriptors that match the given filters."""
|
||||
curr = self.descriptors
|
||||
for key, val in filters.iteritems():
|
||||
for key, val in filters.items():
|
||||
if key == 'webIDLFile':
|
||||
def getter(x):
|
||||
return x.interface.filename()
|
||||
|
@ -104,14 +104,14 @@ class Configuration:
|
|||
else:
|
||||
def getter(x):
|
||||
return getattr(x, key)
|
||||
curr = filter(lambda x: getter(x) == val, curr)
|
||||
curr = [x for x in curr if getter(x) == val]
|
||||
return curr
|
||||
|
||||
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):
|
||||
return filter(lambda e: e.filename() == webIDLFile, self.typedefs)
|
||||
return [e for e in self.typedefs if e.filename() == webIDLFile]
|
||||
|
||||
@staticmethod
|
||||
def _filterForFile(items, webIDLFile=""):
|
||||
|
@ -119,7 +119,7 @@ class Configuration:
|
|||
if not webIDLFile:
|
||||
return items
|
||||
|
||||
return filter(lambda x: x.filename() == webIDLFile, items)
|
||||
return [x for x in items if x.filename() == webIDLFile]
|
||||
|
||||
def getDictionaries(self, webIDLFile=""):
|
||||
return self._filterForFile(self.dictionaries, webIDLFile=webIDLFile)
|
||||
|
@ -327,7 +327,7 @@ class Descriptor(DescriptorProvider):
|
|||
if config == '*':
|
||||
iface = self.interface
|
||||
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
|
||||
else:
|
||||
add('all', [config], attribute)
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
""" A WebIDL parser. """
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
from ply import lex, yacc
|
||||
import re
|
||||
import os
|
||||
|
@ -57,7 +57,7 @@ def enum(*names, **kw):
|
|||
|
||||
if "base" not in kw:
|
||||
return Foo(names)
|
||||
return Foo(chain(kw["base"].attrs.keys(), names))
|
||||
return Foo(chain(list(kw["base"].attrs.keys()), names))
|
||||
|
||||
|
||||
class WebIDLError(Exception):
|
||||
|
@ -124,6 +124,9 @@ class BuiltinLocation(object):
|
|||
return (isinstance(other, BuiltinLocation) and
|
||||
self.msg == other.msg)
|
||||
|
||||
def __hash__(self):
|
||||
return hash(self.msg)
|
||||
|
||||
def filename(self):
|
||||
return '<builtin>'
|
||||
|
||||
|
@ -2360,6 +2363,9 @@ class IDLNullableType(IDLParametrizedType):
|
|||
def __eq__(self, other):
|
||||
return isinstance(other, IDLNullableType) and self.inner == other.inner
|
||||
|
||||
def __hash__(self):
|
||||
return hash(self.inner)
|
||||
|
||||
def __str__(self):
|
||||
return self.inner.__str__() + "OrNull"
|
||||
|
||||
|
@ -2522,6 +2528,9 @@ class IDLSequenceType(IDLParametrizedType):
|
|||
def __eq__(self, other):
|
||||
return isinstance(other, IDLSequenceType) and self.inner == other.inner
|
||||
|
||||
def __hash__(self):
|
||||
return hash(self.inner)
|
||||
|
||||
def __str__(self):
|
||||
return self.inner.__str__() + "Sequence"
|
||||
|
||||
|
@ -2933,6 +2942,9 @@ class IDLWrapperType(IDLType):
|
|||
self._identifier == other._identifier and
|
||||
self.builtin == other.builtin)
|
||||
|
||||
def __hash__(self):
|
||||
return hash((self._identifier, self.builtin))
|
||||
|
||||
def __str__(self):
|
||||
return str(self.name) + " (Wrapper)"
|
||||
|
||||
|
@ -3301,6 +3313,12 @@ class IDLBuiltinType(IDLType):
|
|||
return "MaybeShared" + 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):
|
||||
return IDLBuiltinType.PrettyNames[self._typeTag]
|
||||
|
||||
|
@ -3628,7 +3646,7 @@ integerTypeSizes = {
|
|||
|
||||
|
||||
def matchIntegerValueToType(value):
|
||||
for type, extremes in integerTypeSizes.items():
|
||||
for type, extremes in list(integerTypeSizes.items()):
|
||||
(min, max) = extremes
|
||||
if value <= max and value >= min:
|
||||
return BuiltinTypes[type]
|
||||
|
@ -3707,7 +3725,7 @@ class IDLValue(IDLObject):
|
|||
elif self.type.isString() and type.isEnum():
|
||||
# Just keep our string, but make sure it's a valid value for this enum
|
||||
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"
|
||||
% (self.value, enum.identifier.name),
|
||||
[location, enum.location])
|
||||
|
@ -4789,7 +4807,7 @@ class IDLAttribute(IDLInterfaceMember):
|
|||
"CrossOriginWritable",
|
||||
"SetterThrows",
|
||||
]
|
||||
for (key, value) in self._extendedAttrDict.items():
|
||||
for (key, value) in list(self._extendedAttrDict.items()):
|
||||
if key in allowedExtAttrs:
|
||||
if value is not True:
|
||||
raise WebIDLError("[%s] with a value is currently "
|
||||
|
@ -5479,7 +5497,7 @@ class IDLMethod(IDLInterfaceMember, IDLScope):
|
|||
[attr.location])
|
||||
if identifier == "CrossOriginCallable" and self.isStatic():
|
||||
raise WebIDLError("[CrossOriginCallable] is only allowed on non-static "
|
||||
"attributes"
|
||||
"attributes",
|
||||
[attr.location, self.location])
|
||||
elif identifier == "Pure":
|
||||
if not attr.noArguments():
|
||||
|
@ -5721,6 +5739,7 @@ class Tokenizer(object):
|
|||
"FLOATLITERAL",
|
||||
"IDENTIFIER",
|
||||
"STRING",
|
||||
"COMMENTS",
|
||||
"WHITESPACE",
|
||||
"OTHER"
|
||||
]
|
||||
|
@ -5753,8 +5772,12 @@ class Tokenizer(object):
|
|||
t.value = t.value[1:-1]
|
||||
return t
|
||||
|
||||
def t_COMMENTS(self, t):
|
||||
r'(\/\*(.|\n)*?\*\/)|(\/\/.*)'
|
||||
pass
|
||||
|
||||
def t_WHITESPACE(self, t):
|
||||
r'[\t\n\r ]+|[\t\n\r ]*((//[^\n]*|/\*.*?\*/)[\t\n\r ]*)+'
|
||||
r'[\t\n\r ]+'
|
||||
pass
|
||||
|
||||
def t_ELLIPSIS(self, t):
|
||||
|
@ -5840,7 +5863,7 @@ class Tokenizer(object):
|
|||
"async": "ASYNC",
|
||||
}
|
||||
|
||||
tokens.extend(keywords.values())
|
||||
tokens.extend(list(keywords.values()))
|
||||
|
||||
def t_error(self, t):
|
||||
raise WebIDLError("Unrecognized Input",
|
||||
|
@ -5849,23 +5872,21 @@ class Tokenizer(object):
|
|||
lexpos=self.lexer.lexpos,
|
||||
filename=self.filename)])
|
||||
|
||||
def __init__(self, outputdir, lexer=None):
|
||||
def __init__(self, lexer=None):
|
||||
if lexer:
|
||||
self.lexer = lexer
|
||||
else:
|
||||
self.lexer = lex.lex(object=self,
|
||||
outputdir=outputdir,
|
||||
lextab='webidllex',
|
||||
reflags=re.DOTALL)
|
||||
self.lexer = lex.lex(object=self)
|
||||
|
||||
|
||||
class SqueakyCleanLogger(object):
|
||||
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.
|
||||
"Token 'WHITESPACE' defined, but not used",
|
||||
# And that means we have an unused token
|
||||
"There is 1 unused token",
|
||||
"Token 'COMMENTS' defined, but not used",
|
||||
# And that means we have unused tokens
|
||||
"There are 2 unused tokens",
|
||||
# Web IDL defines a OtherOrComma rule that's only used in
|
||||
# ExtendedAttributeInner, which we don't use yet.
|
||||
"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)])
|
||||
|
||||
def __init__(self, outputdir='', lexer=None):
|
||||
Tokenizer.__init__(self, outputdir, lexer)
|
||||
Tokenizer.__init__(self, lexer)
|
||||
|
||||
logger = SqueakyCleanLogger()
|
||||
try:
|
||||
self.parser = yacc.yacc(module=self,
|
||||
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'
|
||||
)
|
||||
self.parser = yacc.yacc(module=self, errorlog=logger, debug=False)
|
||||
finally:
|
||||
logger.reportGrammarErrors()
|
||||
|
||||
|
@ -7553,12 +7563,12 @@ class Parser(Tokenizer):
|
|||
return type
|
||||
|
||||
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):
|
||||
# print tok
|
||||
|
||||
self._filename = filename
|
||||
self._productions.extend(self.parser.parse(lexer=self.lexer, tracking=True))
|
||||
self._filename = None
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ http://www.dabeaz.com/ply/
|
|||
|
||||
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,
|
||||
documentation, and a longer README.
|
||||
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
# PLY package
|
||||
# Author: David Beazley (dave@dabeaz.com)
|
||||
# https://dabeaz.com/ply/index.html
|
||||
|
||||
__version__ = '4.0'
|
||||
__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()
|
||||
if module:
|
||||
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):
|
||||
|
@ -66,7 +66,7 @@ def generate(config, name, filename):
|
|||
root = getattr(GlobalGenRoots, name)(config)
|
||||
code = root.define()
|
||||
with open(filename, "wb") as f:
|
||||
f.write(code)
|
||||
f.write(code.encode("utf-8"))
|
||||
|
||||
|
||||
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_STRING, RUST_JSID_TO_STRING};
|
||||
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::{
|
||||
JS_GetLatin1StringCharsAndLength, JS_GetTwoByteStringCharsAndLength, JS_IsExceptionPending,
|
||||
};
|
||||
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::{HandleId, HandleObject, HandleValue, MutableHandleValue};
|
||||
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
|
||||
/// contain valid UTF-16.
|
||||
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 {
|
||||
latin1_to_string(cx, s)
|
||||
} else {
|
||||
|
@ -271,7 +271,7 @@ impl FromJSValConvertible for USVString {
|
|||
debug!("ToString failed");
|
||||
return Err(());
|
||||
}
|
||||
let latin1 = JS_StringHasLatin1Chars(jsstr);
|
||||
let latin1 = JS_DeprecatedStringHasLatin1Chars(jsstr);
|
||||
if latin1 {
|
||||
// FIXME(ajeffrey): Convert directly from DOMString to USVString
|
||||
return Ok(ConversionResult::Success(USVString(String::from(
|
||||
|
@ -317,7 +317,7 @@ impl FromJSValConvertible for ByteString {
|
|||
return Err(());
|
||||
}
|
||||
|
||||
let latin1 = JS_StringHasLatin1Chars(string);
|
||||
let latin1 = JS_DeprecatedStringHasLatin1Chars(string);
|
||||
if latin1 {
|
||||
let mut length = 0;
|
||||
let chars = JS_GetLatin1StringCharsAndLength(cx, ptr::null(), string, &mut length);
|
||||
|
@ -564,7 +564,7 @@ impl<T: DomObject> ToJSValConvertible for DomRoot<T> {
|
|||
/// NodeList).
|
||||
pub unsafe fn is_array_like(cx: *mut JSContext, value: HandleValue) -> bool {
|
||||
let mut is_array = false;
|
||||
assert!(JS_IsArrayObject(cx, value, &mut is_array));
|
||||
assert!(IsArrayObject(cx, value, &mut is_array));
|
||||
if is_array {
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -116,6 +116,7 @@ unsafe fn write_blob(
|
|||
unsafe extern "C" fn read_callback(
|
||||
cx: *mut JSContext,
|
||||
r: *mut JSStructuredCloneReader,
|
||||
_policy: *const CloneDataPolicy,
|
||||
tag: u32,
|
||||
_data: u32,
|
||||
closure: *mut raw::c_void,
|
||||
|
@ -143,6 +144,7 @@ unsafe extern "C" fn write_callback(
|
|||
cx: *mut JSContext,
|
||||
w: *mut JSStructuredCloneWriter,
|
||||
obj: RawHandleObject,
|
||||
_same_process_scope_required: *mut bool,
|
||||
closure: *mut raw::c_void,
|
||||
) -> bool {
|
||||
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(
|
||||
cx: *mut JSContext,
|
||||
obj: RawHandleObject,
|
||||
_same_process_scope_required: *mut bool,
|
||||
_closure: *mut raw::c_void,
|
||||
) -> bool {
|
||||
if let Ok(_port) = root_from_object::<MessagePort>(*obj, cx) {
|
||||
|
@ -224,7 +227,21 @@ unsafe extern "C" fn can_transfer_callback(
|
|||
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 {
|
||||
read: Some(read_callback),
|
||||
|
@ -234,6 +251,7 @@ static STRUCTURED_CLONE_CALLBACKS: JSStructuredCloneCallbacks = JSStructuredClon
|
|||
writeTransfer: Some(write_transfer_callback),
|
||||
freeTransfer: Some(free_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.
|
||||
|
@ -286,15 +304,15 @@ pub fn write(
|
|||
);
|
||||
let scdata = &mut ((*scbuf).data_);
|
||||
let policy = CloneDataPolicy {
|
||||
// TODO: SAB?
|
||||
sharedArrayBuffer_: false,
|
||||
allowIntraClusterClonableSharedObjects_: false,
|
||||
allowSharedMemoryObjects_: false,
|
||||
};
|
||||
let result = JS_WriteStructuredClone(
|
||||
*cx,
|
||||
message,
|
||||
scdata,
|
||||
StructuredCloneScope::DifferentProcess,
|
||||
policy,
|
||||
&policy,
|
||||
&STRUCTURED_CLONE_CALLBACKS,
|
||||
sc_holder_ptr as *mut raw::c_void,
|
||||
val.handle(),
|
||||
|
@ -361,8 +379,9 @@ pub fn read(
|
|||
JS_STRUCTURED_CLONE_VERSION,
|
||||
StructuredCloneScope::DifferentProcess,
|
||||
rval,
|
||||
CloneDataPolicy {
|
||||
sharedArrayBuffer_: false,
|
||||
&CloneDataPolicy {
|
||||
allowIntraClusterClonableSharedObjects_: false,
|
||||
allowSharedMemoryObjects_: false,
|
||||
},
|
||||
&STRUCTURED_CLONE_CALLBACKS,
|
||||
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::windowproxy;
|
||||
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::{GetCrossCompartmentWrapper, JS_GetReservedSlot, WrapperNew};
|
||||
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::MutableHandleIdVector as RawMutableHandleIdVector;
|
||||
use js::jsapi::MutableHandleObject as RawMutableHandleObject;
|
||||
use js::jsapi::{AtomToLinearString, GetLinearStringCharAt, GetLinearStringLength};
|
||||
use js::jsapi::{CallArgs, DOMCallbacks, GetNonCCWObjectGlobal};
|
||||
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::{JS_EnumerateStandardClasses, JS_GetLatin1StringCharsAndLength};
|
||||
use js::jsapi::{JS_IsExceptionPending, JS_IsGlobalObject};
|
||||
use js::jsapi::{
|
||||
JS_ResolveStandardClass, JS_StringHasLatin1Chars, ObjectOpResult, StringIsArrayIndex1,
|
||||
StringIsArrayIndex2,
|
||||
JS_DeprecatedStringHasLatin1Chars, JS_ResolveStandardClass, ObjectOpResult, StringIsArrayIndex,
|
||||
};
|
||||
use js::jsapi::{JS_EnumerateStandardClasses, JS_GetLatin1StringCharsAndLength};
|
||||
use js::jsval::{JSVal, UndefinedValue};
|
||||
use js::rust::wrappers::JS_DeletePropertyById;
|
||||
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
|
||||
/// `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();
|
||||
if RUST_JSID_IS_INT(raw_id) {
|
||||
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;
|
||||
}
|
||||
|
||||
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 {
|
||||
return None;
|
||||
}
|
||||
|
@ -225,7 +246,7 @@ pub unsafe fn get_array_index_from_id(cx: *mut JSContext, id: HandleId) -> Optio
|
|||
Some(i)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
/// 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);
|
||||
if !JS_StringHasLatin1Chars(string) {
|
||||
if !JS_DeprecatedStringHasLatin1Chars(string) {
|
||||
*rval = false;
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -66,6 +66,7 @@ use std::io::{Read, Seek, Write};
|
|||
use std::mem::replace;
|
||||
use std::path::PathBuf;
|
||||
use std::process::Command;
|
||||
use std::ptr;
|
||||
use std::rc::Rc;
|
||||
use std::sync::{Arc, Mutex};
|
||||
use style::str::{StaticStringVec, HTML_SPACE_CHARACTERS};
|
||||
|
@ -445,6 +446,7 @@ impl FetchResponseListener for ClassicContext {
|
|||
fetch_options: self.fetch_options.clone(),
|
||||
});
|
||||
|
||||
let mut token = ptr::null_mut();
|
||||
unsafe {
|
||||
assert!(CompileOffThread1(
|
||||
*cx,
|
||||
|
@ -452,6 +454,7 @@ impl FetchResponseListener for ClassicContext {
|
|||
&mut transform_str_to_source_text(&context.script_text) as *mut _,
|
||||
Some(off_thread_compilation_callback),
|
||||
Box::into_raw(context) as *mut c_void,
|
||||
&mut token,
|
||||
));
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -36,7 +36,7 @@ use js::jsapi::JSAutoRealm;
|
|||
use js::jsapi::JSObject;
|
||||
use js::jsapi::JS_ClearPendingException;
|
||||
use js::jsapi::JS_IsExceptionPending;
|
||||
use js::jsapi::JS_NewArrayObject;
|
||||
use js::jsapi::NewArrayObject;
|
||||
use js::jsval::JSVal;
|
||||
use js::jsval::ObjectValue;
|
||||
use js::jsval::UndefinedValue;
|
||||
|
@ -333,7 +333,7 @@ impl PaintWorkletGlobalScope {
|
|||
.collect();
|
||||
let arguments_value_array =
|
||||
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 = [
|
||||
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::Int64 | Type::Float64 => 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::BigUint64 |
|
||||
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
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#![feature(assoc_char_funcs)]
|
||||
#![feature(const_fn)]
|
||||
#![feature(core_intrinsics)]
|
||||
#![feature(drain_filter)]
|
||||
|
|
|
@ -45,17 +45,17 @@ use js::jsapi::Handle as RawHandle;
|
|||
use js::jsapi::HandleObject;
|
||||
use js::jsapi::HandleValue as RawHandleValue;
|
||||
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::{GetRequestedModules, SetModuleMetadataHook};
|
||||
use js::jsapi::{Heap, JSContext, JS_ClearPendingException, SetModulePrivate};
|
||||
use js::jsapi::{JSAutoRealm, JSObject, JSString};
|
||||
use js::jsapi::{JS_DefineProperty4, JS_IsExceptionPending, JS_NewStringCopyN, JSPROP_ENUMERATE};
|
||||
use js::jsapi::{ModuleEvaluate, ModuleInstantiate};
|
||||
use js::jsapi::{SetModuleDynamicImportHook, SetScriptPrivateReferenceHooks};
|
||||
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::{JS_GetArrayLength, JS_GetElement};
|
||||
use js::rust::transform_str_to_source_text;
|
||||
use js::rust::wrappers::JS_SetPendingException;
|
||||
use js::rust::CompileOptionsWrapper;
|
||||
|
@ -425,7 +425,7 @@ impl ModuleTree {
|
|||
unsafe { CompileOptionsWrapper::new(*global.get_cx(), url.as_str(), 1) };
|
||||
|
||||
unsafe {
|
||||
rooted!(in(*global.get_cx()) let mut module_script = CompileModuleDontInflate(
|
||||
rooted!(in(*global.get_cx()) let mut module_script = CompileModule1(
|
||||
*global.get_cx(),
|
||||
compile_options.ptr,
|
||||
&mut transform_str_to_source_text(&module_script_text),
|
||||
|
@ -558,7 +558,7 @@ impl ModuleTree {
|
|||
|
||||
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 =
|
||||
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.
|
||||
match (network_error, existing_rethrow_error, execution_err) {
|
||||
let status = match (network_error, existing_rethrow_error, execution_err) {
|
||||
(Some(_), _, _) => unsafe {
|
||||
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 {
|
||||
JS_SetPendingException(*cx, execution_err.handle(), ExceptionStackBehavior::Capture)
|
||||
JS_SetPendingException(
|
||||
*cx,
|
||||
execution_err.handle(),
|
||||
ExceptionStackBehavior::Capture,
|
||||
);
|
||||
DynamicImportStatus::Failed
|
||||
},
|
||||
(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
|
||||
(None, None, None) => {},
|
||||
}
|
||||
(None, None, None) => DynamicImportStatus::Ok,
|
||||
};
|
||||
|
||||
debug!("Finishing dynamic import for {:?}", module_identity);
|
||||
|
||||
unsafe {
|
||||
FinishDynamicModuleImport(
|
||||
*cx,
|
||||
status,
|
||||
module.referencing_private.handle(),
|
||||
module.specifier.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::{BuildIdCharVector, DisableIncrementalGC, GCDescription, GCProgress};
|
||||
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::{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::{
|
||||
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::jsval::UndefinedValue;
|
||||
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 {
|
||||
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);
|
||||
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
|
||||
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_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.throw_on_asmjs_validation_failure (needs new Spidermonkey)
|
||||
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.throw_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
|
||||
JS_SetGCParameter(
|
||||
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) {
|
||||
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) {
|
||||
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) {
|
||||
JS_SetGCParameter(
|
||||
cx,
|
||||
JSGCParamKey::JSGC_HIGH_FREQUENCY_HEAP_GROWTH_MIN,
|
||||
JSGCParamKey::JSGC_HIGH_FREQUENCY_LARGE_HEAP_GROWTH,
|
||||
val as u32,
|
||||
);
|
||||
}
|
||||
if let Some(val) = in_range(pref!(js.mem.gc.high_frequency_heap_growth_max), 0, 10_000) {
|
||||
JS_SetGCParameter(
|
||||
cx,
|
||||
JSGCParamKey::JSGC_HIGH_FREQUENCY_HEAP_GROWTH_MAX,
|
||||
JSGCParamKey::JSGC_HIGH_FREQUENCY_SMALL_HEAP_GROWTH,
|
||||
val as u32,
|
||||
);
|
||||
}
|
||||
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) {
|
||||
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);
|
||||
}
|
||||
if let Some(val) = in_range(
|
||||
pref!(js.mem.gc.allocation_threshold_avoid_interrupt_factor),
|
||||
0,
|
||||
10_000,
|
||||
) {
|
||||
JS_SetGCParameter(cx, JSGCParamKey::JSGC_AVOID_INTERRUPT_FACTOR, val as u32);
|
||||
}
|
||||
}*/
|
||||
/*
|
||||
// JSGC_SMALL_HEAP_INCREMENTAL_LIMIT
|
||||
pref("javascript.options.mem.gc_small_heap_incremental_limit", 140);
|
||||
|
||||
// JSGC_LARGE_HEAP_INCREMENTAL_LIMIT
|
||||
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) {
|
||||
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(
|
||||
_cx: *mut RawJSContext,
|
||||
status: JSGCStatus,
|
||||
_reason: GCReason,
|
||||
_data: *mut os::raw::c_void,
|
||||
) {
|
||||
match status {
|
||||
|
|
|
@ -40,11 +40,11 @@ fn error(message: &str) {
|
|||
}
|
||||
|
||||
fn find_python() -> String {
|
||||
env::var("PYTHON2").ok().unwrap_or_else(|| {
|
||||
env::var("PYTHON3").ok().unwrap_or_else(|| {
|
||||
let candidates = if cfg!(windows) {
|
||||
["python2.7.exe", "python27.exe", "python.exe"]
|
||||
["python3.8.exe", "python38.exe", "python.exe"]
|
||||
} else {
|
||||
["python2.7", "python2", "python"]
|
||||
["python3.8", "python3", "python"]
|
||||
};
|
||||
for &name in &candidates {
|
||||
if Command::new(name)
|
||||
|
@ -57,7 +57,7 @@ fn find_python() -> String {
|
|||
}
|
||||
}
|
||||
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(", ")
|
||||
)
|
||||
})
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python
|
||||
#!/usr/bin/env python3
|
||||
|
||||
# Copyright 2018 The Servo Project Developers. See the COPYRIGHT
|
||||
# file at the top-level directory of this distribution.
|
||||
|
|
|
@ -132,6 +132,8 @@ windows_build_env = {
|
|||
"PYTHON3": "%HOMEDRIVE%%HOMEPATH%\\python3\\python.exe",
|
||||
"LINKER": "lld-link.exe",
|
||||
"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_repo_bundle()
|
||||
.with_script("""
|
||||
./mach test-tidy --no-progress --all
|
||||
./mach test-tidy --no-progress --self-test
|
||||
./mach bootstrap-gstreamer
|
||||
./mach build --dev
|
||||
./mach test-unit
|
||||
python3 ./mach test-tidy --no-progress --all
|
||||
python3 ./mach test-tidy --no-progress --self-test
|
||||
python3 ./mach bootstrap-gstreamer
|
||||
python3 ./mach build --dev
|
||||
python3 ./mach test-unit
|
||||
|
||||
./etc/ci/lockfile_changed.sh
|
||||
./etc/memory_reports_over_time.py --test
|
||||
|
@ -175,8 +177,7 @@ def linux_tidy_unit():
|
|||
.with_treeherder("Linux x64", "Tidy+Unit")
|
||||
.with_max_run_time_minutes(75)
|
||||
.with_script("""
|
||||
./mach test-tidy --no-progress --all
|
||||
python3 ./mach test-tidy --no-progress --all --no-wpt
|
||||
python3 ./mach test-tidy --no-progress --all
|
||||
python3 ./mach build --dev
|
||||
python3 ./mach test-unit
|
||||
python3 ./mach package --dev
|
||||
|
@ -201,7 +202,7 @@ def linux_docs_check():
|
|||
linux_build_task("Docs + check")
|
||||
.with_treeherder("Linux x64", "Doc+Check")
|
||||
.with_script("""
|
||||
RUSTDOCFLAGS="--disable-minification" ./mach doc
|
||||
RUSTDOCFLAGS="--disable-minification" python3 ./mach doc
|
||||
(
|
||||
cd target/doc
|
||||
git init
|
||||
|
@ -219,7 +220,7 @@ def linux_docs_check():
|
|||
# The reverse order would not increase the total amount of work to do,
|
||||
# but would reduce the amount of parallelism available.
|
||||
"""
|
||||
./mach check
|
||||
python3 ./mach check
|
||||
""")
|
||||
.with_artifacts("/repo/target/doc/docs.bundle")
|
||||
.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)
|
||||
""")
|
||||
.with_script("""
|
||||
python -c "$PY"
|
||||
python3 -c "$PY"
|
||||
git init --bare
|
||||
git config credential.helper store
|
||||
git fetch --quiet docs.bundle
|
||||
|
@ -274,9 +275,9 @@ def macos_unit():
|
|||
macos_build_task("Dev build + unit tests")
|
||||
.with_treeherder("macOS x64", "Unit")
|
||||
.with_script("""
|
||||
./mach build --dev --verbose
|
||||
./mach test-unit
|
||||
./mach package --dev
|
||||
python3 ./mach build --dev --verbose
|
||||
python3 ./mach test-unit
|
||||
python3 ./mach package --dev
|
||||
./etc/ci/macos_package_smoketest.sh target/debug/servo-tech-demo.dmg
|
||||
./etc/ci/lockfile_changed.sh
|
||||
""")
|
||||
|
@ -296,8 +297,8 @@ def with_rust_nightly():
|
|||
.with_treeherder("Linux x64", "RustNightly")
|
||||
.with_script("""
|
||||
echo "nightly" > rust-toolchain
|
||||
./mach build --dev
|
||||
./mach test-unit
|
||||
python3 ./mach build --dev
|
||||
python3 ./mach test-unit
|
||||
""")
|
||||
.create()
|
||||
)
|
||||
|
@ -354,10 +355,10 @@ def uwp_nightly(rdp=False):
|
|||
"secrets:get:project/servo/windows-codesign-cert/latest",
|
||||
)
|
||||
.with_script(
|
||||
"python mach build --release --target=x86_64-uwp-windows-msvc",
|
||||
"python mach build --release --target=aarch64-uwp-windows-msvc",
|
||||
"python mach package --release --target=x86_64-uwp-windows-msvc --uwp=x64 --uwp=arm64",
|
||||
"python mach upload-nightly uwp --secret-from-taskcluster",
|
||||
"python3 mach build --release --target=x86_64-uwp-windows-msvc",
|
||||
"python3 mach build --release --target=aarch64-uwp-windows-msvc",
|
||||
"python3 mach package --release --target=x86_64-uwp-windows-msvc --uwp=x64 --uwp=arm64",
|
||||
"python3 mach upload-nightly uwp --secret-from-taskcluster",
|
||||
)
|
||||
.with_artifacts(appx_artifact)
|
||||
.with_max_run_time_minutes(3 * 60)
|
||||
|
@ -377,6 +378,9 @@ def windows_unit(cached=True, rdp=False):
|
|||
"python mach build --dev",
|
||||
|
||||
"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 build --dev --libsimpleservo",
|
||||
|
@ -418,9 +422,9 @@ def linux_nightly():
|
|||
.with_scopes("secrets:get:project/servo/s3-upload-credentials")
|
||||
# Not reusing the build made for WPT because it has debug assertions
|
||||
.with_script(
|
||||
"./mach build --release",
|
||||
"./mach package --release",
|
||||
"./mach upload-nightly linux --secret-from-taskcluster",
|
||||
"python3 ./mach build --release",
|
||||
"python3 ./mach package --release",
|
||||
"python3 ./mach upload-nightly linux --secret-from-taskcluster",
|
||||
)
|
||||
.with_artifacts("/repo/target/release/servo-tech-demo.tar.gz")
|
||||
.find_or_create("build.linux_x64_nightly" + CONFIG.tree_hash())
|
||||
|
@ -432,8 +436,8 @@ def linux_release():
|
|||
linux_build_task("Release build")
|
||||
.with_treeherder("Linux x64", "Release")
|
||||
.with_script(
|
||||
"./mach build --release",
|
||||
"./mach package --release",
|
||||
"python3 ./mach build --release",
|
||||
"python3 ./mach package --release",
|
||||
)
|
||||
.find_or_create("build.linux_x64_release" + CONFIG.tree_hash())
|
||||
)
|
||||
|
@ -449,10 +453,10 @@ def macos_nightly():
|
|||
"secrets:get:project/servo/github-homebrew-token",
|
||||
)
|
||||
.with_script(
|
||||
"./mach build --release",
|
||||
"./mach package --release",
|
||||
"python3 ./mach build --release",
|
||||
"python3 ./mach package --release",
|
||||
"./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")
|
||||
.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_priority(priority)
|
||||
.with_script("\n".join([
|
||||
"./mach build --release --verbose --with-debug-assertions",
|
||||
"python3 ./mach build --release --verbose --with-debug-assertions",
|
||||
"./etc/ci/lockfile_changed.sh",
|
||||
"tar -czf target.tar.gz" +
|
||||
" 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")
|
||||
.with_treeherder("Linux x64", treeherder_prefix + "Release+A")
|
||||
.with_script("""
|
||||
time ./mach rustc -V
|
||||
time ./mach fetch
|
||||
./mach build --release --with-debug-assertions %s -p servo
|
||||
time python3 ./mach rustc -V
|
||||
time python3 ./mach fetch
|
||||
python3 ./mach build --release --with-debug-assertions %s -p servo
|
||||
./etc/ci/lockfile_changed.sh
|
||||
tar -czf /target.tar.gz \
|
||||
target/release/servo \
|
||||
|
@ -537,7 +541,7 @@ def macos_wpt():
|
|||
priority = "high" if CONFIG.git_ref == "refs/heads/auto" else None
|
||||
build_task = macos_release_build_with_debug_assertions(priority=priority)
|
||||
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")
|
||||
return with_homebrew(task, ["etc/taskcluster/macos/Brewfile"])
|
||||
wpt_chunks(
|
||||
|
@ -619,11 +623,11 @@ def wpt_chunks(platform, make_chunk_task, build_task, total_chunks, processes,
|
|||
if this_chunk == 0:
|
||||
if run_webgpu:
|
||||
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 \
|
||||
--log-errorsummary webgpu-errorsummary.log \
|
||||
| cat
|
||||
./mach filter-intermittents \
|
||||
python3 ./mach filter-intermittents \
|
||||
webgpu-errorsummary.log \
|
||||
--log-intermittents webgpu-intermittents.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 = ""
|
||||
|
||||
task.with_script("""
|
||||
time python ./mach test-wpt --release --binary-arg=--multiprocess \
|
||||
time python3 ./mach test-wpt --release --binary-arg=--multiprocess \
|
||||
--processes $PROCESSES \
|
||||
--log-raw test-wpt-mp.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 \
|
||||
url \
|
||||
| cat
|
||||
./mach filter-intermittents \
|
||||
python3 ./mach filter-intermittents \
|
||||
wpt-py3-errorsummary.log \
|
||||
--log-intermittents wpt-py3-intermittents.log \
|
||||
--log-filteredsummary filtered-py3-errorsummary.log \
|
||||
--tracker-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/css/per_glyph_font_fallback_a.html \
|
||||
tests/wpt/mozilla/tests/css/img_simple.html \
|
||||
tests/wpt/mozilla/tests/mozilla/secure.https.html \
|
||||
| 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 \
|
||||
--log-errorsummary bluetooth-errorsummary.log \
|
||||
bluetooth \
|
||||
| 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 \
|
||||
--log-servojson wdspec-jsonsummary.log \
|
||||
--always-succeed \
|
||||
webdriver \
|
||||
| cat
|
||||
./mach filter-intermittents \
|
||||
python3 ./mach filter-intermittents \
|
||||
wdspec-jsonsummary.log \
|
||||
--log-intermittents intermittents.log \
|
||||
--log-filteredsummary filtered-wdspec-errorsummary.log \
|
||||
|
@ -680,7 +684,7 @@ def wpt_chunks(platform, make_chunk_task, build_task, total_chunks, processes,
|
|||
)
|
||||
else:
|
||||
task.with_script("""
|
||||
./mach test-wpt \
|
||||
python3 ./mach test-wpt \
|
||||
--release \
|
||||
$WPT_ARGS \
|
||||
--processes $PROCESSES \
|
||||
|
@ -690,7 +694,7 @@ def wpt_chunks(platform, make_chunk_task, build_task, total_chunks, processes,
|
|||
--log-servojson wpt-jsonsummary.log \
|
||||
--always-succeed \
|
||||
| cat
|
||||
./mach filter-intermittents \
|
||||
python3 ./mach filter-intermittents \
|
||||
wpt-jsonsummary.log \
|
||||
--log-intermittents intermittents.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_env(**build_env, **unix_build_env, **linux_build_env)
|
||||
.with_repo_bundle()
|
||||
.with_script("./mach bootstrap-gstreamer")
|
||||
.with_script("python3 ./mach bootstrap-gstreamer")
|
||||
)
|
||||
return task
|
||||
|
||||
|
@ -797,12 +801,7 @@ def windows_build_task(name, package=True, arch="x86_64", rdp=False):
|
|||
**windows_build_env["all"]
|
||||
)
|
||||
.with_repo_bundle(sparse_checkout=windows_sparse_checkout)
|
||||
.with_python2()
|
||||
.with_directory_mount(
|
||||
"https://www.python.org/ftp/python/3.7.3/python-3.7.3-embed-amd64.zip",
|
||||
sha256="6de14c9223226cf0cd8c965ecb08c51d62c770171a256991b4fddc25188cfa8e",
|
||||
path="python3",
|
||||
)
|
||||
.with_python3()
|
||||
.with_rustup()
|
||||
)
|
||||
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_env(**build_env, **unix_build_env, **macos_build_env)
|
||||
.with_repo_bundle(alternate_object_dir="/var/cache/servo.git/objects")
|
||||
.with_python2()
|
||||
.with_python3()
|
||||
.with_rustup()
|
||||
.with_index_and_artifacts_expire_in(build_artifacts_expire_in)
|
||||
# Debugging for surprising generic-worker behaviour
|
||||
|
|
|
@ -474,9 +474,13 @@ class WindowsGenericWorkerTask(GenericWorkerTask):
|
|||
if self.rdp_info_artifact_name:
|
||||
rdp_scope = "generic-worker:allow-rdp:%s/%s" % (self.provisioner_id, self.worker_type)
|
||||
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(
|
||||
super().build_worker_payload(),
|
||||
rdpInfo=self.rdp_info_artifact_name,
|
||||
osGroups=["Administrators"]
|
||||
)
|
||||
|
||||
def with_rdp_info(self, *, artifact_name):
|
||||
|
@ -619,26 +623,23 @@ class WindowsGenericWorkerTask(GenericWorkerTask):
|
|||
.with_dependencies(repack_task) \
|
||||
.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
|
||||
from python.org.
|
||||
You may need to remove `python37._pth` from the ZIP in order to work around
|
||||
<https://bugs.python.org/issue34841>.
|
||||
"""
|
||||
return self \
|
||||
.with_repacked_msi(
|
||||
"https://www.python.org/ftp/python/2.7.15/python-2.7.15.amd64.msi",
|
||||
sha256="5e85f3c4c209de98480acbf2ba2e71a907fd5567a838ad4b6748c76deb286ad7",
|
||||
path="python2"
|
||||
) \
|
||||
.with_early_script("""
|
||||
python -m ensurepip
|
||||
pip install virtualenv==16.0.0
|
||||
""") \
|
||||
.with_path_from_homedir("python2", "python2\\Scripts")
|
||||
return (
|
||||
self
|
||||
.with_curl_script(
|
||||
"https://www.python.org/ftp/python/3.7.3/python-3.7.3-amd64.exe",
|
||||
"do-the-python.exe"
|
||||
)
|
||||
.with_script("do-the-python.exe /quiet TargetDir=%HOMEDRIVE%%HOMEPATH%\\python3")
|
||||
.with_path_from_homedir("python3", "python3\\Scripts")
|
||||
.with_script("pip install virtualenv==20.2.1")
|
||||
)
|
||||
|
||||
|
||||
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):
|
||||
return self.with_early_script("""
|
||||
python3 -m ensurepip --user
|
||||
|
|
|
@ -17,11 +17,6 @@ RUN \
|
|||
git \
|
||||
ca-certificates \
|
||||
#
|
||||
# Running mach with Python 2
|
||||
python2 \
|
||||
python2-dev \
|
||||
python-is-python2 \
|
||||
#
|
||||
# Running mach with Python 3
|
||||
python3 \
|
||||
python3-pip \
|
||||
|
@ -35,12 +30,4 @@ RUN \
|
|||
curl \
|
||||
# Setting the default locale
|
||||
locales \
|
||||
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
|
||||
locales-all
|
||||
|
|
6
mach
6
mach
|
@ -6,7 +6,7 @@
|
|||
# The beginning of this script is both valid shell and valid python,
|
||||
# such that the script starts with the shell and is reexecuted with
|
||||
# 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
|
||||
|
@ -18,8 +18,8 @@ import sys
|
|||
# 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
|
||||
# python 3.
|
||||
if sys.version_info >= (3, 0) and sys.version_info < (3, 5):
|
||||
print("mach does not support python 3 (< 3.5), please install python 2 or python 3 (>= 3.5)")
|
||||
if sys.version_info < (3, 5):
|
||||
print("mach does not support python 3 (< 3.5), please install python 3 (>= 3.5)")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
|
|
|
@ -5,9 +5,9 @@ blessings == 1.6
|
|||
distro == 1.4
|
||||
mach == 1.0.0
|
||||
mozdebug == 0.2
|
||||
mozinfo == 1.1.0
|
||||
mozlog == 5.0
|
||||
setuptools == 39.0
|
||||
mozinfo == 1.2.1
|
||||
mozlog == 7.1.0
|
||||
setuptools == 50.3.2
|
||||
toml == 0.9.2
|
||||
|
||||
# For Python linting
|
||||
|
@ -30,6 +30,6 @@ boto3 == 1.4.4
|
|||
certifi
|
||||
|
||||
# For Python3 compatibility
|
||||
six == 1.12
|
||||
six == 1.15
|
||||
|
||||
-e python/tidy
|
||||
|
|
|
@ -749,7 +749,7 @@ install them, let us know by filing a bug!")
|
|||
# Shorten hash
|
||||
# NOTE: Partially verifies the hash, but it will still pass if it's, e.g., a tree
|
||||
git_sha = subprocess.check_output([
|
||||
'git', 'rev-parse', '--short', git_sha
|
||||
'git', 'rev-parse', '--short', git_sha.decode('ascii')
|
||||
])
|
||||
else:
|
||||
# This is a regular commit
|
||||
|
@ -999,7 +999,7 @@ install them, let us know by filing a bug!")
|
|||
toolchain = self.rust_toolchain()
|
||||
|
||||
status = subprocess.call(
|
||||
["rustup", "run", toolchain.encode("utf-8"), "rustc", "--version"],
|
||||
["rustup", "run", toolchain, "rustc", "--version"],
|
||||
stdout=open(os.devnull, "wb"),
|
||||
stderr=subprocess.STDOUT,
|
||||
)
|
||||
|
|
|
@ -775,7 +775,11 @@ def setup_uwp_signing(ms_app_store, publisher):
|
|||
|
||||
def run_powershell_cmd(cmd):
|
||||
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:
|
||||
print("ERROR: PowerShell command failed: ", cmd)
|
||||
exit(1)
|
||||
|
@ -841,6 +845,7 @@ def build_uwp(platforms, dev, msbuild_dir, ms_app_store):
|
|||
.replace("%%PACKAGE_PLATFORMS%%", '|'.join(platforms))
|
||||
.replace("%%CONFIGURATION%%", Configuration)
|
||||
.replace("%%SOLUTION%%", path.join(os.getcwd(), 'support', 'hololens', 'ServoApp.sln'))
|
||||
.encode('utf-8')
|
||||
)
|
||||
build_file.close()
|
||||
# Generate an appxbundle.
|
||||
|
|
|
@ -243,7 +243,8 @@ class PostBuildCommands(CommandBase):
|
|||
media_stack=None, **kwargs):
|
||||
self.ensure_bootstrapped(rustup_components=["rust-docs"])
|
||||
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"
|
||||
toolchain_path = path.dirname(path.dirname(rustc_path))
|
||||
rust_docs = path.join(toolchain_path, "share", "doc", "rust", "html")
|
||||
|
|
|
@ -585,7 +585,10 @@ class MachCommands(CommandBase):
|
|||
|
||||
def format(outputs, description, file=sys.stdout):
|
||||
formatted = "%s %s:\n%s" % (len(outputs), description, "\n".join(outputs))
|
||||
file.write(formatted.encode("utf-8"))
|
||||
if file == sys.stdout:
|
||||
file.write(formatted)
|
||||
else:
|
||||
file.write(formatted.encode("utf-8"))
|
||||
|
||||
if log_intermittents:
|
||||
with open(log_intermittents, "wb") as file:
|
||||
|
|
|
@ -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]
|
||||
[Object.prototype.toString applied after modifying @@toStringTag]
|
||||
expected: FAIL
|
||||
|
||||
[Object.prototype.toString applied after deleting @@toStringTag]
|
||||
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]
|
||||
expected: FAIL
|
||||
|
||||
[[data-expected-height\] 3]
|
||||
[[data-expected-height\] 1]
|
||||
expected: FAIL
|
||||
|
||||
[[data-expected-height\] 4]
|
||||
[[data-expected-height\] 2]
|
||||
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]
|
||||
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]
|
||||
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
|
||||
|
||||
[response-error-from-stream.any.html]
|
||||
expected: ERROR
|
||||
|
||||
[response-error-from-stream.any.sharedworker.html]
|
||||
expected: ERROR
|
||||
|
|
|
@ -1,86 +1,43 @@
|
|||
[parent-no-child-bad-subdomain.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
["true": originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[""?1"": message event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
["(?1)": originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
["1": frame insertion]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
["?2": message event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
["?0": originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
[""?1"": setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
["true": message event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
["": originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
["true": setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[""?1"": originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
["": message event must occur]
|
||||
expected: NOTRUN
|
||||
|
||||
["": frame insertion]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
["?2": originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
["?2": setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
|
||||
["(?1)": frame insertion]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
["1": message event must occur]
|
||||
expected: NOTRUN
|
||||
|
||||
["?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
|
||||
expected: FAIL
|
||||
|
||||
["(?1)": message event must occur]
|
||||
expected: NOTRUN
|
||||
|
||||
["true": frame insertion]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
["1": originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
[""?1"": frame insertion]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
["?0": message event must occur]
|
||||
expected: NOTRUN
|
||||
|
||||
["?2": frame insertion]
|
||||
expected: NOTRUN
|
||||
|
||||
["(?1)": setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
[parent-no-child-yes-port.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,10 @@
|
|||
[parent-no-child-yes-same.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[message event must occur]
|
||||
expected: NOTRUN
|
||||
|
||||
[setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
[parent-no-child-yes-subdomain-with-redirect.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
[parent-no-child-yes-subdomain.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
[parent-no-child-yeswithparams-subdomain.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
[parent-yes-child-no-port.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,10 @@
|
|||
[parent-yes-child-no-same.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[message event must occur]
|
||||
expected: NOTRUN
|
||||
|
||||
[setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
[parent-yes-child-no-subdomain.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
[parent-yes-child-yes-port.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,10 @@
|
|||
[parent-yes-child-yes-same.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[message event must occur]
|
||||
expected: NOTRUN
|
||||
|
||||
[setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
[parent-yes-child-yes-subdomain.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -6,26 +6,20 @@
|
|||
[parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
[Parent to child2: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
|
||||
[Parent to child2: message event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child1: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
[child1 to child2: message event must occur]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
[child2: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
[Parent to child1: message event must occur]
|
||||
expected: NOTRUN
|
||||
|
||||
[Parent to child1: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child1 to child2: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[child1 to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
[parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
@ -12,11 +12,8 @@
|
|||
[child2 to child1: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
|
||||
[Parent to child1: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
|
||||
[Parent to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child1: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
@ -25,10 +22,10 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[Parent to child1: message event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Parent to child2: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child2 to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[child1 to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
[parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
@ -12,11 +12,8 @@
|
|||
[child2 to child1: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
|
||||
[Parent to child1: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
|
||||
[Parent to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child1: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
@ -25,10 +22,10 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[Parent to child1: message event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Parent to child2: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child2 to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -4,19 +4,16 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[child1 to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
[parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
[Parent to child2: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
|
||||
[Parent to child2: message event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[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]
|
||||
expected: NOTRUN
|
||||
|
@ -25,7 +22,7 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[Parent to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child2 to child1: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[parent-no-child1-yes-subdomain-child2-no-subdomain.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[Parent to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child1: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
|
@ -13,19 +13,19 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[Parent to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child1 to child2: message event must occur]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
[child2 to child1: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
|
||||
[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]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child2: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
[parent-yes-child1-no-subdomain-child2-no-subdomain.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[Parent to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child2 to child1: message event must occur]
|
||||
expected: NOTRUN
|
||||
|
||||
[Parent to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
|
@ -16,7 +16,7 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[child1 to child2: message event must occur]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
[child2 to child1: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
|
@ -25,10 +25,10 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[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]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child1 to child2: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
[parent-yes-child1-no-subdomain-child2-no-subdomain2.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[Parent to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child2 to child1: message event must occur]
|
||||
expected: NOTRUN
|
||||
|
||||
[Parent to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
|
@ -16,7 +16,7 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[child1 to child2: message event must occur]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
[child2 to child1: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
|
@ -25,10 +25,10 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[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]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child1 to child2: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
[parent-yes-child1-no-subdomain-child2-yes-subdomain.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[Parent to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child2 to child1: message event must occur]
|
||||
expected: NOTRUN
|
||||
|
||||
[Parent to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
|
@ -16,7 +16,7 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[child1 to child2: message event must occur]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
[child2 to child1: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
|
@ -25,10 +25,10 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[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]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child1 to child2: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -4,13 +4,13 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[child1 to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
[child2 to child1: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
|
||||
[Parent to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
|
@ -22,13 +22,13 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[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]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Parent to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child2 to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -4,13 +4,13 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[child1 to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
[child2 to child1: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
|
||||
[Parent to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
|
@ -22,13 +22,13 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[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]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Parent to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child2 to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -4,13 +4,13 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[child1 to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
[child2 to child1: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
|
||||
[Parent to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
|
@ -22,13 +22,13 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[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]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Parent to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child2 to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[parent-yes-child1-yes-subdomain-child2-no-subdomain.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[Parent to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child1: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
|
@ -10,22 +10,22 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[Parent to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
|
||||
[child1 to child2: message event must occur]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
[child2 to child1: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
|
||||
[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]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child2: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[parent-yes-child1-yes-subdomain-child2-yes-subdomain.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[Parent to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child1: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
|
@ -10,22 +10,22 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[Parent to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
|
||||
[child1 to child2: message event must occur]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
[child2 to child1: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
|
||||
[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]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child2: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -7,13 +7,13 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[child1 to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
[child2 to child1: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
|
||||
[Parent to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
|
@ -22,13 +22,13 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[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]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Parent to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child2 to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -7,13 +7,13 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[child1 to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
[child2 to child1: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
|
||||
[Parent to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
|
@ -22,13 +22,13 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[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]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Parent to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child2 to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
[about-blank.https.sub.html]
|
||||
expected: TIMEOUT
|
||||
[about:blank to child2: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
|
||||
[parent to about:blank: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
[parent to about:blank: message event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[about:blank to child2: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
[cross-origin-isolated.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[self: originAgentCluster must equal true]
|
||||
expected: FAIL
|
||||
|
||||
[child: originAgentCluster must equal true]
|
||||
expected: TIMEOUT
|
||||
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[sandboxed-iframe-no.https.html]
|
||||
expected: TIMEOUT
|
||||
[originAgentCluster must equal true]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[sandboxed-iframe-yes.https.html]
|
||||
expected: TIMEOUT
|
||||
[originAgentCluster must equal true]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[sandboxed-same-origin-iframe-no.https.html]
|
||||
expected: TIMEOUT
|
||||
[originAgentCluster must equal false]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[sandboxed-same-origin-iframe-yes.https.html]
|
||||
expected: TIMEOUT
|
||||
[originAgentCluster must equal true]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
[going-back.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[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]
|
||||
expected: NOTRUN
|
||||
|
||||
[Before navigation: parent to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[After back: parent to child1: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
|
@ -15,11 +15,8 @@
|
|||
[child2 to child1: message event must occur]
|
||||
expected: NOTRUN
|
||||
|
||||
[Inserting a second iframe]
|
||||
expected: NOTRUN
|
||||
|
||||
[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]
|
||||
expected: NOTRUN
|
||||
|
@ -31,17 +28,14 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[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]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child1 to child2: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
|
||||
[Navigation]
|
||||
expected: NOTRUN
|
||||
|
||||
[After back: parent to child1: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,29 +1,22 @@
|
|||
[parent-no-1-no-same-2-yes-port.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[before parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[before child: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
[Before: parent to child: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[after child: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[After: parent to child: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[after parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
[Navigation]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[After: parent to child: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[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]
|
||||
expected: TIMEOUT
|
||||
[before parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[before child: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
[Before: parent to child: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[after child: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[After: parent to child: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[after parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
[Navigation]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[After: parent to child: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[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]
|
||||
expected: TIMEOUT
|
||||
[before parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[before child: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
[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
|
||||
expected: FAIL
|
||||
|
||||
[After: parent to child: message event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[after parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[after child: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
[Navigation]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[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]
|
||||
expected: TIMEOUT
|
||||
[before parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[before child: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
[Before: parent to child: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[after child: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[After: parent to child: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[after parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
[Navigation]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[After: parent to child: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[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]
|
||||
expected: TIMEOUT
|
||||
[before parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Before: parent to child: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
|
||||
[After: parent to child: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Before: parent to child: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[before child: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[After: parent to child: message event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[after parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
[Navigation]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[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]
|
||||
expected: TIMEOUT
|
||||
[before parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[after parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Before: parent to child: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[after child: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[After: parent to child: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[before child: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Before: parent to child: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
|
||||
[Navigation]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[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]
|
||||
expected: TIMEOUT
|
||||
[after parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
|
||||
[Before: parent to child: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[before parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[before child: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[After: parent to child: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[after child: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
[Navigation]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[After: parent to child: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[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]
|
||||
expected: TIMEOUT
|
||||
[after parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
|
||||
[Before: parent to child: setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[before parent: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[before child: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[After: parent to child: messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[after child: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
|
||||
[Navigation]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[After: parent to child: setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Before: parent to child: message event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,10 @@
|
|||
[insecure-http.sub.html]
|
||||
expected: TIMEOUT
|
||||
[message event must occur]
|
||||
expected: NOTRUN
|
||||
|
||||
[setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[parent: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[child: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
[opener-no-openee-yes-port.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[opener: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[openee: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,10 @@
|
|||
[opener-no-openee-yes-same.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[message event must occur]
|
||||
expected: NOTRUN
|
||||
|
||||
[setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[opener: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[openee: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
[opener-no-openee-yes-subdomain.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[opener: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[openee: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
[opener-yes-openee-no-port.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[openee: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[opener: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,10 @@
|
|||
[opener-yes-openee-no-same.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[message event must occur]
|
||||
expected: NOTRUN
|
||||
|
||||
[setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[opener: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[openee: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
[opener-yes-openee-no-subdomain.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[openee: originAgentCluster must equal false]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[opener: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
[opener-yes-openee-yes-port.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[setting document.domain must not give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[messageerror event must occur]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[openee: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[opener: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,10 @@
|
|||
[opener-yes-openee-yes-same.sub.https.html]
|
||||
expected: TIMEOUT
|
||||
[message event must occur]
|
||||
expected: NOTRUN
|
||||
|
||||
[setting document.domain must give sync access]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[opener: originAgentCluster must equal true]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[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