diff --git a/tools/manifest/item.py b/tools/manifest/item.py index 6601f9c719e040..ee07f0d1d79717 100644 --- a/tools/manifest/item.py +++ b/tools/manifest/item.py @@ -212,7 +212,7 @@ def to_json(self): if self.quic is not None: rv[-1]["quic"] = self.quic if self.script_metadata: - rv[-1]["script_metadata"] = [(k.decode('utf8'), v.decode('utf8')) for (k,v) in self.script_metadata] + rv[-1]["script_metadata"] = [(k, v) for (k,v) in self.script_metadata] return rv diff --git a/tools/manifest/sourcefile.py b/tools/manifest/sourcefile.py index f36ce1ab3304d7..659a1bb1366b8c 100644 --- a/tools/manifest/sourcefile.py +++ b/tools/manifest/sourcefile.py @@ -70,16 +70,16 @@ def read_script_metadata(f, regexp): if not m: break - yield (m.groups()[0], m.groups()[1]) + yield (m.groups()[0].decode("utf8"), m.groups()[1].decode("utf8")) _any_variants = { - b"window": {"suffix": ".any.html"}, - b"serviceworker": {"force_https": True}, - b"sharedworker": {}, - b"dedicatedworker": {"suffix": ".any.worker.html"}, - b"worker": {"longhand": {b"dedicatedworker", b"sharedworker", b"serviceworker"}}, - b"jsshell": {"suffix": ".any.js"}, + "window": {"suffix": ".any.html"}, + "serviceworker": {"force_https": True}, + "sharedworker": {}, + "dedicatedworker": {"suffix": ".any.worker.html"}, + "worker": {"longhand": {"dedicatedworker", "sharedworker", "serviceworker"}}, + "jsshell": {"suffix": ".any.js"}, } # type: Dict[bytes, Dict[str, Any]] @@ -88,7 +88,7 @@ def get_any_variants(item): """ Returns a set of variants (bytestrings) defined by the given keyword. """ - assert isinstance(item, binary_type), item + assert isinstance(item, text_type), item variant = _any_variants.get(item, None) if variant is None: @@ -102,42 +102,46 @@ def get_default_any_variants(): """ Returns a set of variants (bytestrings) that will be used by default. """ - return set({b"window", b"dedicatedworker"}) + return set({"window", "dedicatedworker"}) def parse_variants(value): - # type: (bytes) -> Set[bytes] + # type: (Text) -> Set[Text] """ Returns a set of variants (bytestrings) defined by a comma-separated value. """ - assert isinstance(value, binary_type), value + assert isinstance(value, text_type), value - if value == b"": + if value == "": return get_default_any_variants() globals = set() - for item in value.split(b","): + for item in value.split(","): item = item.strip() globals |= get_any_variants(item) return globals def global_suffixes(value): - # type: (bytes) -> Set[Tuple[bytes, bool]] + # type: (Text) -> Set[Tuple[Text, bool]] """ Yields tuples of the relevant filename suffix (a string) and whether the variant is intended to run in a JS shell, for the variants defined by the given comma-separated value. """ - assert isinstance(value, binary_type), value + try: + assert isinstance(value, text_type), value + except Exception: + import pdb + pdb.post_mortem() rv = set() global_types = parse_variants(value) for global_type in global_types: variant = _any_variants[global_type] - suffix = variant.get("suffix", ".any.%s.html" % global_type.decode("utf-8")) - rv.add((suffix, global_type == b"jsshell")) + suffix = variant.get("suffix", ".any.%s.html" % global_type) + rv.add((suffix, global_type == "jsshell")) return rv @@ -462,7 +466,7 @@ def timeout_nodes(self): @cached_property def script_metadata(self): - # type: () -> Optional[List[Tuple[bytes, bytes]]] + # type: () -> Optional[List[Tuple[Text, Text]]] if self.name_is_worker or self.name_is_multi_global or self.name_is_window: regexp = js_meta_re elif self.name_is_webdriver: @@ -479,7 +483,7 @@ def timeout(self): """The timeout of a test or reference file. "long" if the file has an extended timeout or None otherwise""" if self.script_metadata: - if any(m == (b"timeout", b"long") for m in self.script_metadata): + if any(m == ("timeout", "long") for m in self.script_metadata): return "long" if self.root is None: @@ -641,8 +645,8 @@ def test_variants(self): script_metadata = self.script_metadata assert script_metadata is not None for (key, value) in script_metadata: - if key == b"variant": - rv.append(value.decode("utf-8")) + if key == "variant": + rv.append(value) else: for element in self.variant_nodes: if "content" in element.attrib: @@ -864,11 +868,11 @@ def manifest_items(self): )] elif self.name_is_multi_global: - globals = b"" + globals = u"" script_metadata = self.script_metadata assert script_metadata is not None for (key, value) in script_metadata: - if key == b"global": + if key == "global": globals = value break diff --git a/tools/manifest/tests/test_sourcefile.py b/tools/manifest/tests/test_sourcefile.py index a8fbc27071408d..ae9a530a093b19 100644 --- a/tools/manifest/tests/test_sourcefile.py +++ b/tools/manifest/tests/test_sourcefile.py @@ -180,7 +180,7 @@ def test_worker_long_timeout(): test()""" metadata = list(read_script_metadata(BytesIO(contents), js_meta_re)) - assert metadata == [(b"timeout", b"long")] + assert metadata == [("timeout", "long")] s = create("html/test.worker.js", contents=contents) assert s.name_is_worker @@ -197,7 +197,7 @@ def test_window_long_timeout(): test()""" metadata = list(read_script_metadata(BytesIO(contents), js_meta_re)) - assert metadata == [(b"timeout", b"long")] + assert metadata == [("timeout", "long")] s = create("html/test.window.js", contents=contents) assert s.name_is_window @@ -278,7 +278,7 @@ def test_python_long_timeout(): metadata = list(read_script_metadata(BytesIO(contents), python_meta_re)) - assert metadata == [(b"timeout", b"long")] + assert metadata == [("timeout", "long")] s = create("webdriver/test.py", contents=contents) assert s.name_is_webdriver @@ -322,7 +322,7 @@ def test_multi_global_long_timeout(): test()""" metadata = list(read_script_metadata(BytesIO(contents), js_meta_re)) - assert metadata == [(b"timeout", b"long")] + assert metadata == [("timeout", "long")] s = create("html/test.any.js", contents=contents) assert s.name_is_multi_global diff --git a/tools/serve/serve.py b/tools/serve/serve.py index 45bfd4766ebcd2..4bacf65640c22c 100644 --- a/tools/serve/serve.py +++ b/tools/serve/serve.py @@ -178,9 +178,9 @@ class HtmlWrapperHandler(WrapperHandler): def check_exposure(self, request): if self.global_type: - globals = b"" + globals = "" for (key, value) in self._get_metadata(request): - if key == b"global": + if key == "global": globals = value break @@ -189,17 +189,17 @@ def check_exposure(self, request): self.global_type) def _meta_replacement(self, key, value): - if key == b"timeout": - if value == b"long": + if key == "timeout": + if value == "long": return '' - if key == b"title": - value = value.decode('utf-8').replace("&", "&").replace("<", "<") + if key == "title": + value = value.replace("&", "&").replace("<", "<") return '%s' % value return None def _script_replacement(self, key, value): - if key == b"script": - attribute = value.decode('utf-8').replace("&", "&").replace('"', """) + if key == "script": + attribute = value.replace("&", "&").replace('"', """) return '' % attribute return None @@ -307,11 +307,11 @@ def _meta_replacement(self, key, value): return None def _script_replacement(self, key, value): - if key == b"script": - attribute = value.decode('utf-8').replace("\\", "\\\\").replace('"', '\\"') + if key == "script": + attribute = value.replace("\\", "\\\\").replace('"', '\\"') return 'importScripts("%s")' % attribute - if key == b"title": - value = value.decode('utf-8').replace("\\", "\\\\").replace('"', '\\"') + if key == "title": + value = value.replace("\\", "\\\\").replace('"', '\\"') return 'self.META_TITLE = "%s";' % value return None diff --git a/tools/wptrunner/wptrunner/wpttest.py b/tools/wptrunner/wptrunner/wpttest.py index 4b43b73610a591..6b0fab6eebaf50 100644 --- a/tools/wptrunner/wptrunner/wpttest.py +++ b/tools/wptrunner/wptrunner/wpttest.py @@ -411,7 +411,7 @@ def from_manifest(cls, manifest_file, manifest_item, inherit_metadata, test_meta quic = manifest_item.quic if hasattr(manifest_item, "quic") else False script_metadata = manifest_item.script_metadata or [] scripts = [v for (k, v) in script_metadata - if k in (b"script", "script")] + if k == "script"] return cls(manifest_file.tests_root, manifest_item.url, inherit_metadata,