Title: [210293] trunk/Source/WebCore
Revision
210293
Author
wei...@apple.com
Date
2017-01-04 15:04:18 -0800 (Wed, 04 Jan 2017)

Log Message

Remove bindings/generic and distribute its contents appropriately
https://bugs.webkit.org/show_bug.cgi?id=166700

Rubber-stamped by Alex Christensen.

* CMakeLists.txt:
* DerivedSources.make:
* PlatformMac.cmake:
* PlatformWin.cmake:
* WebCore.xcodeproj/project.pbxproj:
* bindings/IDLTypes.h: Copied from Source/WebCore/bindings/generic/IDLTypes.h.
* bindings/generic/ActiveDOMCallback.cpp: Removed.
* bindings/generic/ActiveDOMCallback.h: Removed.
* bindings/generic/IDLTypes.h: Removed.
* bindings/generic/RuntimeEnabledFeatures.cpp: Removed.
* bindings/generic/RuntimeEnabledFeatures.h: Removed.
* dom/ActiveDOMCallback.cpp: Copied from Source/WebCore/bindings/generic/ActiveDOMCallback.cpp.
* dom/ActiveDOMCallback.h: Copied from Source/WebCore/bindings/generic/ActiveDOMCallback.h.
* page/RuntimeEnabledFeatures.cpp: Copied from Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp.
* page/RuntimeEnabledFeatures.h: Copied from Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h.
Move files around.

Modified Paths

Added Paths

Removed Paths

  • trunk/Source/WebCore/bindings/generic/

Diff

Modified: trunk/Source/WebCore/CMakeLists.txt (210292 => 210293)


--- trunk/Source/WebCore/CMakeLists.txt	2017-01-04 23:00:00 UTC (rev 210292)
+++ trunk/Source/WebCore/CMakeLists.txt	2017-01-04 23:04:18 UTC (rev 210293)
@@ -33,7 +33,6 @@
     "${WEBCORE_DIR}/accessibility"
     "${WEBCORE_DIR}/animation"
     "${WEBCORE_DIR}/bindings"
-    "${WEBCORE_DIR}/bindings/generic"
     "${WEBCORE_DIR}/bindings/js"
     "${WEBCORE_DIR}/bridge"
     "${WEBCORE_DIR}/bridge/c"
@@ -151,7 +150,6 @@
     Modules/webdatabase
     Modules/websockets
 
-    bindings/generic
     bindings/js
 
     html/canvas
@@ -1066,9 +1064,6 @@
     animation/KeyframeEffect.cpp
     animation/WebAnimation.cpp
 
-    bindings/generic/ActiveDOMCallback.cpp
-    bindings/generic/RuntimeEnabledFeatures.cpp
-
     bindings/js/CachedModuleScript.cpp
     bindings/js/CachedModuleScriptLoader.cpp
     bindings/js/CallbackFunction.cpp
@@ -1381,6 +1376,7 @@
 
     cssjit/SelectorCompiler.cpp
 
+    dom/ActiveDOMCallback.cpp
     dom/ActiveDOMCallbackMicrotask.cpp
     dom/ActiveDOMObject.cpp
     dom/AnimationEvent.cpp
@@ -2053,6 +2049,7 @@
     page/ResourceUsageData.cpp
     page/ResourceUsageOverlay.cpp
     page/ResourceUsageThread.cpp
+    page/RuntimeEnabledFeatures.cpp
     page/Screen.cpp
     page/SecurityOrigin.cpp
     page/SecurityOriginData.cpp

Modified: trunk/Source/WebCore/ChangeLog (210292 => 210293)


--- trunk/Source/WebCore/ChangeLog	2017-01-04 23:00:00 UTC (rev 210292)
+++ trunk/Source/WebCore/ChangeLog	2017-01-04 23:04:18 UTC (rev 210293)
@@ -1,5 +1,29 @@
 2017-01-04  Sam Weinig  <s...@webkit.org>
 
+        Remove bindings/generic and distribute its contents appropriately
+        https://bugs.webkit.org/show_bug.cgi?id=166700
+
+        Rubber-stamped by Alex Christensen.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * PlatformMac.cmake:
+        * PlatformWin.cmake:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/IDLTypes.h: Copied from Source/WebCore/bindings/generic/IDLTypes.h.
+        * bindings/generic/ActiveDOMCallback.cpp: Removed.
+        * bindings/generic/ActiveDOMCallback.h: Removed.
+        * bindings/generic/IDLTypes.h: Removed.
+        * bindings/generic/RuntimeEnabledFeatures.cpp: Removed.
+        * bindings/generic/RuntimeEnabledFeatures.h: Removed.
+        * dom/ActiveDOMCallback.cpp: Copied from Source/WebCore/bindings/generic/ActiveDOMCallback.cpp.
+        * dom/ActiveDOMCallback.h: Copied from Source/WebCore/bindings/generic/ActiveDOMCallback.h.
+        * page/RuntimeEnabledFeatures.cpp: Copied from Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp.
+        * page/RuntimeEnabledFeatures.h: Copied from Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h.
+        Move files around.
+
+2017-01-04  Sam Weinig  <s...@webkit.org>
+
         Add Exception accessor to ExceptionOr to remove unnecessary releases
         https://bugs.webkit.org/show_bug.cgi?id=166692
 

Modified: trunk/Source/WebCore/DerivedSources.make (210292 => 210293)


--- trunk/Source/WebCore/DerivedSources.make	2017-01-04 23:00:00 UTC (rev 210292)
+++ trunk/Source/WebCore/DerivedSources.make	2017-01-04 23:04:18 UTC (rev 210293)
@@ -51,7 +51,6 @@
     $(WebCore)/Modules/webdriver \
     $(WebCore)/Modules/websockets \
     $(WebCore)/animation \
-    $(WebCore)/bindings/generic \
     $(WebCore)/bindings/js \
     $(WebCore)/crypto \
     $(WebCore)/crypto/parameters \

Modified: trunk/Source/WebCore/PlatformMac.cmake (210292 => 210293)


--- trunk/Source/WebCore/PlatformMac.cmake	2017-01-04 23:00:00 UTC (rev 210292)
+++ trunk/Source/WebCore/PlatformMac.cmake	2017-01-04 23:04:18 UTC (rev 210293)
@@ -596,7 +596,6 @@
     Modules/indexeddb/shared
     Modules/indexeddb/server
 
-    bindings/generic
     bindings/js
 
     bridge/objc

Modified: trunk/Source/WebCore/PlatformWin.cmake (210292 => 210293)


--- trunk/Source/WebCore/PlatformWin.cmake	2017-01-04 23:00:00 UTC (rev 210292)
+++ trunk/Source/WebCore/PlatformWin.cmake	2017-01-04 23:04:18 UTC (rev 210293)
@@ -201,7 +201,6 @@
 
     accessibility/win
 
-    bindings/generic
     bindings/js
 
     bridge/c

Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (210292 => 210293)


--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2017-01-04 23:00:00 UTC (rev 210292)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2017-01-04 23:04:18 UTC (rev 210293)
@@ -2836,6 +2836,11 @@
 		7C4C96DF1AD4483500365A50 /* JSReadableStreamDefaultReader.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C4C96DB1AD4483500365A50 /* JSReadableStreamDefaultReader.h */; };
 		7C4C96E31AD44ABF00365A50 /* LaunchServicesSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C4C96E21AD44ABF00365A50 /* LaunchServicesSPI.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		7C4EDD741A7B607800198C4D /* FontCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7C4EDD731A7B607800198C4D /* FontCocoa.mm */; };
+		7C5222961E1DAE03002CB8F7 /* IDLTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C5222951E1DADF8002CB8F7 /* IDLTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		7C5222991E1DAE1C002CB8F7 /* ActiveDOMCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C5222981E1DAE16002CB8F7 /* ActiveDOMCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		7C52229A1E1DAE20002CB8F7 /* ActiveDOMCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C5222971E1DAE16002CB8F7 /* ActiveDOMCallback.cpp */; };
+		7C52229D1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C52229B1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.cpp */; };
+		7C52229E1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C52229C1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		7C522D4B15B477E8009B7C95 /* InspectorOverlay.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C522D4915B477E8009B7C95 /* InspectorOverlay.cpp */; };
 		7C5343FC17B74B63004232F0 /* JSMediaQueryListListener.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C5343FA17B74B63004232F0 /* JSMediaQueryListListener.cpp */; };
 		7C5343FD17B74B63004232F0 /* JSMediaQueryListListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C5343FB17B74B63004232F0 /* JSMediaQueryListListener.h */; };
