Title: [285502] trunk/Source/WebInspectorUI
Revision
285502
Author
[email protected]
Date
2021-11-09 08:58:33 -0800 (Tue, 09 Nov 2021)

Log Message

Web Inspector: Add script to update CSSDocumentation.js
https://bugs.webkit.org/show_bug.cgi?id=232433
<rdar://problem/84753008>

Reviewed by Devin Rousso.

* Scripts/update-inspector-css-documentation: Added.

Add a script to update the contextual CSS documentation data source at
`Source/WebInspectorUI/UserInterface/External/CSSDocumentation/CSSDocumentation.js`
with the latest information from the upstream data source.

* UserInterface/Controllers/CSSManager.js:
(WI.CSSManager.prototype.canonicalNameForPropertyName):

Add a comment to keep the list of accepted prefixes in sync with the one from the script.

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (285501 => 285502)


--- trunk/Source/WebInspectorUI/ChangeLog	2021-11-09 16:40:50 UTC (rev 285501)
+++ trunk/Source/WebInspectorUI/ChangeLog	2021-11-09 16:58:33 UTC (rev 285502)
@@ -1,3 +1,22 @@
+2021-11-09  Razvan Caliman  <[email protected]>
+
+        Web Inspector: Add script to update CSSDocumentation.js
+        https://bugs.webkit.org/show_bug.cgi?id=232433
+        <rdar://problem/84753008>
+
+        Reviewed by Devin Rousso.
+
+        * Scripts/update-inspector-css-documentation: Added.
+
+        Add a script to update the contextual CSS documentation data source at
+        `Source/WebInspectorUI/UserInterface/External/CSSDocumentation/CSSDocumentation.js`
+        with the latest information from the upstream data source.
+
+        * UserInterface/Controllers/CSSManager.js:
+        (WI.CSSManager.prototype.canonicalNameForPropertyName):
+
+        Add a comment to keep the list of accepted prefixes in sync with the one from the script.
+
 2021-11-08  Razvan Caliman  <[email protected]>
 
         Update CSSDocumentation.js with latest upstream data to fix wrong documentation for block-size

Added: trunk/Source/WebInspectorUI/Scripts/update-inspector-css-documentation (0 => 285502)


--- trunk/Source/WebInspectorUI/Scripts/update-inspector-css-documentation	                        (rev 0)
+++ trunk/Source/WebInspectorUI/Scripts/update-inspector-css-documentation	2021-11-09 16:58:33 UTC (rev 285502)
@@ -0,0 +1,104 @@
+#!/usr/bin/env python3
+
+# Copyright (C) 2021 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1.  Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2.  Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# This script generates the file with CSS documentation shown in Web Inspector:
+# Source/WebInspectorUI/UserInterface/External/CSSDocumentation/CSSDocumentation.js
+#
+# The data comes from the VSCode custom data repository:
+# https://github.com/microsoft/vscode-custom-data/blob/main/web-data/data/browsers.css-data.json
+
+import json
+import urllib.request
+import urllib.error
+from pathlib import Path
+
+VSCODE_CSS_DATA_JSON_URL = "https://raw.githubusercontent.com/microsoft/vscode-custom-data/main/web-data/data/browsers.css-data.json"
+ROOT_DIR = (Path(__file__).parent / ".." / ".." / "..").resolve()
+OUTPUT_DIR = "Source/WebInspectorUI/UserInterface/External/CSSDocumentation"
+OUTPUT_FILENAME = "CSSDocumentation.js"
+
+try:
+    print(f"Downloading: {VSCODE_CSS_DATA_JSON_URL}")
+    response = urllib.request.urlopen(VSCODE_CSS_DATA_JSON_URL)
+except urllib.error.URLError as err:
+    print("Download failed\n{0}".format(err))
+    exit()
+
+try:
+    print("Parsing")
+    data = ""
+except json.JSONDecodeError as err:
+    print("Parsing failed\n{0}".format(err))
+    exit()
+
+print("Extracting CSS property data")
+
+properties = {}
+for prop in data["properties"]:
+    name = prop.get("name")
+    description = prop.get("description")
+    syntax = prop.get("syntax")
+    references = prop.get("references")
+    url = ""
+
+    if (references):
+        url = ""
+
+    if (url and not url.startswith("https://developer.mozilla.org")):
+        print(f"WARNING: Skipping unexpected MDN reference URL: {url}")
+        url = ""
+
+    # Skip properties with unsupported prefixes. Keep in sync with prefix list from WI.CSSManager.canonicalNameForPropertyName().
+    if (name.startswith("-") and not name.startswith(("-webkit-", "-khtml-", "-apple-"))):
+        continue
+
+    # Skip properties lacking any meaningful content.
+    if (not description and not syntax):
+        continue
+
+    properties[name] = {}
+
+    if (description):
+        properties[name]["description"] = description
+
+    if (syntax):
+        properties[name]["syntax"] = syntax
+
+    if (url):
+        properties[name]["url"] = url
+
+try:
+    file_path = Path(ROOT_DIR, OUTPUT_DIR, OUTPUT_FILENAME).resolve()
+    print(f"Writing file: {file_path}")
+    file = open(file_path, "w")
+    file.write("// DO NOT EDIT THIS FILE. It is automatically generated by the script: Source/WebInspectorUI/Scripts/update-inspector-css-documentation.\n")
+    file.write("CSSDocumentation = ")
+    file.write(json.dumps(properties, indent=4, sort_keys=True))
+    file.write(";\n")
+    file.close()
+except OSError as err:
+    print("Writing failed\n{0}".format(err))
+    exit()
+
+print("Success!")
Property changes on: trunk/Source/WebInspectorUI/Scripts/update-inspector-css-documentation
___________________________________________________________________

Added: svn:executable

+* \ No newline at end of property

Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/CSSManager.js (285501 => 285502)


--- trunk/Source/WebInspectorUI/UserInterface/Controllers/CSSManager.js	2021-11-09 16:40:50 UTC (rev 285501)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/CSSManager.js	2021-11-09 16:58:33 UTC (rev 285502)
@@ -283,6 +283,7 @@
         if (!name || name.length < 8 || name.charAt(0) !== "-")
             return name;
 
+        // Keep in sync with prefix list from Source/WebInspectorUI/Scripts/update-inspector-css-documentation
         var match = name.match(/^(?:-webkit-|-khtml-|-apple-)(.+)/);
         if (!match)
             return name;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to