Add a class for parsing application manifests
[WebKit-https.git] / Source / WebCore / ChangeLog
index 24966b0..52b9a60 100644 (file)
@@ -1,3 +1,42 @@
+2017-12-04  David Quesada  <david_quesada@apple.com>
+
+        Add a class for parsing application manifests
+        https://bugs.webkit.org/show_bug.cgi?id=177973
+        rdar://problem/34747949
+
+        Reviewed by Geoffrey Garen.
+
+        Add a new struct ApplicationManifest, along with ApplicationManifestParser to initialize
+        ApplicationManifests from JSON data, according to the App Manifest spec. Just a basic subset
+        of the manifests's properties are implemented to start with.
+
+        ApplicationManifestParser is tested by new unit tests in TestWebKitAPI.
+
+        * Configurations/FeatureDefines.xcconfig: Add ENABLE_APPLICATION_MANIFEST feature flag.
+        * Modules/applicationmanifest/ApplicationManifest.h: Added.
+        * Modules/applicationmanifest/ApplicationManifestParser.cpp: Added.
+        (WebCore::ApplicationManifestParser::parse):
+        The main entry point for eventual clients (and currently the unit tests) to invoke
+        ApplicationManifestParser. There is a variant that accepts a ScriptExecutionContext that
+        uses the context exclusively for logging console warnings while parsing the manifest, and
+        not for actually executing any scripts.
+        (WebCore::ApplicationManifestParser::ApplicationManifestParser):
+        (WebCore::ApplicationManifestParser::parseManifest):
+        (WebCore::ApplicationManifestParser::logManifestPropertyNotAString):
+        (WebCore::ApplicationManifestParser::logManifestPropertyInvalidURL):
+        (WebCore::ApplicationManifestParser::logDeveloperWarning):
+        (WebCore::ApplicationManifestParser::parseStartURL):
+        (WebCore::ApplicationManifestParser::parseName):
+        (WebCore::ApplicationManifestParser::parseDescription):
+        (WebCore::ApplicationManifestParser::parseShortName):
+        (WebCore::isInScope):
+        (WebCore::ApplicationManifestParser::parseScope):
+        (WebCore::ApplicationManifestParser::parseGenericString):
+        * Modules/applicationmanifest/ApplicationManifestParser.h: Added.
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * features.json: Change the Web App Manifest feature status to "In Development"
+
 2017-12-04  Zalan Bujtas  <zalan@apple.com>
 
         RenderMultiColumnFlow::fragmentedFlowDescendantInserted should not destroy incoming newDescendant