@@ -2886,7 +2891,6 @@
 		7C93F34E1AA6BF0700A98BAB /* ContentExtensionCompiler.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C93F34C1AA6BF0700A98BAB /* ContentExtensionCompiler.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		7C9DBFED1A9C49B1000D6B25 /* JSHTMLAttachmentElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C9DBFEB1A9C49B1000D6B25 /* JSHTMLAttachmentElement.cpp */; };
 		7C9DBFEE1A9C49B1000D6B25 /* JSHTMLAttachmentElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C9DBFEC1A9C49B1000D6B25 /* JSHTMLAttachmentElement.h */; };
-		7CC16FFB1D77375300CE0877 /* IDLTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CC16FFA1D77375300CE0877 /* IDLTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		7CC289DF1AA0FE5D009A9CE3 /* URLRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = CDEE393817974274001D7580 /* URLRegistry.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		7CC564B818BABEA6001B9652 /* TelephoneNumberDetector.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CC564B618BABEA6001B9652 /* TelephoneNumberDetector.h */; };
 		7CC564BA18BAC720001B9652 /* TelephoneNumberDetectorCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CC564B918BAC720001B9652 /* TelephoneNumberDetectorCocoa.cpp */; };
@@ -3220,8 +3224,6 @@
 		8AF4E55511DC5A36000ED3DE /* PerformanceNavigation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AF4E55211DC5A36000ED3DE /* PerformanceNavigation.cpp */; };
 		8AF4E55611DC5A36000ED3DE /* PerformanceNavigation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AF4E55311DC5A36000ED3DE /* PerformanceNavigation.h */; };
 		8AF4E55C11DC5A63000ED3DE /* PerformanceTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AF4E55911DC5A63000ED3DE /* PerformanceTiming.h */; };
-		8C6EA61911EF7E0400FD8EE3 /* RuntimeEnabledFeatures.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8C6EA61711EF7E0400FD8EE3 /* RuntimeEnabledFeatures.cpp */; };
-		8C6EA61A11EF7E0400FD8EE3 /* RuntimeEnabledFeatures.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C6EA61811EF7E0400FD8EE3 /* RuntimeEnabledFeatures.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		8E4C96DC1AD4483500365A50 /* JSFetchResponse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8E4C96D81AD4483500365A50 /* JSFetchResponse.cpp */; };
 		8E4C96DD1AD4483500365A50 /* JSFetchResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E4C96D91AD4483500365A50 /* JSFetchResponse.h */; };
 		8F67561B1288B17B0047ACA3 /* EventQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F6756191288B17B0047ACA3 /* EventQueue.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -5136,8 +5138,6 @@
 		B5B65874186FDE4C009C26E8 /* RenderPtr.h in Headers */ = {isa = PBXBuildFile; fileRef = ADE16736181050C300463A2E /* RenderPtr.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		B5B7A17017C10AA800E4AA0A /* ElementData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5B7A16F17C1080600E4AA0A /* ElementData.cpp */; };
 		B5B7A17117C10AC000E4AA0A /* ElementData.h in Headers */ = {isa = PBXBuildFile; fileRef = B5B7A16E17C1048000E4AA0A /* ElementData.h */; settings = {ATTRIBUTES = (Private, ); }; };
-		B5D31DFA11CF610B009F22B4 /* ActiveDOMCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5D31DF811CF610B009F22B4 /* ActiveDOMCallback.cpp */; };
-		B5D31DFB11CF610B009F22B4 /* ActiveDOMCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = B5D31DF911CF610B009F22B4 /* ActiveDOMCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		B6566270120B1227006EA85C /* JSIDBTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = B656626E120B1227006EA85C /* JSIDBTransaction.h */; };
 		B658FFA11522EF3A00DD5595 /* JSRadioNodeList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B658FF9F1522EF3A00DD5595 /* JSRadioNodeList.cpp */; };
 		B658FFA21522EF3A00DD5595 /* JSRadioNodeList.h in Headers */ = {isa = PBXBuildFile; fileRef = B658FFA01522EF3A00DD5595 /* JSRadioNodeList.h */; };
@@ -10323,6 +10323,11 @@
 		7C4C96DB1AD4483500365A50 /* JSReadableStreamDefaultReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSReadableStreamDefaultReader.h; sourceTree = "<group>"; };
 		7C4C96E21AD44ABF00365A50 /* LaunchServicesSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LaunchServicesSPI.h; sourceTree = "<group>"; };
 		7C4EDD731A7B607800198C4D /* FontCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FontCocoa.mm; sourceTree = "<group>"; };
+		7C5222951E1DADF8002CB8F7 /* IDLTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDLTypes.h; sourceTree = "<group>"; };
+		7C5222971E1DAE16002CB8F7 /* ActiveDOMCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ActiveDOMCallback.cpp; sourceTree = "<group>"; };
+		7C5222981E1DAE16002CB8F7 /* ActiveDOMCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ActiveDOMCallback.h; sourceTree = "<group>"; };
+		7C52229B1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RuntimeEnabledFeatures.cpp; sourceTree = "<group>"; };
+		7C52229C1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RuntimeEnabledFeatures.h; sourceTree = "<group>"; };
 		7C522D4915B477E8009B7C95 /* InspectorOverlay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorOverlay.cpp; sourceTree = "<group>"; };
 		7C522D4A15B478B2009B7C95 /* InspectorOverlay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorOverlay.h; sourceTree = "<group>"; };
 		7C5343FA17B74B63004232F0 /* JSMediaQueryListListener.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMediaQueryListListener.cpp; sourceTree = "<group>"; };
@@ -10394,7 +10399,6 @@
 		7C9DBFEA1A9C489F000D6B25 /* HTMLAttachmentElement.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = HTMLAttachmentElement.idl; sourceTree = "<group>"; };
 		7C9DBFEB1A9C49B1000D6B25 /* JSHTMLAttachmentElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLAttachmentElement.cpp; sourceTree = "<group>"; };
 		7C9DBFEC1A9C49B1000D6B25 /* JSHTMLAttachmentElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSHTMLAttachmentElement.h; sourceTree = "<group>"; };
-		7CC16FFA1D77375300CE0877 /* IDLTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDLTypes.h; sourceTree = "<group>"; };
 		7CC564B618BABEA6001B9652 /* TelephoneNumberDetector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TelephoneNumberDetector.h; sourceTree = "<group>"; };
 		7CC564B918BAC720001B9652 /* TelephoneNumberDetectorCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TelephoneNumberDetectorCocoa.cpp; sourceTree = "<group>"; };
 		7CC6993E191EC5F500AF2270 /* JSWebKitNamespace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWebKitNamespace.cpp; sourceTree = "<group>"; };
@@ -10804,8 +10808,6 @@
 		8AF4E55411DC5A36000ED3DE /* PerformanceNavigation.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PerformanceNavigation.idl; sourceTree = "<group>"; };
 		8AF4E55911DC5A63000ED3DE /* PerformanceTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PerformanceTiming.h; sourceTree = "<group>"; };
 		8AF4E55A11DC5A63000ED3DE /* PerformanceTiming.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PerformanceTiming.idl; sourceTree = "<group>"; };
-		8C6EA61711EF7E0400FD8EE3 /* RuntimeEnabledFeatures.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RuntimeEnabledFeatures.cpp; path = generic/RuntimeEnabledFeatures.cpp; sourceTree = "<group>"; };
-		8C6EA61811EF7E0400FD8EE3 /* RuntimeEnabledFeatures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RuntimeEnabledFeatures.h; path = generic/RuntimeEnabledFeatures.h; sourceTree = "<group>"; };
 		8E4C96D81AD4483500365A50 /* JSFetchResponse.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSFetchResponse.cpp; sourceTree = "<group>"; };
 		8E4C96D91AD4483500365A50 /* JSFetchResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSFetchResponse.h; sourceTree = "<group>"; };
 		8F6756191288B17B0047ACA3 /* EventQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EventQueue.h; sourceTree = "<group>"; };
@@ -11075,7 +11077,7 @@
 		93F6F1EB127F70B10055CB06 /* WebGLContextEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGLContextEvent.h; sourceTree = "<group>"; };
 		93F6F1EC127F70B10055CB06 /* WebGLContextEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGLContextEvent.idl; sourceTree = "<group>"; };
 		93F8B3050A300FE100F61AB8 /* CodeGenerator.pm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; name = CodeGenerator.pm; path = scripts/CodeGenerator.pm; sourceTree = "<group>"; };
-		93F8B3060A300FEA00F61AB8 /* CodeGeneratorJS.pm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; name = CodeGeneratorJS.pm; path = ../scripts/CodeGeneratorJS.pm; sourceTree = "<group>"; wrapsLines = 0; };
+		93F8B3060A300FEA00F61AB8 /* CodeGeneratorJS.pm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; name = CodeGeneratorJS.pm; path = scripts/CodeGeneratorJS.pm; sourceTree = "<group>"; wrapsLines = 0; };
 		93F8B3070A300FEA00F61AB8 /* generate-bindings.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; name = "generate-bindings.pl"; path = "scripts/generate-bindings.pl"; sourceTree = "<group>"; };
 		93F925410F7EF5B8007E37C9 /* RadioButtonGroups.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RadioButtonGroups.h; sourceTree = "<group>"; };
 		93F925420F7EF5B8007E37C9 /* RadioButtonGroups.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RadioButtonGroups.cpp; sourceTree = "<group>"; };
@@ -13011,8 +13013,6 @@
 		B5A684230FFABEAA00D24689 /* SQLiteFileSystem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SQLiteFileSystem.cpp; sourceTree = "<group>"; };
 		B5B7A16E17C1048000E4AA0A /* ElementData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ElementData.h; sourceTree = "<group>"; };
 		B5B7A16F17C1080600E4AA0A /* ElementData.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ElementData.cpp; sourceTree = "<group>"; };
-		B5D31DF811CF610B009F22B4 /* ActiveDOMCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ActiveDOMCallback.cpp; sourceTree = "<group>"; };
-		B5D31DF911CF610B009F22B4 /* ActiveDOMCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ActiveDOMCallback.h; sourceTree = "<group>"; };
 		B656626E120B1227006EA85C /* JSIDBTransaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBTransaction.h; sourceTree = "<group>"; };
 		B658FF9F1522EF3A00DD5595 /* JSRadioNodeList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSRadioNodeList.cpp; sourceTree = "<group>"; };
 		B658FFA01522EF3A00DD5595 /* JSRadioNodeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSRadioNodeList.h; sourceTree = "<group>"; };
@@ -18030,6 +18030,8 @@
 				ADBAD6ED1BCDD95000381325 /* ResourceUsageOverlay.h */,
 				A5071E831C56D079009951BE /* ResourceUsageThread.cpp */,
 				A5071E841C56D079009951BE /* ResourceUsageThread.h */,
+				7C52229B1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.cpp */,
+				7C52229C1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.h */,
 				BCEC01BA0C274DAC009F4EC9 /* Screen.cpp */,
 				BCEC01BB0C274DAC009F4EC9 /* Screen.h */,
 				BCEC01BC0C274DAC009F4EC9 /* Screen.idl */,
@@ -18380,6 +18382,24 @@
 			path = cocoa;
 			sourceTree = "<group>";
 		};
+		7C5222941E1DADDC002CB8F7 /* scripts */ = {
+			isa = PBXGroup;
+			children = (
+				93F8B3050A300FE100F61AB8 /* CodeGenerator.pm */,
+				93F8B3060A300FEA00F61AB8 /* CodeGeneratorJS.pm */,
+				93F8B3070A300FEA00F61AB8 /* generate-bindings.pl */,
+				7C6136F61710C35200FF4A57 /* Hasher.pm */,
+				A83B533814F399BB00720D9D /* IDLAttributes.txt */,
+				14813BF309EDF88E00F757E1 /* IDLParser.pm */,
+				7C6136F71710C35200FF4A57 /* InFilesCompiler.pm */,
+				7C6136F81710C35200FF4A57 /* InFilesParser.pm */,
+				A83B538014FBB2EC00720D9D /* preprocess-idls.pl */,
+				C0F2A43F13869A280066C534 /* preprocessor.pm */,
+				7C6136F91710C35200FF4A57 /* StaticString.pm */,
+			);
+			name = scripts;
+			sourceTree = "<group>";
+		};
 		7E4DE10B198B10810051CB02 /* cocoa */ = {
 			isa = PBXGroup;
 			children = (
@@ -21954,33 +21974,12 @@
 			path = cocoa;
 			sourceTree = "<group>";
 		};
-		B5D31DF711CF60E5009F22B4 /* generic */ = {
-			isa = PBXGroup;
-			children = (
-				B5D31DF811CF610B009F22B4 /* ActiveDOMCallback.cpp */,
-				B5D31DF911CF610B009F22B4 /* ActiveDOMCallback.h */,
-				7CC16FFA1D77375300CE0877 /* IDLTypes.h */,
-			);
-			path = generic;
-			sourceTree = "<group>";
-		};
 		BC1A3790097C6F970019F3D8 /* bindings */ = {
 			isa = PBXGroup;
 			children = (
-				B5D31DF711CF60E5009F22B4 /* generic */,
 				BC1A3793097C6FB10019F3D8 /* js */,
-				93F8B3050A300FE100F61AB8 /* CodeGenerator.pm */,
-				93F8B3070A300FEA00F61AB8 /* generate-bindings.pl */,
-				7C6136F61710C35200FF4A57 /* Hasher.pm */,
-				A83B533814F399BB00720D9D /* IDLAttributes.txt */,
-				14813BF309EDF88E00F757E1 /* IDLParser.pm */,
-				7C6136F71710C35200FF4A57 /* InFilesCompiler.pm */,
-				7C6136F81710C35200FF4A57 /* InFilesParser.pm */,
-				A83B538014FBB2EC00720D9D /* preprocess-idls.pl */,
-				C0F2A43F13869A280066C534 /* preprocessor.pm */,
-				8C6EA61711EF7E0400FD8EE3 /* RuntimeEnabledFeatures.cpp */,
-				8C6EA61811EF7E0400FD8EE3 /* RuntimeEnabledFeatures.h */,
-				7C6136F91710C35200FF4A57 /* StaticString.pm */,
+				7C5222941E1DADDC002CB8F7 /* scripts */,
+				7C5222951E1DADF8002CB8F7 /* IDLTypes.h */,
 			);
 			path = bindings;
 			sourceTree = "<group>";
@@ -22002,7 +22001,6 @@
 				E307DEC71D81E44800141CAF /* CachedModuleScriptLoader.h */,
 				E307DEC81D81E44800141CAF /* CachedModuleScriptLoaderClient.h */,
 				BCD533630ED6848900887468 /* CachedScriptSourceProvider.h */,
-				93F8B3060A300FEA00F61AB8 /* CodeGeneratorJS.pm */,
 				0F60F3291DFBB10400416D6C /* CommonVM.cpp */,
 				0F60F32A1DFBB10400416D6C /* CommonVM.h */,
 				B56576E717DA94E200A56BDC /* DOMConstructorWithDocument.h */,
@@ -23943,6 +23941,8 @@
 			children = (
 				CE2616A4187E65C1007955F3 /* ios */,
 				2D5036661BCDDDC400E20BB3 /* mac */,
+				7C5222971E1DAE16002CB8F7 /* ActiveDOMCallback.cpp */,
+				7C5222981E1DAE16002CB8F7 /* ActiveDOMCallback.h */,
 				7CD0BA021B8F79C9005CEBBE /* ActiveDOMCallbackMicrotask.cpp */,
 				7CD0BA031B8F79C9005CEBBE /* ActiveDOMCallbackMicrotask.h */,
 				E1C4DE6D0EA75C650023CCD6 /* ActiveDOMObject.cpp */,
@@ -24849,7 +24849,6 @@
 				29A812310FBB9C1D00510293 /* AccessibilityTableRow.h in Headers */,
 				A91C9FBF1B6586DE00AFFD54 /* AccessibilityTree.h in Headers */,
 				A91C9FC31B659A6700AFFD54 /* AccessibilityTreeItem.h in Headers */,
-				B5D31DFB11CF610B009F22B4 /* ActiveDOMCallback.h in Headers */,
 				7CD0BA051B8F79C9005CEBBE /* ActiveDOMCallbackMicrotask.h in Headers */,
 				E1C4DE690EA75C1E0023CCD6 /* ActiveDOMObject.h in Headers */,
 				724EE5501DC80D7F00A91FFB /* ActivityState.h in Headers */,
@@ -25931,7 +25930,6 @@
 				1A71D57C0F33819000F9CE4E /* IdentifierRep.h in Headers */,
 				49E911C50EF86D47009D0CAF /* IdentityTransformOperation.h in Headers */,
 				C0C054CD1118C8E400CE2636 /* IDLParser.pm in Headers */,
-				7CC16FFB1D77375300CE0877 /* IDLTypes.h in Headers */,
 				C3CF17A515B0063F00276D39 /* IdTargetObserver.h in Headers */,
 				C3CF17A715B0063F00276D39 /* IdTargetObserverRegistry.h in Headers */,
 				8AB4BC77126FDB7100DEB727 /* IgnoreDestructiveWriteCountIncrementer.h in Headers */,
@@ -26686,6 +26684,7 @@
 				1A762C780A074F2600989F5B /* JSXPathNSResolver.h in Headers */,
 				1A762C7A0A074F2600989F5B /* JSXPathResult.h in Headers */,
 				BCEFE1EB0DCA5F6400739219 /* JSXSLTProcessor.h in Headers */,
+				7C52229E1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.h in Headers */,
 				85031B440A44EFC700F992E0 /* KeyboardEvent.h in Headers */,
 				1AE00D59182DAC8D00087DD7 /* KeyedCoding.h in Headers */,
 				517A63C51B74318F00E7DCDC /* KeyedDecoderCF.h in Headers */,
@@ -27459,7 +27458,6 @@
 				1A569D230D7E2B82007C3983 /* runtime_object.h in Headers */,
 				1A569D250D7E2B82007C3983 /* runtime_root.h in Headers */,
 				293EAE1F1356B2FE0067ACF9 /* RuntimeApplicationChecks.h in Headers */,
-				8C6EA61A11EF7E0400FD8EE3 /* RuntimeEnabledFeatures.h in Headers */,
 				CDD7089718359F6F002B3DC6 /* SampleMap.h in Headers */,
 				49E911CB0EF86D47009D0CAF /* ScaleTransformOperation.h in Headers */,
 				5DFE8F570D16477C0076E937 /* ScheduledAction.h in Headers */,
@@ -27792,6 +27790,7 @@
 				B22279D40D00BF220071B782 /* SVGFEDiffuseLightingElement.h in Headers */,
 				B22279D70D00BF220071B782 /* SVGFEDisplacementMapElement.h in Headers */,
 				B22279DA0D00BF220071B782 /* SVGFEDistantLightElement.h in Headers */,
+				7C5222991E1DAE1C002CB8F7 /* ActiveDOMCallback.h in Headers */,
 				4358E8861360A33B00E4748C /* SVGFEDropShadowElement.h in Headers */,
 				B22279DD0D00BF220071B782 /* SVGFEFloodElement.h in Headers */,
 				B22279E00D00BF220071B782 /* SVGFEFuncAElement.h in Headers */,
@@ -27878,6 +27877,7 @@
 				83C1D427178D5AB400141E68 /* SVGPathSegCurvetoCubicAbs.h in Headers */,
 				83C1D428178D5AB400141E68 /* SVGPathSegCurvetoCubicRel.h in Headers */,
 				B2227A690D00BF220071B782 /* SVGPathSegCurvetoCubicSmooth.h in Headers */,
+				7C5222961E1DAE03002CB8F7 /* IDLTypes.h in Headers */,
 				83C1D429178D5AB400141E68 /* SVGPathSegCurvetoCubicSmoothAbs.h in Headers */,
 				83C1D42A178D5AB400141E68 /* SVGPathSegCurvetoCubicSmoothRel.h in Headers */,
 				B2227A6D0D00BF220071B782 /* SVGPathSegCurvetoQuadratic.h in Headers */,
@@ -28762,7 +28762,6 @@
 				37F57ACE1A5072DA00876F98 /* AccessibilityTableRow.cpp in Sources */,
 				A91C9FBE1B6586DE00AFFD54 /* AccessibilityTree.cpp in Sources */,
 				A91C9FC21B659A6700AFFD54 /* AccessibilityTreeItem.cpp in Sources */,
-				B5D31DFA11CF610B009F22B4 /* ActiveDOMCallback.cpp in Sources */,
 				7CD0BA041B8F79C9005CEBBE /* ActiveDOMCallbackMicrotask.cpp in Sources */,
 				E1C4DE6E0EA75C650023CCD6 /* ActiveDOMObject.cpp in Sources */,
 				84D0C4041115F1D40018AA34 /* AffineTransform.cpp in Sources */,
@@ -31106,7 +31105,6 @@
 				1A569D220D7E2B82007C3983 /* runtime_object.cpp in Sources */,
 				1A569D240D7E2B82007C3983 /* runtime_root.cpp in Sources */,
 				465A8E791C8A24CE00E7D3E4 /* RuntimeApplicationChecks.mm in Sources */,
-				8C6EA61911EF7E0400FD8EE3 /* RuntimeEnabledFeatures.cpp in Sources */,
 				CDD7089618359F6F002B3DC6 /* SampleMap.cpp in Sources */,
 				49E911CA0EF86D47009D0CAF /* ScaleTransformOperation.cpp in Sources */,
 				5DFE8F560D16477B0076E937 /* ScheduledAction.cpp in Sources */,
@@ -31234,6 +31232,7 @@
 				5C688AA31D3814BF000B54FA /* SocketProvider.cpp in Sources */,
 				510D4A36103165EE0049EA54 /* SocketStreamHandle.cpp in Sources */,
 				51ABAE1F103C1913008C5260 /* SocketStreamHandleImplCFNet.cpp in Sources */,
+				7C52229D1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.cpp in Sources */,
 				E45390470EAFD637003695C8 /* SoundIOS.mm in Sources */,
 				4B3043C90AE0371D00A82647 /* SoundMac.mm in Sources */,
 				84A81F3D0FC7DFF000955300 /* SourceAlpha.cpp in Sources */,
@@ -31566,6 +31565,7 @@
 				CD9D82751C7AE535006FF066 /* TextureCacheCV.mm in Sources */,
 				BCE65D320EAD1211007E4533 /* Theme.cpp in Sources */,
 				310D71951B335C9D009C7B73 /* ThemeCocoa.mm in Sources */,
+				7C52229A1E1DAE20002CB8F7 /* ActiveDOMCallback.cpp in Sources */,
 				44C991A00F3D210E00586670 /* ThemeIOS.mm in Sources */,
 				BCE659E90EA92FFA007E4533 /* ThemeMac.mm in Sources */,
 				976D6C94122B8A3D001FD1F7 /* ThreadableBlobRegistry.cpp in Sources */,

Copied: trunk/Source/WebCore/bindings/IDLTypes.h (from rev 210292, trunk/Source/WebCore/bindings/generic/IDLTypes.h) (0 => 210293)


--- trunk/Source/WebCore/bindings/IDLTypes.h	                        (rev 0)
+++ trunk/Source/WebCore/bindings/IDLTypes.h	2017-01-04 23:04:18 UTC (rev 210293)
@@ -0,0 +1,226 @@
+/*
+ * Copyright (C) 2016 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.
+ */
+
+#pragma once
+
+#include <heap/HandleTypes.h>
+#include <wtf/Brigand.h>
+#include <wtf/HashMap.h>
+#include <wtf/StdLibExtras.h>
+#include <wtf/text/WTFString.h>
+
+namespace JSC {
+class ArrayBuffer;
+class ArrayBufferView;
+class JSValue;
+class JSObject;
+template<typename> class Strong;
+}
+
+namespace WebCore {
+
+template<typename> class DOMPromise;
+
+template<typename T>
+struct IDLType {
+    using ImplementationType = T;
+    using ParameterType = T;
+
+    using NullableType = std::optional<ImplementationType>;
+    static NullableType nullValue() { return std::nullopt; }
+    static bool isNullValue(const NullableType& value) { return !value; }
+    static ImplementationType extractValueFromNullable(const NullableType& value) { return value.value(); }
+};
+
+// IDLUnsupportedType is a special type that serves as a base class for currently unsupported types.
+struct IDLUnsupportedType : IDLType<void> { };
+
+// IDLNull is a special type for use as a subtype in an IDLUnion that is nullable.
+struct IDLNull : IDLType<std::nullptr_t> { };
+
+struct IDLAny : IDLType<JSC::Strong<JSC::Unknown>> {
+    using ParameterType = JSC::JSValue;
+
+    using NullableType = JSC::Strong<JSC::Unknown>;
+    static inline std::nullptr_t nullValue() { return nullptr; }
+    template<typename U> static inline bool isNullValue(U&& value) { return !value; }
+    template<typename U> static inline U&& extractValueFromNullable(U&& value) { return std::forward<U>(value); }
+};
+
+struct IDLBoolean : IDLType<bool> { };
+
+template<typename NumericType> struct IDLNumber : IDLType<NumericType> { };
+
+template<typename IntegerType> struct IDLInteger : IDLNumber<IntegerType> { };
+struct IDLByte : IDLInteger<int8_t> { };
+struct IDLOctet : IDLInteger<uint8_t> { };
+struct IDLShort : IDLInteger<int16_t> { };
+struct IDLUnsignedShort : IDLInteger<uint16_t> { };
+struct IDLLong : IDLInteger<int32_t> { };
+struct IDLUnsignedLong : IDLInteger<uint32_t> { };
+struct IDLLongLong : IDLInteger<int64_t> { };
+struct IDLUnsignedLongLong : IDLInteger<uint64_t> { };
+
+template<typename FloatingPointType, bool unrestricted = false> struct IDLFloatingPoint : IDLNumber<FloatingPointType> {
+    static constexpr bool isUnrestricted = unrestricted;
+};
+struct IDLFloat : IDLFloatingPoint<float> { };
+struct IDLUnrestrictedFloat : IDLFloatingPoint<float, true> { };
+struct IDLDouble : IDLFloatingPoint<double> { };
+struct IDLUnrestrictedDouble : IDLFloatingPoint<double, true> { };
+
+struct IDLString : IDLType<String> {
+    using ParameterType = const String&;
+
+    using NullableType = String;
+    static String nullValue() { return String(); }
+    static bool isNullValue(const String& value) { return value.isNull(); }
+    template <typename U> static U&& extractValueFromNullable(U&& value) { return std::forward<U>(value); }
+};
+struct IDLDOMString : IDLString { };
+struct IDLByteString : IDLString { };
+struct IDLUSVString : IDLString { };
+
+struct IDLObject : IDLType<JSC::Strong<JSC::JSObject>> {
+    using NullableType = JSC::Strong<JSC::JSObject>;
+
+    static inline std::nullptr_t nullValue() { return nullptr; }
+    template<typename U> static inline bool isNullValue(U&& value) { return !value; }
+    template<typename U> static inline U&& extractValueFromNullable(U&& value) { return std::forward<U>(value); }
+};
+
+template<typename T> struct IDLWrapper : IDLType<RefPtr<T>> {
+    using RawType = T;
+
+    using ParameterType = T&;
+
+    using NullableType = RefPtr<T>;
+    static inline std::nullptr_t nullValue() { return nullptr; }
+    template<typename U> static inline bool isNullValue(U&& value) { return !value; }
+    template<typename U> static inline U&& extractValueFromNullable(U&& value) { return std::forward<U>(value); }
+};
+
+template<typename T> struct IDLInterface : IDLWrapper<T> { };
+template<typename T> struct IDLCallbackInterface : IDLWrapper<T> { };
+template<typename T> struct IDLCallbackFunction : IDLWrapper<T> { };
+
+template<typename T> struct IDLDictionary : IDLType<T> {
+    using ParameterType = const T&;
+};
+
+template<typename T> struct IDLEnumeration : IDLType<T> { };
+
+template<typename T> struct IDLNullable : IDLType<typename T::NullableType> {
+    using InnerType = T;
+};
+
+template<typename T> struct IDLSequence : IDLType<Vector<typename T::ImplementationType>> {
+    using InnerType = T;
+
+    using ParameterType = const Vector<typename T::ImplementationType>&;
+};
+
+template<typename T> struct IDLFrozenArray : IDLType<Vector<typename T::ImplementationType>> {
+    using InnerType = T;
+
+    using ParameterType = const Vector<typename T::ImplementationType>&;
+};
+
+template<typename K, typename V> struct IDLRecord : IDLType<HashMap<typename K::ImplementationType, typename V::ImplementationType>> {
+    using KeyType = K;
+    using ValueType = V;
+
+    using ParameterType = const HashMap<typename K::ImplementationType, typename V::ImplementationType>&;
+};
+
+template<typename T> struct IDLPromise : IDLType<DOMPromise<T>> {
+    using InnerType = T;
+};
+
+struct IDLError : IDLUnsupportedType { };
+struct IDLDOMException : IDLUnsupportedType { };
+
+template<typename... Ts>
+struct IDLUnion : IDLType<Variant<typename Ts::ImplementationType...>> {
+    using TypeList = brigand::list<Ts...>;
+
+    using ParameterType = const Variant<typename Ts::ImplementationType...>&;
+};
+
+// Non-WebIDL extensions
+
+struct IDLDate : IDLType<double> { 
+    using NullableType = double;
+    static double nullValue() { return std::numeric_limits<double>::quiet_NaN(); }
+    static bool isNullValue(double value) { return std::isnan(value); }
+    static double extractValueFromNullable(double value) { return value; }
+};
+
+struct IDLJSON : IDLType<String> { 
+    using ParameterType = const String&;
+
+    using NullableType = String;
+    static String nullValue() { return String(); }
+    static bool isNullValue(const String& value) { return value.isNull(); }
+    template <typename U> static U&& extractValueFromNullable(U&& value) { return std::forward<U>(value); }
+};
+
+template<typename T> struct IDLSerializedScriptValue : IDLWrapper<T> { };
+template<typename T> struct IDLEventListener : IDLWrapper<T> { };
+template<typename T> struct IDLXPathNSResolver : IDLWrapper<T> { };
+template<typename T> struct IDLIDBKey : IDLWrapper<T> { };
+
+// Non-WebIDL convenience type aliases
+
+using IDLBufferSource = IDLUnion<IDLInterface<JSC::ArrayBufferView>, IDLInterface<JSC::ArrayBuffer>>;
+
+
+// Helper predicates
+
+template<typename T>
+struct IsIDLInterface : public std::integral_constant<bool, WTF::IsTemplate<T, IDLInterface>::value> { };
+
+template<typename T>
+struct IsIDLDictionary : public std::integral_constant<bool, WTF::IsTemplate<T, IDLDictionary>::value> { };
+
+template<typename T>
+struct IsIDLEnumeration : public std::integral_constant<bool, WTF::IsTemplate<T, IDLEnumeration>::value> { };
+
+template<typename T>
+struct IsIDLSequence : public std::integral_constant<bool, WTF::IsTemplate<T, IDLSequence>::value> { };
+
+template<typename T>
+struct IsIDLFrozenArray : public std::integral_constant<bool, WTF::IsTemplate<T, IDLFrozenArray>::value> { };
+
+template<typename T>
+struct IsIDLRecord : public std::integral_constant<bool, WTF::IsTemplate<T, IDLRecord>::value> { };
+
+template<typename T>
+struct IsIDLNumber : public std::integral_constant<bool, WTF::IsBaseOfTemplate<IDLNumber, T>::value> { };
+
+template<typename T>
+struct IsIDLInteger : public std::integral_constant<bool, WTF::IsBaseOfTemplate<IDLInteger, T>::value> { };
+
+} // namespace WebCore

Copied: trunk/Source/WebCore/dom/ActiveDOMCallback.cpp (from rev 210292, trunk/Source/WebCore/bindings/generic/ActiveDOMCallback.cpp) (0 => 210293)


--- trunk/Source/WebCore/dom/ActiveDOMCallback.cpp	                        (rev 0)
+++ trunk/Source/WebCore/dom/ActiveDOMCallback.cpp	2017-01-04 23:04:18 UTC (rev 210293)
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2010. 2012 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "ActiveDOMCallback.h"
+
+#include "ScriptExecutionContext.h"
+
+namespace WebCore {
+
+ActiveDOMCallback::ActiveDOMCallback(ScriptExecutionContext* context)
+    : ContextDestructionObserver(context)
+{
+}
+
+ActiveDOMCallback::~ActiveDOMCallback()
+{
+}
+
+bool ActiveDOMCallback::canInvokeCallback() const
+{
+    ScriptExecutionContext* context = scriptExecutionContext();
+    return context && !context->activeDOMObjectsAreSuspended() && !context->activeDOMObjectsAreStopped();
+}
+
+} // namespace WebCore

Copied: trunk/Source/WebCore/dom/ActiveDOMCallback.h (from rev 210292, trunk/Source/WebCore/bindings/generic/ActiveDOMCallback.h) (0 => 210293)


--- trunk/Source/WebCore/dom/ActiveDOMCallback.h	                        (rev 0)
+++ trunk/Source/WebCore/dom/ActiveDOMCallback.h	2017-01-04 23:04:18 UTC (rev 210293)
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2010, 2012 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#pragma once
+
+#include "ContextDestructionObserver.h"
+
+namespace WebCore {
+
+class ScriptExecutionContext;
+
+// A base class that prevents binding callbacks from executing when
+// active dom objects are stopped or suspended.
+//
+// Should only be created, used, and destroyed on the script execution
+// context thread.
+class ActiveDOMCallback : public ContextDestructionObserver {
+public:
+    ActiveDOMCallback(ScriptExecutionContext* context);
+    virtual ~ActiveDOMCallback();
+
+    bool canInvokeCallback() const;
+};
+
+} // namespace WebCore

Copied: trunk/Source/WebCore/page/RuntimeEnabledFeatures.cpp (from rev 210292, trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp) (0 => 210293)


--- trunk/Source/WebCore/page/RuntimeEnabledFeatures.cpp	                        (rev 0)
+++ trunk/Source/WebCore/page/RuntimeEnabledFeatures.cpp	2017-01-04 23:04:18 UTC (rev 210293)
@@ -0,0 +1,180 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ * Copyright (C) 2013 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "RuntimeEnabledFeatures.h"
+
+#include "DatabaseManager.h"
+#include "MediaPlayer.h"
+#include "WebSocket.h"
+#include <wtf/NeverDestroyed.h>
+
+namespace WebCore {
+
+RuntimeEnabledFeatures::RuntimeEnabledFeatures()
+{
+    reset();
+#if ENABLE(MEDIA_STREAM) && PLATFORM(COCOA)
+    m_isMediaStreamEnabled = false;
+#endif
+}
+
+void RuntimeEnabledFeatures::reset()
+{
+    m_isLocalStorageEnabled = true;
+    m_isSessionStorageEnabled = true;
+    m_isWebkitNotificationsEnabled = false;
+    m_isApplicationCacheEnabled = true;
+    m_isDataTransferItemsEnabled = true;
+    m_isGeolocationEnabled = true;
+    m_isTouchEnabled = true;
+    m_isDeviceMotionEnabled = true;
+    m_isDeviceOrientationEnabled = true;
+    m_isLinkPreloadEnabled = false;
+    m_isLangAttributeAwareFormControlUIEnabled = false;
+    m_isResourceTimingEnabled = false;
+#if ENABLE(INDEXED_DATABASE)
+    m_isIndexedDBEnabled = true;
+#endif
+#if ENABLE(INDEXED_DATABASE_IN_WORKERS)
+    m_isIndexedDBWorkersEnabled = true;
+#endif
+#if ENABLE(WEB_RTC)
+    m_isPeerConnectionEnabled = true;
+#endif
+#if ENABLE(LEGACY_CSS_VENDOR_PREFIXES)
+    m_isLegacyCSSVendorPrefixesEnabled = false;
+#endif
+#if ENABLE(_javascript__I18N_API)
+    m_isJavaScriptI18NAPIEnabled = false;
+#endif
+#if ENABLE(INPUT_TYPE_DATE)
+    m_isInputTypeDateEnabled = true;
+#endif
+#if ENABLE(INPUT_TYPE_DATETIME_INCOMPLETE)
+    m_isInputTypeDateTimeEnabled = false;
+#endif
+#if ENABLE(INPUT_TYPE_DATETIMELOCAL)
+    m_isInputTypeDateTimeLocalEnabled = true;
+#endif
+#if ENABLE(INPUT_TYPE_MONTH)
+    m_isInputTypeMonthEnabled = true;
+#endif
+#if ENABLE(INPUT_TYPE_TIME)
+    m_isInputTypeTimeEnabled = true;
+#endif
+#if ENABLE(INPUT_TYPE_WEEK)
+    m_isInputTypeWeekEnabled = true;
+#endif
+#if ENABLE(CSP_NEXT)
+    m_areExperimentalContentSecurityPolicyFeaturesEnabled = false;
+#endif
+#if ENABLE(FONT_LOAD_EVENTS)
+    m_isFontLoadEventsEnabled = true;
+#endif
+#if ENABLE(CSS_ANIMATIONS_LEVEL_2)
+    m_areAnimationTriggersEnabled = false;
+#endif
+#if ENABLE(WEB_ANIMATIONS)
+    m_areWebAnimationsEnabled = false;
+#endif
+#if ENABLE(CSS_GRID_LAYOUT)
+    m_cssGridLayoutEnabled = true;
+#endif
+#if ENABLE(INTERSECTION_OBSERVER)
+    m_intersectionObserverEnabled = false;
+#endif
+}
+
+RuntimeEnabledFeatures& RuntimeEnabledFeatures::sharedFeatures()
+{
+    static NeverDestroyed<RuntimeEnabledFeatures> runtimeEnabledFeatures;
+
+    return runtimeEnabledFeatures;
+}
+
+#if ENABLE(_javascript__I18N_API)
+bool RuntimeEnabledFeatures::_javascript_I18NAPIEnabled()
+{
+    return m_isJavaScriptI18NAPIEnabled;
+}
+#endif
+
+#if ENABLE(VIDEO)
+bool RuntimeEnabledFeatures::audioEnabled() const
+{
+    return MediaPlayer::isAvailable();
+}
+
+bool RuntimeEnabledFeatures::htmlMediaElementEnabled() const
+{
+    return MediaPlayer::isAvailable();
+}
+
+bool RuntimeEnabledFeatures::htmlAudioElementEnabled() const
+{
+    return MediaPlayer::isAvailable();
+}
+
+bool RuntimeEnabledFeatures::htmlVideoElementEnabled() const
+{
+    return MediaPlayer::isAvailable();
+}
+
+bool RuntimeEnabledFeatures::htmlSourceElementEnabled() const
+{
+    return MediaPlayer::isAvailable();
+}
+
+bool RuntimeEnabledFeatures::mediaControllerEnabled() const
+{
+    return MediaPlayer::isAvailable();
+}
+
+bool RuntimeEnabledFeatures::mediaErrorEnabled() const
+{
+    return MediaPlayer::isAvailable();
+}
+
+bool RuntimeEnabledFeatures::timeRangesEnabled() const
+{
+    return MediaPlayer::isAvailable();
+}
+#endif
+
+#if ENABLE(WEB_SOCKETS)
+bool RuntimeEnabledFeatures::webSocketEnabled() const
+{
+    return WebSocket::isAvailable();
+}
+#endif
+
+} // namespace WebCore

Copied: trunk/Source/WebCore/page/RuntimeEnabledFeatures.h (from rev 210292, trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h) (0 => 210293)


--- trunk/Source/WebCore/page/RuntimeEnabledFeatures.h	                        (rev 0)
+++ trunk/Source/WebCore/page/RuntimeEnabledFeatures.h	2017-01-04 23:04:18 UTC (rev 210293)
@@ -0,0 +1,377 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#pragma once
+
+#include "PlatformExportMacros.h"
+#include <wtf/NeverDestroyed.h>
+
+namespace WebCore {
+
+// A class that stores static enablers for all experimental features. Note that
+// the method names must line up with the _javascript_ method they enable for code
+// generation to work properly.
+
+class RuntimeEnabledFeatures {
+    WTF_MAKE_NONCOPYABLE(RuntimeEnabledFeatures);
+public:
+    void setLocalStorageEnabled(bool isEnabled) { m_isLocalStorageEnabled = isEnabled; }
+    bool localStorageEnabled() const { return m_isLocalStorageEnabled; }
+
+    void setSessionStorageEnabled(bool isEnabled) { m_isSessionStorageEnabled = isEnabled; }
+    bool sessionStorageEnabled() const { return m_isSessionStorageEnabled; }
+
+    void setWebkitNotificationsEnabled(bool isEnabled) { m_isWebkitNotificationsEnabled = isEnabled; }
+    bool webkitNotificationsEnabled() const { return m_isWebkitNotificationsEnabled; }
+
+    void setApplicationCacheEnabled(bool isEnabled) { m_isApplicationCacheEnabled = isEnabled; }
+    bool applicationCacheEnabled() const { return m_isApplicationCacheEnabled; }
+
+    void setDataTransferItemsEnabled(bool isEnabled) { m_isDataTransferItemsEnabled = isEnabled; }
+    bool dataTransferItemsEnabled() const { return m_isDataTransferItemsEnabled; }
+
+    void setDOMIteratorEnabled(bool isEnabled) { m_isDOMIteratorEnabled = isEnabled; }
+    bool domIteratorEnabled() const { return m_isDOMIteratorEnabled; }
+
+    void setGeolocationEnabled(bool isEnabled) { m_isGeolocationEnabled = isEnabled; }
+    bool geolocationEnabled() const { return m_isGeolocationEnabled; }
+
+#if ENABLE(INDEXED_DATABASE)
+    void setWebkitIndexedDBEnabled(bool isEnabled) { m_isIndexedDBEnabled = isEnabled; }
+    bool webkitIndexedDBEnabled() const { return m_isIndexedDBEnabled; }
+    bool indexedDBEnabled() const { return m_isIndexedDBEnabled; }
+#endif
+
+#if ENABLE(INDEXED_DATABASE_IN_WORKERS)
+    void setIndexedDBWorkersEnabled(bool isEnabled) { m_isIndexedDBWorkersEnabled = isEnabled; }
+    bool indexedDBWorkersEnabled() const { return m_isIndexedDBWorkersEnabled; }
+#endif
+
+#if ENABLE(FONT_LOAD_EVENTS)
+    void setFontLoadEventsEnabled(bool isEnabled) { m_isFontLoadEventsEnabled = isEnabled; }
+    bool fontLoadEventsEnabled() const { return m_isFontLoadEventsEnabled; }
+#else
+    void setFontLoadEventsEnabled(bool) { }
+    bool fontLoadEventsEnabled() { return false; }
+#endif
+
+#if ENABLE(VIDEO)
+    bool audioEnabled() const;
+    bool htmlMediaElementEnabled() const;
+    bool htmlAudioElementEnabled() const;
+    bool htmlVideoElementEnabled() const;
+    bool htmlSourceElementEnabled() const;
+    bool mediaControllerEnabled() const;
+    bool mediaErrorEnabled() const;
+    bool timeRangesEnabled() const;
+#endif
+
+#if ENABLE(WEB_SOCKETS)
+    bool webSocketEnabled() const;
+#endif
+
+#if ENABLE(TOUCH_EVENTS)
+    bool touchEnabled() const { return m_isTouchEnabled; }
+    void setTouchEnabled(bool isEnabled) { m_isTouchEnabled = isEnabled; }
+#endif
+
+    void setDeviceMotionEnabled(bool isEnabled) { m_isDeviceMotionEnabled = isEnabled; }
+    bool deviceMotionEnabled() const { return m_isDeviceMotionEnabled; }
+    bool deviceMotionEventEnabled() const { return m_isDeviceMotionEnabled; }
+    bool ondevicemotionEnabled() const { return m_isDeviceMotionEnabled; }
+
+    void setDeviceOrientationEnabled(bool isEnabled) { m_isDeviceOrientationEnabled = isEnabled; }
+    bool deviceOrientationEnabled() const { return m_isDeviceOrientationEnabled; }
+    bool deviceOrientationEventEnabled() const { return m_isDeviceOrientationEnabled; }
+    bool ondeviceorientationEnabled() const { return m_isDeviceOrientationEnabled; }
+
+    void setLinkPreloadEnabled(bool isEnabled) { m_isLinkPreloadEnabled = isEnabled; }
+    bool linkPreloadEnabled() const { return m_isLinkPreloadEnabled; }
+
+#if ENABLE(_javascript__I18N_API)
+    bool _javascript_I18NAPIEnabled() const;
+    void setJavaScriptI18NAPIEnabled(bool isEnabled) { m_isJavaScriptI18NAPIEnabled = isEnabled; }
+#endif
+
+#if ENABLE(MEDIA_STREAM)
+    bool mediaStreamEnabled() const { return m_isMediaStreamEnabled; }
+    void setMediaStreamEnabled(bool isEnabled) { m_isMediaStreamEnabled = isEnabled; }
+    bool webkitGetUserMediaEnabled() const { return m_isMediaStreamEnabled; }
+    bool webkitMediaStreamEnabled() const { return m_isMediaStreamEnabled; }
+#endif
+#if ENABLE(WEB_RTC)
+    bool peerConnectionEnabled() const { return m_isMediaStreamEnabled && m_isPeerConnectionEnabled; }
+    void setPeerConnectionEnabled(bool isEnabled) { m_isPeerConnectionEnabled = isEnabled; }
+    bool webkitRTCPeerConnectionEnabled() const { return peerConnectionEnabled(); }
+#endif
+
+#if ENABLE(LEGACY_CSS_VENDOR_PREFIXES)
+    void setLegacyCSSVendorPrefixesEnabled(bool isEnabled) { m_isLegacyCSSVendorPrefixesEnabled = isEnabled; }
+    bool legacyCSSVendorPrefixesEnabled() const { return m_isLegacyCSSVendorPrefixesEnabled; }
+#endif
+
+#if ENABLE(INPUT_TYPE_DATE)
+    bool inputTypeDateEnabled() const { return m_isInputTypeDateEnabled; }
+    void setInputTypeDateEnabled(bool isEnabled) { m_isInputTypeDateEnabled = isEnabled; }
+#endif
+
+#if ENABLE(INPUT_TYPE_DATETIME_INCOMPLETE)
+    bool inputTypeDateTimeEnabled() const { return m_isInputTypeDateTimeEnabled; }
+    void setInputTypeDateTimeEnabled(bool isEnabled) { m_isInputTypeDateTimeEnabled = isEnabled; }
+#endif
+
+#if ENABLE(INPUT_TYPE_DATETIMELOCAL)
+    bool inputTypeDateTimeLocalEnabled() const { return m_isInputTypeDateTimeLocalEnabled; }
+    void setInputTypeDateTimeLocalEnabled(bool isEnabled) { m_isInputTypeDateTimeLocalEnabled = isEnabled; }
+#endif
+
+#if ENABLE(INPUT_TYPE_MONTH)
+    bool inputTypeMonthEnabled() const { return m_isInputTypeMonthEnabled; }
+    void setInputTypeMonthEnabled(bool isEnabled) { m_isInputTypeMonthEnabled = isEnabled; }
+#endif
+
+#if ENABLE(INPUT_TYPE_TIME)
+    bool inputTypeTimeEnabled() const { return m_isInputTypeTimeEnabled; }
+    void setInputTypeTimeEnabled(bool isEnabled) { m_isInputTypeTimeEnabled = isEnabled; }
+#endif
+
+#if ENABLE(INPUT_TYPE_WEEK)
+    bool inputTypeWeekEnabled() const { return m_isInputTypeWeekEnabled; }
+    void setInputTypeWeekEnabled(bool isEnabled) { m_isInputTypeWeekEnabled = isEnabled; }
+#endif
+
+#if ENABLE(CSP_NEXT)
+    bool experimentalContentSecurityPolicyFeaturesEnabled() const { return m_areExperimentalContentSecurityPolicyFeaturesEnabled; }
+    void setExperimentalContentSecurityPolicyFeaturesEnabled(bool isEnabled) { m_areExperimentalContentSecurityPolicyFeaturesEnabled = isEnabled; }
+#endif
+
+    bool langAttributeAwareFormControlUIEnabled() const { return m_isLangAttributeAwareFormControlUIEnabled; }
+    // The lang attribute support is incomplete and should only be turned on for tests.
+    void setLangAttributeAwareFormControlUIEnabled(bool isEnabled) { m_isLangAttributeAwareFormControlUIEnabled = isEnabled; }
+
+    void setResourceTimingEnabled(bool isEnabled) { m_isResourceTimingEnabled = isEnabled; }
+    bool resourceTimingEnabled() const { return m_isResourceTimingEnabled; }
+
+#if ENABLE(GAMEPAD)
+    void setGamepadsEnabled(bool areEnabled) { m_areGamepadsEnabled = areEnabled; }
+    bool gamepadsEnabled() const { return m_areGamepadsEnabled; }
+#endif
+
+#if ENABLE(CSS_ANIMATIONS_LEVEL_2)
+    void setAnimationTriggersEnabled(bool areEnabled) { m_areAnimationTriggersEnabled = areEnabled; }
+    bool animationTriggersEnabled() const { return m_areAnimationTriggersEnabled; }
+#endif
+
+#if ENABLE(WEB_ANIMATIONS)
+    void setWebAnimationsEnabled(bool areEnabled) { m_areWebAnimationsEnabled = areEnabled; }
+    bool webAnimationsEnabled() const { return m_areWebAnimationsEnabled; }
+#endif
+
+    void setShadowDOMEnabled(bool isEnabled) { m_isShadowDOMEnabled = isEnabled; }
+    bool shadowDOMEnabled() const { return m_isShadowDOMEnabled; }
+
+    void setInputEventsEnabled(bool isEnabled) { m_inputEventsEnabled = isEnabled; }
+    bool inputEventsEnabled() const { return m_inputEventsEnabled; }
+
+    void setInteractiveFormValidationEnabled(bool isEnabled) { m_isInteractiveFormValidationEnabled = isEnabled; }
+    bool interactiveFormValidationEnabled() const { return m_isInteractiveFormValidationEnabled; }
+
+    void setCustomElementsEnabled(bool areEnabled) { m_areCustomElementsEnabled = areEnabled; }
+    bool customElementsEnabled() const { return m_areCustomElementsEnabled; }
+
+#if ENABLE(WEBGL2)
+    void setWebGL2Enabled(bool isEnabled) { m_isWebGL2Enabled = isEnabled; }
+    bool webGL2Enabled() const { return m_isWebGL2Enabled; }
+#endif
+
+#if ENABLE(FETCH_API)
+    void setFetchAPIEnabled(bool isEnabled) { m_isFetchAPIEnabled = isEnabled; }
+    bool fetchAPIEnabled() const { return m_isFetchAPIEnabled; }
+#endif
+
+#if ENABLE(DOWNLOAD_ATTRIBUTE)
+    void setDownloadAttributeEnabled(bool isEnabled) { m_isDownloadAttributeEnabled = isEnabled; }
+    bool downloadAttributeEnabled() const { return m_isDownloadAttributeEnabled; }
+#endif
+
+#if ENABLE(CSS_GRID_LAYOUT)
+    void setCSSGridLayoutEnabled(bool isEnabled) { m_cssGridLayoutEnabled = isEnabled; }
+    bool isCSSGridLayoutEnabled() const { return m_cssGridLayoutEnabled; }
+#endif
+
+#if ENABLE(INTERSECTION_OBSERVER)
+    void setIntersectionObserverEnabled(bool isEnabled) { m_intersectionObserverEnabled = isEnabled; }
+    bool intersectionObserverEnabled() const { return m_intersectionObserverEnabled; }
+#endif
+
+    void setModernMediaControlsEnabled(bool areEnabled) { m_areModernMediaControlsEnabled = areEnabled; }
+    bool modernMediaControlsEnabled() const { return m_areModernMediaControlsEnabled; }
+
+#if ENABLE(ENCRYPTED_MEDIA)
+    void setEncryptedMediaAPIEnabled(bool isEnabled) { m_encryptedMediaAPIEnabled = isEnabled; }
+    bool encryptedMediaAPIEnabled() const { return m_encryptedMediaAPIEnabled; }
+#endif
+
+#if ENABLE(SUBTLE_CRYPTO)
+    void setSubtleCryptoEnabled(bool isEnabled) { m_isSubtleCryptoEnabled = isEnabled; }
+    bool subtleCryptoEnabled() const { return m_isSubtleCryptoEnabled; }
+#endif
+
+    WEBCORE_EXPORT static RuntimeEnabledFeatures& sharedFeatures();
+
+    WEBCORE_EXPORT void reset();
+
+private:
+    // Never instantiate.
+    RuntimeEnabledFeatures();
+
+    bool m_areModernMediaControlsEnabled { false };
+    bool m_isLocalStorageEnabled;
+    bool m_isSessionStorageEnabled;
+    bool m_isWebkitNotificationsEnabled;
+    bool m_isApplicationCacheEnabled;
+    bool m_isDataTransferItemsEnabled;
+    bool m_isDOMIteratorEnabled { true };
+    bool m_isGeolocationEnabled;
+    bool m_isTouchEnabled;
+    bool m_isDeviceMotionEnabled;
+    bool m_isDeviceOrientationEnabled;
+    bool m_isLinkPreloadEnabled;
+    bool m_isLangAttributeAwareFormControlUIEnabled;
+    bool m_isResourceTimingEnabled;
+
+#if ENABLE(INDEXED_DATABASE)
+    bool m_isIndexedDBEnabled;
+#endif
+
+#if ENABLE(INDEXED_DATABASE_IN_WORKERS)
+    bool m_isIndexedDBWorkersEnabled;
+#endif
+
+#if ENABLE(_javascript__I18N_API)
+    bool m_isJavaScriptI18NAPIEnabled;
+#endif
+
+#if ENABLE(MEDIA_STREAM)
+    bool m_isMediaStreamEnabled { true };
+#endif
+#if ENABLE(WEB_RTC)
+    bool m_isPeerConnectionEnabled;
+#endif
+
+#if ENABLE(LEGACY_CSS_VENDOR_PREFIXES)
+    bool m_isLegacyCSSVendorPrefixesEnabled;
+#endif
+
+#if ENABLE(INPUT_TYPE_DATE)
+    bool m_isInputTypeDateEnabled;
+#endif
+
+#if ENABLE(INPUT_TYPE_DATETIME_INCOMPLETE)
+    bool m_isInputTypeDateTimeEnabled;
+#endif
+
+#if ENABLE(INPUT_TYPE_DATETIMELOCAL)
+    bool m_isInputTypeDateTimeLocalEnabled;
+#endif
+
+#if ENABLE(INPUT_TYPE_MONTH)
+    bool m_isInputTypeMonthEnabled;
+#endif
+
+#if ENABLE(INPUT_TYPE_TIME)
+    bool m_isInputTypeTimeEnabled;
+#endif
+
+#if ENABLE(INPUT_TYPE_WEEK)
+    bool m_isInputTypeWeekEnabled;
+#endif
+
+#if ENABLE(CSP_NEXT)
+    bool m_areExperimentalContentSecurityPolicyFeaturesEnabled;
+#endif
+
+#if ENABLE(FONT_LOAD_EVENTS)
+    bool m_isFontLoadEventsEnabled;
+#endif
+
+#if ENABLE(GAMEPAD)
+    bool m_areGamepadsEnabled { false };
+#endif
+
+#if ENABLE(CSS_ANIMATIONS_LEVEL_2)
+    bool m_areAnimationTriggersEnabled;
+#endif
+
+#if ENABLE(WEB_ANIMATIONS)
+    bool m_areWebAnimationsEnabled;
+#endif
+    
+    bool m_isShadowDOMEnabled;
+
+    bool m_inputEventsEnabled;
+
+    bool m_isInteractiveFormValidationEnabled { false };
+
+    bool m_areCustomElementsEnabled { true };
+
+#if ENABLE(WEBGL2)
+    bool m_isWebGL2Enabled;
+#endif
+
+#if ENABLE(FETCH_API)
+    bool m_isFetchAPIEnabled { false };
+#endif
+
+#if ENABLE(DOWNLOAD_ATTRIBUTE)
+    bool m_isDownloadAttributeEnabled { false };
+#endif
+
+#if ENABLE(CSS_GRID_LAYOUT)
+    bool m_cssGridLayoutEnabled;
+#endif
+
+#if ENABLE(ENCRYPTED_MEDIA)
+    bool m_encryptedMediaAPIEnabled { false };
+#endif
+
+#if ENABLE(INTERSECTION_OBSERVER)
+    bool m_intersectionObserverEnabled { false };
+#endif
+
+#if ENABLE(SUBTLE_CRYPTO)
+    bool m_isSubtleCryptoEnabled;
+#endif
+
+    friend class WTF::NeverDestroyed<RuntimeEnabledFeatures>;
+};
+
+} // namespace WebCore
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to