<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[285376] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/285376">285376</a></dd>
<dt>Author</dt> <dd>mmaxfield@apple.com</dd>
<dt>Date</dt> <dd>2021-11-06 13:50:48 -0700 (Sat, 06 Nov 2021)</dd>
</dl>

<h3>Log Message</h3>
<pre>[WebGPU] Bindings part 1: Bring back Adapter/Device bindings code
https://bugs.webkit.org/show_bug.cgi?id=232550

Reviewed by Alex Christensen.

Source/WebCore:

This is the first chunk of bindings code, brought back from <a href="http://trac.webkit.org/projects/webkit/changeset/280467">r280467</a>.
This chunk includes the Adapter and Device object. The Device object
has no methods inside it yet - those will come later.

No new tests because there is no behavior change yet.

* CMakeLists.txt:
* DerivedSources-input.xcfilelist:
* DerivedSources-output.xcfilelist:
* DerivedSources.make:
* Modules/WebGPU/GPU.cpp: Added.
(WebCore::GPU::requestAdapter):
* Modules/WebGPU/GPU.h: Added.
(WebCore::GPU::create):
* Modules/WebGPU/GPU.idl: Added.
* Modules/WebGPU/GPUAdapter.cpp: Added.
(WebCore::GPUAdapter::name const):
(WebCore::GPUAdapter::features const):
(WebCore::GPUAdapter::limits const):
(WebCore::GPUAdapter::isFallbackAdapter const):
(WebCore::GPUAdapter::requestDevice):
* Modules/WebGPU/GPUAdapter.h: Added.
(WebCore::GPUAdapter::create):
* Modules/WebGPU/GPUAdapter.idl: Added.
* Modules/WebGPU/GPUDevice.cpp: Added.
(WebCore::GPUDevice::label const):
(WebCore::GPUDevice::setLabel):
(WebCore::GPUDevice::features const):
(WebCore::GPUDevice::limits const):
* Modules/WebGPU/GPUDevice.h: Added.
(WebCore::GPUDevice::create):
(WebCore::GPUDevice::GPUDevice):
* Modules/WebGPU/GPUDevice.idl: Added.
* Modules/WebGPU/GPUDeviceDescriptor.h: Added.
* Modules/WebGPU/GPUDeviceDescriptor.idl: Added.
* Modules/WebGPU/GPUFeatureName.h: Added.
* Modules/WebGPU/GPUFeatureName.idl: Added.
* Modules/WebGPU/GPUObjectBase.idl: Added.
* Modules/WebGPU/GPUObjectDescriptorBase.h: Added.
* Modules/WebGPU/GPUObjectDescriptorBase.idl: Added.
* Modules/WebGPU/GPUPowerPreference.h: Added.
* Modules/WebGPU/GPUPowerPreference.idl: Added.
* Modules/WebGPU/GPUPredefinedColorSpace.h: Added.
* Modules/WebGPU/GPUPredefinedColorSpace.idl: Added.
* Modules/WebGPU/GPURequestAdapterOptions.h: Added.
* Modules/WebGPU/GPURequestAdapterOptions.idl: Added.
* Modules/WebGPU/GPUSupportedFeatures.cpp: Added.
(WebCore::GPUSupportedFeatures::initializeSetLike const):
* Modules/WebGPU/GPUSupportedFeatures.h: Added.
(WebCore::GPUSupportedFeatures::create):
* Modules/WebGPU/GPUSupportedFeatures.idl: Added.
* Modules/WebGPU/GPUSupportedLimits.cpp: Added.
(WebCore::GPUSupportedLimits::maxTextureDimension1D const):
(WebCore::GPUSupportedLimits::maxTextureDimension2D const):
(WebCore::GPUSupportedLimits::maxTextureDimension3D const):
(WebCore::GPUSupportedLimits::maxTextureArrayLayers const):
(WebCore::GPUSupportedLimits::maxBindGroups const):
(WebCore::GPUSupportedLimits::maxDynamicUniformBuffersPerPipelineLayout const):
(WebCore::GPUSupportedLimits::maxDynamicStorageBuffersPerPipelineLayout const):
(WebCore::GPUSupportedLimits::maxSampledTexturesPerShaderStage const):
(WebCore::GPUSupportedLimits::maxSamplersPerShaderStage const):
(WebCore::GPUSupportedLimits::maxStorageBuffersPerShaderStage const):
(WebCore::GPUSupportedLimits::maxStorageTexturesPerShaderStage const):
(WebCore::GPUSupportedLimits::maxUniformBuffersPerShaderStage const):
(WebCore::GPUSupportedLimits::maxUniformBufferBindingSize const):
(WebCore::GPUSupportedLimits::maxStorageBufferBindingSize const):
(WebCore::GPUSupportedLimits::minUniformBufferOffsetAlignment const):
(WebCore::GPUSupportedLimits::minStorageBufferOffsetAlignment const):
(WebCore::GPUSupportedLimits::maxVertexBuffers const):
(WebCore::GPUSupportedLimits::maxVertexAttributes const):
(WebCore::GPUSupportedLimits::maxVertexBufferArrayStride const):
(WebCore::GPUSupportedLimits::maxInterStageShaderComponents const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupStorageSize const):
(WebCore::GPUSupportedLimits::maxComputeInvocationsPerWorkgroup const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupSizeX const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupSizeY const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupSizeZ const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupsPerDimension const):
* Modules/WebGPU/GPUSupportedLimits.h: Added.
(WebCore::GPUSupportedLimits::create):
* Modules/WebGPU/GPUSupportedLimits.idl: Added.
* Modules/WebGPU/NavigatorGPU.idl: Added.
* Modules/applepay/PaymentCoordinator.cpp:
* Modules/mediasource/SourceBuffer.h:
* Modules/webauthn/PublicKeyCredentialRequestOptions.h:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:
* bindings/scripts/CodeGenerator.pm:
(ProcessDocument):
* dom/EventTargetFactory.in:
* page/Navigator.idl:
* page/NavigatorBase.cpp:
(WebCore::NavigatorBase::NavigatorBase):
* page/NavigatorBase.h:
(WebCore::NavigatorBase::gpu):
* page/WorkerNavigator.idl:

Source/WTF:

* Scripts/Preferences/WebPreferences.yaml:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFScriptsPreferencesWebPreferencesyaml">trunk/Source/WTF/Scripts/Preferences/WebPreferences.yaml</a></li>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreDerivedSourcesinputxcfilelist">trunk/Source/WebCore/DerivedSources-input.xcfilelist</a></li>
<li><a href="#trunkSourceWebCoreDerivedSourcesoutputxcfilelist">trunk/Source/WebCore/DerivedSources-output.xcfilelist</a></li>
<li><a href="#trunkSourceWebCoreDerivedSourcesmake">trunk/Source/WebCore/DerivedSources.make</a></li>
<li><a href="#trunkSourceWebCoreModulesapplepayPaymentCoordinatorcpp">trunk/Source/WebCore/Modules/applepay/PaymentCoordinator.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediasourceSourceBufferh">trunk/Source/WebCore/Modules/mediasource/SourceBuffer.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebauthnPublicKeyCredentialRequestOptionsh">trunk/Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.h</a></li>
<li><a href="#trunkSourceWebCoreSourcestxt">trunk/Source/WebCore/Sources.txt</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorebindingsjsWebCoreBuiltinNamesh">trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorpm">trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm</a></li>
<li><a href="#trunkSourceWebCoredomEventTargetFactoryin">trunk/Source/WebCore/dom/EventTargetFactory.in</a></li>
<li><a href="#trunkSourceWebCorepageNavigatoridl">trunk/Source/WebCore/page/Navigator.idl</a></li>
<li><a href="#trunkSourceWebCorepageNavigatorBasecpp">trunk/Source/WebCore/page/NavigatorBase.cpp</a></li>
<li><a href="#trunkSourceWebCorepageNavigatorBaseh">trunk/Source/WebCore/page/NavigatorBase.h</a></li>
<li><a href="#trunkSourceWebCorepageWorkerNavigatoridl">trunk/Source/WebCore/page/WorkerNavigator.idl</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li>trunk/Source/WebCore/Modules/WebGPU/</li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUcpp">trunk/Source/WebCore/Modules/WebGPU/GPU.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUh">trunk/Source/WebCore/Modules/WebGPU/GPU.h</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUidl">trunk/Source/WebCore/Modules/WebGPU/GPU.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUAdaptercpp">trunk/Source/WebCore/Modules/WebGPU/GPUAdapter.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUAdapterh">trunk/Source/WebCore/Modules/WebGPU/GPUAdapter.h</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUAdapteridl">trunk/Source/WebCore/Modules/WebGPU/GPUAdapter.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUDevicecpp">trunk/Source/WebCore/Modules/WebGPU/GPUDevice.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUDeviceh">trunk/Source/WebCore/Modules/WebGPU/GPUDevice.h</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUDeviceidl">trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUDeviceDescriptorh">trunk/Source/WebCore/Modules/WebGPU/GPUDeviceDescriptor.h</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUDeviceDescriptoridl">trunk/Source/WebCore/Modules/WebGPU/GPUDeviceDescriptor.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUFeatureNameh">trunk/Source/WebCore/Modules/WebGPU/GPUFeatureName.h</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUFeatureNameidl">trunk/Source/WebCore/Modules/WebGPU/GPUFeatureName.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUObjectBaseidl">trunk/Source/WebCore/Modules/WebGPU/GPUObjectBase.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUObjectDescriptorBaseh">trunk/Source/WebCore/Modules/WebGPU/GPUObjectDescriptorBase.h</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUObjectDescriptorBaseidl">trunk/Source/WebCore/Modules/WebGPU/GPUObjectDescriptorBase.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUPowerPreferenceh">trunk/Source/WebCore/Modules/WebGPU/GPUPowerPreference.h</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUPowerPreferenceidl">trunk/Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUPredefinedColorSpaceh">trunk/Source/WebCore/Modules/WebGPU/GPUPredefinedColorSpace.h</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUPredefinedColorSpaceidl">trunk/Source/WebCore/Modules/WebGPU/GPUPredefinedColorSpace.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPURequestAdapterOptionsh">trunk/Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.h</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPURequestAdapterOptionsidl">trunk/Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUSupportedFeaturescpp">trunk/Source/WebCore/Modules/WebGPU/GPUSupportedFeatures.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUSupportedFeaturesh">trunk/Source/WebCore/Modules/WebGPU/GPUSupportedFeatures.h</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUSupportedFeaturesidl">trunk/Source/WebCore/Modules/WebGPU/GPUSupportedFeatures.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUSupportedLimitscpp">trunk/Source/WebCore/Modules/WebGPU/GPUSupportedLimits.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUSupportedLimitsh">trunk/Source/WebCore/Modules/WebGPU/GPUSupportedLimits.h</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUGPUSupportedLimitsidl">trunk/Source/WebCore/Modules/WebGPU/GPUSupportedLimits.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesWebGPUNavigatorGPUidl">trunk/Source/WebCore/Modules/WebGPU/NavigatorGPU.idl</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog       2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WTF/ChangeLog  2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -1,3 +1,12 @@
</span><ins>+2021-11-04  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        [WebGPU] Bindings part 1: Bring back Adapter/Device bindings code
+        https://bugs.webkit.org/show_bug.cgi?id=232550
+
+        Reviewed by Alex Christensen.
+
+        * Scripts/Preferences/WebPreferences.yaml:
+
</ins><span class="cx"> 2021-11-05  Alex Christensen  <achristensen@webkit.org>
</span><span class="cx"> 
</span><span class="cx">         Restructure WKContentRuleList Action storage during compilation and interpretation
</span></span></pre></div>
<a id="trunkSourceWTFScriptsPreferencesWebPreferencesyaml"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/Scripts/Preferences/WebPreferences.yaml (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/Scripts/Preferences/WebPreferences.yaml 2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WTF/Scripts/Preferences/WebPreferences.yaml    2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -2536,6 +2536,16 @@
</span><span class="cx">     WebCore:
</span><span class="cx">       default: false
</span><span class="cx"> 
</span><ins>+WebGPU:
+  type: bool
+  defaultValue:
+    WebKitLegacy:
+      default: false
+    WebKit:
+      default: false
+    WebCore:
+      default: false
+
</ins><span class="cx"> WebSecurityEnabled:
</span><span class="cx">   type: bool
</span><span class="cx">   inspectorOverride: true
</span></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt      2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WebCore/CMakeLists.txt 2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -18,6 +18,7 @@
</span><span class="cx">     "${CMAKE_BINARY_DIR}"
</span><span class="cx">     "${WebCore_DERIVED_SOURCES_DIR}"
</span><span class="cx">     "${WEBCORE_DIR}"
</span><ins>+    "${WEBCORE_DIR}/Modules/WebGPU"
</ins><span class="cx">     "${WEBCORE_DIR}/Modules/airplay"
</span><span class="cx">     "${WEBCORE_DIR}/Modules/applepay"
</span><span class="cx">     "${WEBCORE_DIR}/Modules/applepay/paymentrequest"
</span><span class="lines">@@ -191,6 +192,7 @@
</span><span class="cx">     workers
</span><span class="cx">     xml
</span><span class="cx"> 
</span><ins>+    Modules/WebGPU
</ins><span class="cx">     Modules/airplay
</span><span class="cx">     Modules/cache
</span><span class="cx">     Modules/credentialmanagement
</span><span class="lines">@@ -1465,6 +1467,22 @@
</span><span class="cx">     Modules/webxr/XRWebGLLayerInit.idl
</span><span class="cx"> )
</span><span class="cx"> 
</span><ins>+list(APPEND WebCore_NON_SVG_IDL_FILES
+    Modules/WebGPU/GPU.idl
+    Modules/WebGPU/GPUAdapter.idl
+    Modules/WebGPU/GPUDevice.idl
+    Modules/WebGPU/GPUDeviceDescriptor.idl
+    Modules/WebGPU/GPUFeatureName.idl
+    Modules/WebGPU/GPUObjectBase.idl
+    Modules/WebGPU/GPUObjectDescriptorBase.idl
+    Modules/WebGPU/GPUPowerPreference.idl
+    Modules/WebGPU/GPUPredefinedColorSpace.idl
+    Modules/WebGPU/GPURequestAdapterOptions.idl
+    Modules/WebGPU/GPUSupportedFeatures.idl
+    Modules/WebGPU/GPUSupportedLimits.idl
+    Modules/WebGPU/NavigatorGPU.idl
+)
+
</ins><span class="cx"> set(WebCore_IDL_FILES
</span><span class="cx">     ${WebCore_NON_SVG_IDL_FILES}
</span><span class="cx">     ${WebCore_SVG_IDL_FILES}
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WebCore/ChangeLog      2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -1,3 +1,108 @@
</span><ins>+2021-11-04  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        [WebGPU] Bindings part 1: Bring back Adapter/Device bindings code
+        https://bugs.webkit.org/show_bug.cgi?id=232550
+
+        Reviewed by Alex Christensen.
+
+        This is the first chunk of bindings code, brought back from r280467.
+        This chunk includes the Adapter and Device object. The Device object
+        has no methods inside it yet - those will come later.
+
+        No new tests because there is no behavior change yet.
+
+        * CMakeLists.txt:
+        * DerivedSources-input.xcfilelist:
+        * DerivedSources-output.xcfilelist:
+        * DerivedSources.make:
+        * Modules/WebGPU/GPU.cpp: Added.
+        (WebCore::GPU::requestAdapter):
+        * Modules/WebGPU/GPU.h: Added.
+        (WebCore::GPU::create):
+        * Modules/WebGPU/GPU.idl: Added.
+        * Modules/WebGPU/GPUAdapter.cpp: Added.
+        (WebCore::GPUAdapter::name const):
+        (WebCore::GPUAdapter::features const):
+        (WebCore::GPUAdapter::limits const):
+        (WebCore::GPUAdapter::isFallbackAdapter const):
+        (WebCore::GPUAdapter::requestDevice):
+        * Modules/WebGPU/GPUAdapter.h: Added.
+        (WebCore::GPUAdapter::create):
+        * Modules/WebGPU/GPUAdapter.idl: Added.
+        * Modules/WebGPU/GPUDevice.cpp: Added.
+        (WebCore::GPUDevice::label const):
+        (WebCore::GPUDevice::setLabel):
+        (WebCore::GPUDevice::features const):
+        (WebCore::GPUDevice::limits const):
+        * Modules/WebGPU/GPUDevice.h: Added.
+        (WebCore::GPUDevice::create):
+        (WebCore::GPUDevice::GPUDevice):
+        * Modules/WebGPU/GPUDevice.idl: Added.
+        * Modules/WebGPU/GPUDeviceDescriptor.h: Added.
+        * Modules/WebGPU/GPUDeviceDescriptor.idl: Added.
+        * Modules/WebGPU/GPUFeatureName.h: Added.
+        * Modules/WebGPU/GPUFeatureName.idl: Added.
+        * Modules/WebGPU/GPUObjectBase.idl: Added.
+        * Modules/WebGPU/GPUObjectDescriptorBase.h: Added.
+        * Modules/WebGPU/GPUObjectDescriptorBase.idl: Added.
+        * Modules/WebGPU/GPUPowerPreference.h: Added.
+        * Modules/WebGPU/GPUPowerPreference.idl: Added.
+        * Modules/WebGPU/GPUPredefinedColorSpace.h: Added.
+        * Modules/WebGPU/GPUPredefinedColorSpace.idl: Added.
+        * Modules/WebGPU/GPURequestAdapterOptions.h: Added.
+        * Modules/WebGPU/GPURequestAdapterOptions.idl: Added.
+        * Modules/WebGPU/GPUSupportedFeatures.cpp: Added.
+        (WebCore::GPUSupportedFeatures::initializeSetLike const):
+        * Modules/WebGPU/GPUSupportedFeatures.h: Added.
+        (WebCore::GPUSupportedFeatures::create):
+        * Modules/WebGPU/GPUSupportedFeatures.idl: Added.
+        * Modules/WebGPU/GPUSupportedLimits.cpp: Added.
+        (WebCore::GPUSupportedLimits::maxTextureDimension1D const):
+        (WebCore::GPUSupportedLimits::maxTextureDimension2D const):
+        (WebCore::GPUSupportedLimits::maxTextureDimension3D const):
+        (WebCore::GPUSupportedLimits::maxTextureArrayLayers const):
+        (WebCore::GPUSupportedLimits::maxBindGroups const):
+        (WebCore::GPUSupportedLimits::maxDynamicUniformBuffersPerPipelineLayout const):
+        (WebCore::GPUSupportedLimits::maxDynamicStorageBuffersPerPipelineLayout const):
+        (WebCore::GPUSupportedLimits::maxSampledTexturesPerShaderStage const):
+        (WebCore::GPUSupportedLimits::maxSamplersPerShaderStage const):
+        (WebCore::GPUSupportedLimits::maxStorageBuffersPerShaderStage const):
+        (WebCore::GPUSupportedLimits::maxStorageTexturesPerShaderStage const):
+        (WebCore::GPUSupportedLimits::maxUniformBuffersPerShaderStage const):
+        (WebCore::GPUSupportedLimits::maxUniformBufferBindingSize const):
+        (WebCore::GPUSupportedLimits::maxStorageBufferBindingSize const):
+        (WebCore::GPUSupportedLimits::minUniformBufferOffsetAlignment const):
+        (WebCore::GPUSupportedLimits::minStorageBufferOffsetAlignment const):
+        (WebCore::GPUSupportedLimits::maxVertexBuffers const):
+        (WebCore::GPUSupportedLimits::maxVertexAttributes const):
+        (WebCore::GPUSupportedLimits::maxVertexBufferArrayStride const):
+        (WebCore::GPUSupportedLimits::maxInterStageShaderComponents const):
+        (WebCore::GPUSupportedLimits::maxComputeWorkgroupStorageSize const):
+        (WebCore::GPUSupportedLimits::maxComputeInvocationsPerWorkgroup const):
+        (WebCore::GPUSupportedLimits::maxComputeWorkgroupSizeX const):
+        (WebCore::GPUSupportedLimits::maxComputeWorkgroupSizeY const):
+        (WebCore::GPUSupportedLimits::maxComputeWorkgroupSizeZ const):
+        (WebCore::GPUSupportedLimits::maxComputeWorkgroupsPerDimension const):
+        * Modules/WebGPU/GPUSupportedLimits.h: Added.
+        (WebCore::GPUSupportedLimits::create):
+        * Modules/WebGPU/GPUSupportedLimits.idl: Added.
+        * Modules/WebGPU/NavigatorGPU.idl: Added.
+        * Modules/applepay/PaymentCoordinator.cpp:
+        * Modules/mediasource/SourceBuffer.h:
+        * Modules/webauthn/PublicKeyCredentialRequestOptions.h:
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/WebCoreBuiltinNames.h:
+        * bindings/scripts/CodeGenerator.pm:
+        (ProcessDocument):
+        * dom/EventTargetFactory.in:
+        * page/Navigator.idl:
+        * page/NavigatorBase.cpp:
+        (WebCore::NavigatorBase::NavigatorBase):
+        * page/NavigatorBase.h:
+        (WebCore::NavigatorBase::gpu):
+        * page/WorkerNavigator.idl:
+
</ins><span class="cx"> 2021-11-06  Simon Fraser  <simon.fraser@apple.com>
</span><span class="cx"> 
</span><span class="cx">         WheelEventDeltaFilter::shouldApplyFilteringForEvent can be a static function
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesinputxcfilelist"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources-input.xcfilelist (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources-input.xcfilelist     2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WebCore/DerivedSources-input.xcfilelist        2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -21,6 +21,20 @@
</span><span class="cx"> $(JAVASCRIPTCORE_PRIVATE_HEADERS_DIR)/wkbuiltins.py
</span><span class="cx"> $(JAVASCRIPTCORE_PRIVATE_HEADERS_DIR)/xxd.pl
</span><span class="cx"> $(PROJECT_DIR)/DerivedSources.make
</span><ins>+$(PROJECT_DIR)/Modules/WebGPU/GPU.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUAdapter.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUDevice.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUDeviceDescriptor.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUFeatureName.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUObjectBase.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUObjectDescriptorBase.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUPowerPreference.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUPredefinedColorSpace.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPURequestAdapterOptions.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUSize64.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUSupportedFeatures.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUSupportedLimits.idl
+$(PROJECT_DIR)/Modules/WebGPU/NavigatorGPU.idl
</ins><span class="cx"> $(PROJECT_DIR)/Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.idl
</span><span class="cx"> $(PROJECT_DIR)/Modules/applepay/ApplePayCancelEvent.idl
</span><span class="cx"> $(PROJECT_DIR)/Modules/applepay/ApplePayContactField.idl
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesoutputxcfilelist"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources-output.xcfilelist (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources-output.xcfilelist    2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WebCore/DerivedSources-output.xcfilelist       2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -867,6 +867,32 @@
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSFormDataEvent.h
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGCObservation.cpp
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGCObservation.h
</span><ins>+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPU.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPU.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUAdapter.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUAdapter.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUDevice.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUDevice.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUDeviceDescriptor.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUDeviceDescriptor.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUFeatureName.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUFeatureName.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUObjectBase.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUObjectBase.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUObjectDescriptorBase.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUObjectDescriptorBase.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUPowerPreference.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUPowerPreference.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUPredefinedColorSpace.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUPredefinedColorSpace.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPURequestAdapterOptions.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPURequestAdapterOptions.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUSize64.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUSize64.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUSupportedFeatures.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUSupportedFeatures.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUSupportedLimits.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUSupportedLimits.h
</ins><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGainNode.cpp
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGainNode.h
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGainOptions.cpp
</span><span class="lines">@@ -1389,6 +1415,8 @@
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSNavigator.h
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSNavigatorCookies.cpp
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSNavigatorCookies.h
</span><ins>+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSNavigatorGPU.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSNavigatorGPU.h
</ins><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSNavigatorID.cpp
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSNavigatorID.h
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSNavigatorLanguage.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.make (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.make 2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WebCore/DerivedSources.make    2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -53,6 +53,19 @@
</span><span class="cx"> # --------
</span><span class="cx"> 
</span><span class="cx"> JS_BINDING_IDLS := \
</span><ins>+    $(WebCore)/Modules/WebGPU/GPU.idl \
+    $(WebCore)/Modules/WebGPU/GPUAdapter.idl \
+    $(WebCore)/Modules/WebGPU/GPUDevice.idl \
+    $(WebCore)/Modules/WebGPU/GPUDeviceDescriptor.idl \
+    $(WebCore)/Modules/WebGPU/GPUFeatureName.idl \
+    $(WebCore)/Modules/WebGPU/GPUObjectBase.idl \
+    $(WebCore)/Modules/WebGPU/GPUObjectDescriptorBase.idl \
+    $(WebCore)/Modules/WebGPU/GPUPowerPreference.idl \
+    $(WebCore)/Modules/WebGPU/GPUPredefinedColorSpace.idl \
+    $(WebCore)/Modules/WebGPU/GPURequestAdapterOptions.idl \
+    $(WebCore)/Modules/WebGPU/GPUSupportedFeatures.idl \
+    $(WebCore)/Modules/WebGPU/GPUSupportedLimits.idl \
+    $(WebCore)/Modules/WebGPU/NavigatorGPU.idl \
</ins><span class="cx">     $(WebCore)/Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.idl \
</span><span class="cx">     $(WebCore)/Modules/applepay/ApplePayCancelEvent.idl \
</span><span class="cx">     $(WebCore)/Modules/applepay/ApplePayContactField.idl \
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesWebGPUGPUcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPU.cpp (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPU.cpp                              (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPU.cpp 2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+/*
+ * 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.
+ */
+
+#include "config.h"
+#include "GPU.h"
+
+namespace WebCore {
+
+void GPU::requestAdapter(const GPURequestAdapterOptions&, RequestAdapterPromise&&)
+{
+
+}
+
+}
</ins><span class="cx">Property changes on: trunk/Source/WebCore/Modules/WebGPU/GPU.cpp
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkSourceWebCoreModulesWebGPUGPUh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPU.h (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPU.h                                (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPU.h   2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,50 @@
</span><ins>+/*
+ * 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.
+ */
+
+#pragma once
+
+#include "GPUAdapter.h"
+#include "GPURequestAdapterOptions.h"
+#include "JSDOMPromiseDeferred.h"
+#include <wtf/Ref.h>
+#include <wtf/RefCounted.h>
+
+namespace WebCore {
+
+class GPU : public RefCounted<GPU> {
+public:
+    static Ref<GPU> create()
+    {
+        return adoptRef(*new GPU());
+    }
+
+    using RequestAdapterPromise = DOMPromiseDeferred<IDLNullable<IDLInterface<GPUAdapter>>>;
+    void requestAdapter(const GPURequestAdapterOptions&, RequestAdapterPromise&&);
+
+private:
+    GPU() = default;
+};
+
+}
</ins><span class="cx">Property changes on: trunk/Source/WebCore/Modules/WebGPU/GPU.h
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="svnkeywords"></a>
<div class="addfile"><h4>Added: svn:keywords</h4></div>
<ins>+Author Date Id Rev URL
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkSourceWebCoreModulesWebGPUGPUidl"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPU.idl (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPU.idl                              (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPU.idl 2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+/*
+ * 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.
+ */
+
+// https://gpuweb.github.io/gpuweb/#gpu
+
+[
+    EnabledBySetting=WebGPU,
+    ImplementationLacksVTable,
+    Exposed=(Window), /* https://bugs.webkit.org/show_bug.cgi?id=232542: DedicatedWorker */
+    SecureContext
+]
+interface GPU {
+    Promise<GPUAdapter?> requestAdapter(optional GPURequestAdapterOptions options);
+};
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesWebGPUGPUAdaptercpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUAdapter.cpp (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUAdapter.cpp                               (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUAdapter.cpp  2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,56 @@
</span><ins>+/*
+ * 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.
+ */
+
+#include "config.h"
+#include "GPUAdapter.h"
+
+namespace WebCore {
+
+String GPUAdapter::name() const
+{
+    return StringImpl::empty();
+}
+
+Ref<GPUSupportedFeatures> GPUAdapter::features() const
+{
+    return GPUSupportedFeatures::create();
+}
+
+Ref<GPUSupportedLimits> GPUAdapter::limits() const
+{
+    return GPUSupportedLimits::create();
+}
+
+bool GPUAdapter::isFallbackAdapter() const
+{
+    return false;
+}
+
+void GPUAdapter::requestDevice(ScriptExecutionContext&, const GPUDeviceDescriptor&, RequestDevicePromise&&)
+{
+
+}
+
+}
</ins><span class="cx">Property changes on: trunk/Source/WebCore/Modules/WebGPU/GPUAdapter.cpp
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkSourceWebCoreModulesWebGPUGPUAdapterh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUAdapter.h (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUAdapter.h                         (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUAdapter.h    2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,59 @@
</span><ins>+/*
+ * 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.
+ */
+
+#pragma once
+
+#include "GPUDevice.h"
+#include "GPUDeviceDescriptor.h"
+#include "GPUSupportedFeatures.h"
+#include "GPUSupportedLimits.h"
+#include "JSDOMPromiseDeferred.h"
+#include "ScriptExecutionContext.h"
+#include <wtf/Ref.h>
+#include <wtf/RefCounted.h>
+#include <wtf/text/WTFString.h>
+
+namespace WebCore {
+
+class GPUAdapter : public RefCounted<GPUAdapter> {
+public:
+    static Ref<GPUAdapter> create()
+    {
+        return adoptRef(*new GPUAdapter());
+    }
+
+    String name() const;
+    Ref<GPUSupportedFeatures> features() const;
+    Ref<GPUSupportedLimits> limits() const;
+    bool isFallbackAdapter() const;
+
+    using RequestDevicePromise = DOMPromiseDeferred<IDLInterface<GPUDevice>>;
+    void requestDevice(ScriptExecutionContext&, const GPUDeviceDescriptor&, RequestDevicePromise&&);
+
+private:
+    GPUAdapter() = default;
+};
+
+}
</ins><span class="cx">Property changes on: trunk/Source/WebCore/Modules/WebGPU/GPUAdapter.h
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="svnkeywords"></a>
<div class="addfile"><h4>Added: svn:keywords</h4></div>
<ins>+Author Date Id Rev URL
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkSourceWebCoreModulesWebGPUGPUAdapteridl"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUAdapter.idl (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUAdapter.idl                               (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUAdapter.idl  2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,41 @@
</span><ins>+/*
+ * 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.
+ */
+
+// https://gpuweb.github.io/gpuweb/#gpuadapter
+
+[
+    EnabledBySetting=WebGPU,
+    ImplementationLacksVTable,
+    Exposed=(Window), /* https://bugs.webkit.org/show_bug.cgi?id=232542: DedicatedWorker */
+    SecureContext
+]
+interface GPUAdapter {
+    readonly attribute DOMString name;
+    [SameObject] readonly attribute GPUSupportedFeatures features;
+    [SameObject] readonly attribute GPUSupportedLimits limits;
+    readonly attribute boolean isFallbackAdapter;
+
+    [CallWith=ScriptExecutionContext] Promise<GPUDevice> requestDevice(optional GPUDeviceDescriptor descriptor);
+};
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesWebGPUGPUDevicecpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUDevice.cpp (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUDevice.cpp                                (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUDevice.cpp   2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,52 @@
</span><ins>+/*
+ * 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.
+ */
+
+#include "config.h"
+#include "GPUDevice.h"
+
+namespace WebCore {
+
+GPUDevice::~GPUDevice() = default;
+
+String GPUDevice::label() const
+{
+    return StringImpl::empty();
+}
+
+void GPUDevice::setLabel(String&&)
+{
+}
+
+Ref<GPUSupportedFeatures> GPUDevice::features() const
+{
+    return GPUSupportedFeatures::create();
+}
+
+Ref<GPUSupportedLimits> GPUDevice::limits() const
+{
+    return GPUSupportedLimits::create();
+}
+
+}
</ins><span class="cx">Property changes on: trunk/Source/WebCore/Modules/WebGPU/GPUDevice.cpp
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkSourceWebCoreModulesWebGPUGPUDeviceh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUDevice.h (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUDevice.h                          (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUDevice.h     2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,71 @@
</span><ins>+/*
+ * 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.
+ */
+
+#pragma once
+
+#include "ActiveDOMObject.h"
+#include "EventTarget.h"
+#include "GPUSupportedFeatures.h"
+#include "GPUSupportedLimits.h"
+#include "ScriptExecutionContext.h"
+#include <wtf/Ref.h>
+#include <wtf/text/WTFString.h>
+
+namespace WebCore {
+
+class GPUDevice : public ActiveDOMObject, public EventTargetWithInlineData {
+public:
+    static Ref<GPUDevice> create(ScriptExecutionContext* scriptExecutionContext)
+    {
+        return adoptRef(*new GPUDevice(scriptExecutionContext));
+    }
+
+    virtual ~GPUDevice();
+
+    String label() const;
+    void setLabel(String&&);
+    Ref<GPUSupportedFeatures> features() const;
+    Ref<GPUSupportedLimits> limits() const;
+
+private:
+    GPUDevice(ScriptExecutionContext* scriptExecutionContext)
+        : ActiveDOMObject { scriptExecutionContext }
+    {
+    }
+
+    // ActiveDOMObject.
+    // FIXME: We probably need to override more methods to make this work properly.
+    const char* activeDOMObjectName() const final { return "GPUDevice"; }
+
+    // EventTargetWithInlineData.
+    EventTargetInterface eventTargetInterface() const final { return GPUDeviceEventTargetInterfaceType; }
+    ScriptExecutionContext* scriptExecutionContext() const final { return ActiveDOMObject::scriptExecutionContext(); }
+    void refEventTarget() final { ref(); }
+    void derefEventTarget() final { deref(); }
+
+    String m_label;
+};
+
+}
</ins><span class="cx">Property changes on: trunk/Source/WebCore/Modules/WebGPU/GPUDevice.h
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="svnkeywords"></a>
<div class="addfile"><h4>Added: svn:keywords</h4></div>
<ins>+Author Date Id Rev URL
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkSourceWebCoreModulesWebGPUGPUDeviceidl"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl                                (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl   2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+/*
+ * 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.
+ */
+
+// https://gpuweb.github.io/gpuweb/#gpudevice
+
+[
+    EnabledBySetting=WebGPU,
+    ActiveDOMObject,
+    Exposed=(Window), /* https://bugs.webkit.org/show_bug.cgi?id=232542: DedicatedWorker */
+    SecureContext
+]
+interface GPUDevice : EventTarget {
+    [SameObject] readonly attribute GPUSupportedFeatures features;
+    [SameObject] readonly attribute GPUSupportedLimits limits;
+
+    // FIXME: Add more here.
+};
+GPUDevice includes GPUObjectBase;
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesWebGPUGPUDeviceDescriptorh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUDeviceDescriptor.h (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUDeviceDescriptor.h                                (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUDeviceDescriptor.h   2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,43 @@
</span><ins>+/*
+ * 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.
+ */
+
+#pragma once
+
+#include "GPUFeatureName.h"
+#include "GPUObjectDescriptorBase.h"
+#include <cstdint>
+#include <wtf/HashMap.h>
+#include <wtf/KeyValuePair.h>
+#include <wtf/RefPtr.h>
+#include <wtf/Vector.h>
+
+namespace WebCore {
+
+struct GPUDeviceDescriptor : public GPUObjectDescriptorBase {
+    Vector<GPUFeatureName> requiredFeatures;
+    // Vector<KeyValuePair<String, uint64_t>> requiredLimits;
+};
+
+}
</ins><span class="cx">Property changes on: trunk/Source/WebCore/Modules/WebGPU/GPUDeviceDescriptor.h
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="svnkeywords"></a>
<div class="addfile"><h4>Added: svn:keywords</h4></div>
<ins>+Author Date Id Rev URL
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkSourceWebCoreModulesWebGPUGPUDeviceDescriptoridl"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUDeviceDescriptor.idl (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUDeviceDescriptor.idl                              (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUDeviceDescriptor.idl 2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+/*
+ * 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.
+ */
+
+// https://gpuweb.github.io/gpuweb/#dictdef-gpudevicedescriptor
+
+[
+    EnabledBySetting=WebGPU
+]
+dictionary GPUDeviceDescriptor : GPUObjectDescriptorBase {
+    sequence<GPUFeatureName> requiredFeatures = [];
+    // record<DOMString, GPUSize64> requiredLimits; // FIXME: https://bugs.webkit.org/show_bug.cgi?id=232741 Our bindings generator can't seem to understand this
+};
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesWebGPUGPUFeatureNameh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUFeatureName.h (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUFeatureName.h                             (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUFeatureName.h        2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,43 @@
</span><ins>+/*
+ * 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.
+ */
+
+#pragma once
+
+#include <cstdint>
+
+namespace WebCore {
+
+enum class GPUFeatureName : uint8_t {
+    DepthClamping,
+    Depth24unormStencil8,
+    Depth32floatStencil8,
+    PipelineStatisticsQuery,
+    TextureCompressionBc,
+    TextureCompressionEtc2,
+    TextureCompressionAstc,
+    TimestampQuery
+};
+
+}
</ins><span class="cx">Property changes on: trunk/Source/WebCore/Modules/WebGPU/GPUFeatureName.h
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="svnkeywords"></a>
<div class="addfile"><h4>Added: svn:keywords</h4></div>
<ins>+Author Date Id Rev URL
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkSourceWebCoreModulesWebGPUGPUFeatureNameidl"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUFeatureName.idl (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUFeatureName.idl                           (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUFeatureName.idl      2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+/*
+ * 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.
+ */
+
+// https://gpuweb.github.io/gpuweb/#enumdef-gpufeaturename
+
+[
+    EnabledBySetting=WebGPU
+]
+enum GPUFeatureName {
+    "depth-clamping",
+    "depth24unorm-stencil8",
+    "depth32float-stencil8",
+    "pipeline-statistics-query",
+    "texture-compression-bc",
+    "texture-compression-etc2",
+    "texture-compression-astc",
+    "timestamp-query"
+};
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesWebGPUGPUObjectBaseidl"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUObjectBase.idl (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUObjectBase.idl                            (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUObjectBase.idl       2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+/*
+ * 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.
+ */
+
+// https://gpuweb.github.io/gpuweb/#gpuobjectbase
+
+[
+    EnabledBySetting=WebGPU
+]
+interface mixin GPUObjectBase {
+    attribute USVString? label;
+};
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesWebGPUGPUObjectDescriptorBaseh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUObjectDescriptorBase.h (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUObjectDescriptorBase.h                            (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUObjectDescriptorBase.h       2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+/*
+ * 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.
+ */
+
+#pragma once
+
+#include <wtf/text/WTFString.h>
+
+namespace WebCore {
+
+struct GPUObjectDescriptorBase {
+    String label;
+};
+
+}
</ins><span class="cx">Property changes on: trunk/Source/WebCore/Modules/WebGPU/GPUObjectDescriptorBase.h
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="svnkeywords"></a>
<div class="addfile"><h4>Added: svn:keywords</h4></div>
<ins>+Author Date Id Rev URL
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkSourceWebCoreModulesWebGPUGPUObjectDescriptorBaseidl"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUObjectDescriptorBase.idl (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUObjectDescriptorBase.idl                          (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUObjectDescriptorBase.idl     2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+/*
+ * 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.
+ */
+
+// https://gpuweb.github.io/gpuweb/#dictdef-gpuobjectdescriptorbase
+
+[
+    EnabledBySetting=WebGPU
+]
+dictionary GPUObjectDescriptorBase {
+    USVString label;
+};
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesWebGPUGPUPowerPreferenceh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUPowerPreference.h (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUPowerPreference.h                         (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUPowerPreference.h    2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,37 @@
</span><ins>+/*
+ * 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.
+ */
+
+#pragma once
+
+#include <cstdint>
+
+namespace WebCore {
+
+enum class GPUPowerPreference : uint8_t {
+    LowPower,
+    HighPerformance
+};
+
+}
</ins><span class="cx">Property changes on: trunk/Source/WebCore/Modules/WebGPU/GPUPowerPreference.h
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="svnkeywords"></a>
<div class="addfile"><h4>Added: svn:keywords</h4></div>
<ins>+Author Date Id Rev URL
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkSourceWebCoreModulesWebGPUGPUPowerPreferenceidl"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl                               (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl  2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+/*
+ * 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.
+ */
+
+// https://gpuweb.github.io/gpuweb/#enumdef-gpupowerpreference
+
+[
+    EnabledBySetting=WebGPU,
+]
+enum GPUPowerPreference {
+    "low-power",
+    "high-performance"
+};
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesWebGPUGPUPredefinedColorSpaceh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUPredefinedColorSpace.h (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUPredefinedColorSpace.h                            (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUPredefinedColorSpace.h       2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+/*
+ * 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.
+ */
+
+#pragma once
+
+#include <cstdint>
+
+namespace WebCore {
+
+enum class GPUPredefinedColorSpace : uint8_t {
+    SRGB
+};
+
+}
</ins><span class="cx">Property changes on: trunk/Source/WebCore/Modules/WebGPU/GPUPredefinedColorSpace.h
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="svnkeywords"></a>
<div class="addfile"><h4>Added: svn:keywords</h4></div>
<ins>+Author Date Id Rev URL
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkSourceWebCoreModulesWebGPUGPUPredefinedColorSpaceidl"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUPredefinedColorSpace.idl (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUPredefinedColorSpace.idl                          (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUPredefinedColorSpace.idl     2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+/*
+ * 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.
+ */
+
+// https://gpuweb.github.io/gpuweb/#enumdef-gpupredefinedcolorspace
+
+[
+    EnabledBySetting=WebGPU
+]
+enum GPUPredefinedColorSpace {
+    "srgb"
+};
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesWebGPUGPURequestAdapterOptionsh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.h (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.h                           (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.h      2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,38 @@
</span><ins>+/*
+ * 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.
+ */
+
+#pragma once
+
+#include "GPUPowerPreference.h"
+#include <optional>
+
+namespace WebCore {
+
+struct GPURequestAdapterOptions {
+    std::optional<GPUPowerPreference> powerPreference;
+    bool forceFallbackAdapter;
+};
+
+}
</ins><span class="cx">Property changes on: trunk/Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.h
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="svnkeywords"></a>
<div class="addfile"><h4>Added: svn:keywords</h4></div>
<ins>+Author Date Id Rev URL
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkSourceWebCoreModulesWebGPUGPURequestAdapterOptionsidl"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl                         (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl    2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+/*
+ * 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.
+ */
+
+// https://gpuweb.github.io/gpuweb/#dictdef-gpurequestadapteroptions
+
+[
+    EnabledBySetting=WebGPU,
+]
+dictionary GPURequestAdapterOptions {
+    GPUPowerPreference powerPreference;
+    boolean forceFallbackAdapter = false;
+};
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesWebGPUGPUSupportedFeaturescpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUSupportedFeatures.cpp (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUSupportedFeatures.cpp                             (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUSupportedFeatures.cpp        2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+/*
+ * 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.
+ */
+
+#include "config.h"
+#include "GPUSupportedFeatures.h"
+
+namespace WebCore {
+
+void GPUSupportedFeatures::initializeSetLike(DOMSetAdapter&) const
+{
+}
+
+}
</ins><span class="cx">Property changes on: trunk/Source/WebCore/Modules/WebGPU/GPUSupportedFeatures.cpp
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkSourceWebCoreModulesWebGPUGPUSupportedFeaturesh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUSupportedFeatures.h (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUSupportedFeatures.h                               (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUSupportedFeatures.h  2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,49 @@
</span><ins>+/*
+ * 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.
+ */
+
+#pragma once
+
+#include "IDLTypes.h"
+#include "JSDOMSetLike.h"
+#include <wtf/RefCounted.h>
+#include <wtf/Vector.h>
+#include <wtf/text/WTFString.h>
+
+namespace WebCore {
+
+class GPUSupportedFeatures : public RefCounted<GPUSupportedFeatures> {
+public:
+    static Ref<GPUSupportedFeatures> create()
+    {
+        return adoptRef(*new GPUSupportedFeatures());
+    }
+
+    void initializeSetLike(DOMSetAdapter&) const;
+
+private:
+    GPUSupportedFeatures() = default;
+};
+
+}
</ins><span class="cx">Property changes on: trunk/Source/WebCore/Modules/WebGPU/GPUSupportedFeatures.h
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="svnkeywords"></a>
<div class="addfile"><h4>Added: svn:keywords</h4></div>
<ins>+Author Date Id Rev URL
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkSourceWebCoreModulesWebGPUGPUSupportedFeaturesidl"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUSupportedFeatures.idl (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUSupportedFeatures.idl                             (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUSupportedFeatures.idl        2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+/*
+ * 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.
+ */
+
+// https://gpuweb.github.io/gpuweb/#gpusupportedfeatures
+
+[
+    EnabledBySetting=WebGPU,
+    ImplementationLacksVTable,
+    Exposed=(Window), /* https://bugs.webkit.org/show_bug.cgi?id=232542: DedicatedWorker */
+    SecureContext
+]
+interface GPUSupportedFeatures {
+    readonly setlike<DOMString>;
+};
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesWebGPUGPUSupportedLimitscpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUSupportedLimits.cpp (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUSupportedLimits.cpp                               (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUSupportedLimits.cpp  2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,161 @@
</span><ins>+/*
+ * 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.
+ */
+
+#include "config.h"
+#include "GPUSupportedLimits.h"
+
+namespace WebCore {
+
+uint32_t GPUSupportedLimits::maxTextureDimension1D() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxTextureDimension2D() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxTextureDimension3D() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxTextureArrayLayers() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxBindGroups() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxDynamicUniformBuffersPerPipelineLayout() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxDynamicStorageBuffersPerPipelineLayout() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxSampledTexturesPerShaderStage() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxSamplersPerShaderStage() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxStorageBuffersPerShaderStage() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxStorageTexturesPerShaderStage() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxUniformBuffersPerShaderStage() const
+{
+    return 0;
+}
+
+uint64_t GPUSupportedLimits::maxUniformBufferBindingSize() const
+{
+    return 0;
+}
+
+uint64_t GPUSupportedLimits::maxStorageBufferBindingSize() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::minUniformBufferOffsetAlignment() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::minStorageBufferOffsetAlignment() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxVertexBuffers() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxVertexAttributes() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxVertexBufferArrayStride() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxInterStageShaderComponents() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxComputeWorkgroupStorageSize() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxComputeInvocationsPerWorkgroup() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxComputeWorkgroupSizeX() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxComputeWorkgroupSizeY() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxComputeWorkgroupSizeZ() const
+{
+    return 0;
+}
+
+uint32_t GPUSupportedLimits::maxComputeWorkgroupsPerDimension() const
+{
+    return 0;
+}
+
+}
</ins><span class="cx">Property changes on: trunk/Source/WebCore/Modules/WebGPU/GPUSupportedLimits.cpp
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkSourceWebCoreModulesWebGPUGPUSupportedLimitsh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUSupportedLimits.h (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUSupportedLimits.h                         (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUSupportedLimits.h    2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,71 @@
</span><ins>+/*
+ * 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.
+ */
+
+#pragma once
+
+#include <cstdint>
+#include <wtf/RefCounted.h>
+
+namespace WebCore {
+
+class GPUSupportedLimits : public RefCounted<GPUSupportedLimits> {
+public:
+    static Ref<GPUSupportedLimits> create()
+    {
+        return adoptRef(*new GPUSupportedLimits());
+    }
+
+    uint32_t maxTextureDimension1D() const;
+    uint32_t maxTextureDimension2D() const;
+    uint32_t maxTextureDimension3D() const;
+    uint32_t maxTextureArrayLayers() const;
+    uint32_t maxBindGroups() const;
+    uint32_t maxDynamicUniformBuffersPerPipelineLayout() const;
+    uint32_t maxDynamicStorageBuffersPerPipelineLayout() const;
+    uint32_t maxSampledTexturesPerShaderStage() const;
+    uint32_t maxSamplersPerShaderStage() const;
+    uint32_t maxStorageBuffersPerShaderStage() const;
+    uint32_t maxStorageTexturesPerShaderStage() const;
+    uint32_t maxUniformBuffersPerShaderStage() const;
+    uint64_t maxUniformBufferBindingSize() const;
+    uint64_t maxStorageBufferBindingSize() const;
+    uint32_t minUniformBufferOffsetAlignment() const;
+    uint32_t minStorageBufferOffsetAlignment() const;
+    uint32_t maxVertexBuffers() const;
+    uint32_t maxVertexAttributes() const;
+    uint32_t maxVertexBufferArrayStride() const;
+    uint32_t maxInterStageShaderComponents() const;
+    uint32_t maxComputeWorkgroupStorageSize() const;
+    uint32_t maxComputeInvocationsPerWorkgroup() const;
+    uint32_t maxComputeWorkgroupSizeX() const;
+    uint32_t maxComputeWorkgroupSizeY() const;
+    uint32_t maxComputeWorkgroupSizeZ() const;
+    uint32_t maxComputeWorkgroupsPerDimension() const;
+
+private:
+    GPUSupportedLimits() = default;
+};
+
+}
</ins><span class="cx">Property changes on: trunk/Source/WebCore/Modules/WebGPU/GPUSupportedLimits.h
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="svnkeywords"></a>
<div class="addfile"><h4>Added: svn:keywords</h4></div>
<ins>+Author Date Id Rev URL
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkSourceWebCoreModulesWebGPUGPUSupportedLimitsidl"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/GPUSupportedLimits.idl (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/GPUSupportedLimits.idl                               (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUSupportedLimits.idl  2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,61 @@
</span><ins>+/*
+ * 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.
+ */
+
+// https://gpuweb.github.io/gpuweb/#gpusupportedlimits
+
+[
+    EnabledBySetting=WebGPU,
+    ImplementationLacksVTable,
+    Exposed=(Window), /* https://bugs.webkit.org/show_bug.cgi?id=232542: DedicatedWorker */
+    SecureContext
+]
+interface GPUSupportedLimits {
+    readonly attribute unsigned long maxTextureDimension1D;
+    readonly attribute unsigned long maxTextureDimension2D;
+    readonly attribute unsigned long maxTextureDimension3D;
+    readonly attribute unsigned long maxTextureArrayLayers;
+    readonly attribute unsigned long maxBindGroups;
+    readonly attribute unsigned long maxDynamicUniformBuffersPerPipelineLayout;
+    readonly attribute unsigned long maxDynamicStorageBuffersPerPipelineLayout;
+    readonly attribute unsigned long maxSampledTexturesPerShaderStage;
+    readonly attribute unsigned long maxSamplersPerShaderStage;
+    readonly attribute unsigned long maxStorageBuffersPerShaderStage;
+    readonly attribute unsigned long maxStorageTexturesPerShaderStage;
+    readonly attribute unsigned long maxUniformBuffersPerShaderStage;
+    readonly attribute unsigned long long maxUniformBufferBindingSize;
+    readonly attribute unsigned long long maxStorageBufferBindingSize;
+    readonly attribute unsigned long minUniformBufferOffsetAlignment;
+    readonly attribute unsigned long minStorageBufferOffsetAlignment;
+    readonly attribute unsigned long maxVertexBuffers;
+    readonly attribute unsigned long maxVertexAttributes;
+    readonly attribute unsigned long maxVertexBufferArrayStride;
+    readonly attribute unsigned long maxInterStageShaderComponents;
+    readonly attribute unsigned long maxComputeWorkgroupStorageSize;
+    readonly attribute unsigned long maxComputeInvocationsPerWorkgroup;
+    readonly attribute unsigned long maxComputeWorkgroupSizeX;
+    readonly attribute unsigned long maxComputeWorkgroupSizeY;
+    readonly attribute unsigned long maxComputeWorkgroupSizeZ;
+    readonly attribute unsigned long maxComputeWorkgroupsPerDimension;
+};
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesWebGPUNavigatorGPUidl"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/WebGPU/NavigatorGPU.idl (0 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/WebGPU/NavigatorGPU.idl                             (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/NavigatorGPU.idl        2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+/*
+ * 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.
+ */
+
+// https://gpuweb.github.io/gpuweb/#navigatorgpu
+
+[
+    EnabledBySetting=WebGPU,
+]
+interface mixin NavigatorGPU {
+    [SameObject, SecureContext] readonly attribute GPU gpu;
+};
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesapplepayPaymentCoordinatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/applepay/PaymentCoordinator.cpp (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/applepay/PaymentCoordinator.cpp     2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WebCore/Modules/applepay/PaymentCoordinator.cpp        2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx"> #include "ApplePayShippingMethod.h"
</span><span class="cx"> #include "ApplePayShippingMethodUpdate.h"
</span><span class="cx"> #include "Document.h"
</span><ins>+#include "ExceptionDetails.h"
</ins><span class="cx"> #include "LinkIconCollector.h"
</span><span class="cx"> #include "Logging.h"
</span><span class="cx"> #include "Page.h"
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediasourceSourceBufferh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediasource/SourceBuffer.h (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediasource/SourceBuffer.h  2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WebCore/Modules/mediasource/SourceBuffer.h     2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -43,6 +43,7 @@
</span><span class="cx"> #include "Timer.h"
</span><span class="cx"> #include "VideoTrackClient.h"
</span><span class="cx"> #include <wtf/LoggerHelper.h>
</span><ins>+#include <wtf/Observer.h>
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebauthnPublicKeyCredentialRequestOptionsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.h (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.h        2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.h   2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -27,6 +27,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEB_AUTHN)
</span><span class="cx"> #include "AuthenticationExtensionsClientInputs.h"
</span><ins>+#include "AuthenticatorAttachment.h"
</ins><span class="cx"> #include "BufferSource.h"
</span><span class="cx"> #include "PublicKeyCredentialDescriptor.h"
</span><span class="cx"> #include "UserVerificationRequirement.h"
</span></span></pre></div>
<a id="trunkSourceWebCoreSourcestxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Sources.txt (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Sources.txt 2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WebCore/Sources.txt    2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -21,6 +21,11 @@
</span><span class="cx"> // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
</span><span class="cx"> // THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx"> 
</span><ins>+Modules/WebGPU/GPU.cpp
+Modules/WebGPU/GPUAdapter.cpp
+Modules/WebGPU/GPUDevice.cpp
+Modules/WebGPU/GPUSupportedFeatures.cpp
+Modules/WebGPU/GPUSupportedLimits.cpp
</ins><span class="cx"> Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.cpp
</span><span class="cx"> Modules/applicationmanifest/ApplicationManifestParser.cpp
</span><span class="cx"> Modules/async-clipboard/Clipboard.cpp
</span><span class="lines">@@ -3065,6 +3070,18 @@
</span><span class="cx"> JSFontFace.cpp
</span><span class="cx"> JSFontFaceSet.cpp
</span><span class="cx"> JSFormDataEvent.cpp
</span><ins>+JSGPU.cpp
+JSGPUAdapter.cpp
+JSGPUDevice.cpp
+JSGPUDeviceDescriptor.cpp
+JSGPUFeatureName.cpp
+JSGPUObjectBase.cpp
+JSGPUObjectDescriptorBase.cpp
+JSGPUPowerPreference.cpp
+JSGPUPredefinedColorSpace.cpp
+JSGPURequestAdapterOptions.cpp
+JSGPUSupportedFeatures.cpp
+JSGPUSupportedLimits.cpp
</ins><span class="cx"> JSGainNode.cpp
</span><span class="cx"> JSGainOptions.cpp
</span><span class="cx"> JSGamepad.cpp
</span><span class="lines">@@ -3274,6 +3291,7 @@
</span><span class="cx"> JSMutationRecord.cpp
</span><span class="cx"> JSNamedNodeMap.cpp
</span><span class="cx"> JSNavigator.cpp
</span><ins>+JSNavigatorGPU.cpp
</ins><span class="cx"> JSNode.cpp
</span><span class="cx"> JSNodeFilter.cpp
</span><span class="cx"> JSCustomXPathNSResolver.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj   2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj      2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -7029,6 +7029,33 @@
</span><span class="cx">          1C24EEA71C72A7B40080F8FC /* JSFontFaceSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSFontFaceSet.h; path = DerivedSources/WebCore/JSFontFaceSet.h; sourceTree = BUILT_PRODUCTS_DIR; };
</span><span class="cx">          1C2649790D7E248A00BD10F2 /* DocumentLoaderMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DocumentLoaderMac.cpp; sourceTree = "<group>"; };
</span><span class="cx">          1C26671926FA7F2E00117073 /* FontCreationContext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FontCreationContext.h; sourceTree = "<group>"; };
</span><ins>+               1C28955E272E64A500B3E2B4 /* GPUObjectBase.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUObjectBase.idl; sourceTree = "<group>"; };
+               1C28955F272E6A9200B3E2B4 /* GPUObjectDescriptorBase.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUObjectDescriptorBase.idl; sourceTree = "<group>"; };
+               1C289560272E6CCA00B3E2B4 /* GPUSupportedLimits.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUSupportedLimits.idl; sourceTree = "<group>"; };
+               1C289563272E6F8A00B3E2B4 /* GPUSupportedLimits.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUSupportedLimits.h; sourceTree = "<group>"; };
+               1C289564272F1F4500B3E2B4 /* GPUSupportedFeatures.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUSupportedFeatures.idl; sourceTree = "<group>"; };
+               1C289565272F200600B3E2B4 /* GPUSupportedFeatures.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUSupportedFeatures.h; sourceTree = "<group>"; };
+               1C289566272F232600B3E2B4 /* GPUPredefinedColorSpace.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUPredefinedColorSpace.idl; sourceTree = "<group>"; };
+               1C289567272F267B00B3E2B4 /* GPU.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPU.idl; sourceTree = "<group>"; };
+               1C289568272F272400B3E2B4 /* GPURequestAdapterOptions.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPURequestAdapterOptions.idl; sourceTree = "<group>"; };
+               1C289569272F274700B3E2B4 /* GPUPowerPreference.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUPowerPreference.idl; sourceTree = "<group>"; };
+               1C28956A272F277E00B3E2B4 /* NavigatorGPU.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = NavigatorGPU.idl; sourceTree = "<group>"; };
+               1C28956B272F27A700B3E2B4 /* GPUAdapter.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUAdapter.idl; sourceTree = "<group>"; };
+               1C28956C272F27DA00B3E2B4 /* GPUDeviceDescriptor.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUDeviceDescriptor.idl; sourceTree = "<group>"; };
+               1C28956D272F280800B3E2B4 /* GPUFeatureName.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUFeatureName.idl; sourceTree = "<group>"; };
+               1C28956E272F283800B3E2B4 /* GPUDevice.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUDevice.idl; sourceTree = "<group>"; };
+               1C289571272F2F7600B3E2B4 /* GPU.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPU.h; sourceTree = "<group>"; };
+               1C289572272F30DA00B3E2B4 /* GPUAdapter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUAdapter.h; sourceTree = "<group>"; };
+               1C289573272F338D00B3E2B4 /* GPUDevice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUDevice.h; sourceTree = "<group>"; };
+               1C28957B272F3FBC00B3E2B4 /* GPURequestAdapterOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPURequestAdapterOptions.h; sourceTree = "<group>"; };
+               1C28957C272F407800B3E2B4 /* GPUDeviceDescriptor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUDeviceDescriptor.h; sourceTree = "<group>"; };
+               1C28957D272F40A200B3E2B4 /* GPU.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GPU.cpp; sourceTree = "<group>"; };
+               1C28957E272F430A00B3E2B4 /* GPUAdapter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GPUAdapter.cpp; sourceTree = "<group>"; };
+               1C28957F272F43D800B3E2B4 /* GPUDevice.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GPUDevice.cpp; sourceTree = "<group>"; };
+               1C289580272F47B000B3E2B4 /* GPUFeatureName.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUFeatureName.h; sourceTree = "<group>"; };
+               1C289582272F48F200B3E2B4 /* GPUPowerPreference.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUPowerPreference.h; sourceTree = "<group>"; };
+               1C289589272F5AC700B3E2B4 /* GPUObjectDescriptorBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUObjectDescriptorBase.h; sourceTree = "<group>"; };
+               1C28958B272F5AF500B3E2B4 /* GPUPredefinedColorSpace.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUPredefinedColorSpace.h; sourceTree = "<group>"; };
</ins><span class="cx">           1C3249101C6D6A3B007EDB32 /* FontVariantBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FontVariantBuilder.cpp; sourceTree = "<group>"; };
</span><span class="cx">          1C3969CF1B74211E002BCFA7 /* FontCacheCoreText.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FontCacheCoreText.cpp; sourceTree = "<group>"; };
</span><span class="cx">          1C43DE6822AB4B8A001527D9 /* LocalCurrentTraitCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalCurrentTraitCollection.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -7045,6 +7072,8 @@
</span><span class="cx">          1C6FD8AE250A311500D6E920 /* FontCascadeCoreText.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = FontCascadeCoreText.cpp; sourceTree = "<group>"; };
</span><span class="cx">          1C6FD8AF250A33CF00D6E920 /* FontCoreText.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = FontCoreText.cpp; sourceTree = "<group>"; };
</span><span class="cx">          1C6FD8B0250A35F100D6E920 /* FontCocoa.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = FontCocoa.cpp; sourceTree = "<group>"; };
</span><ins>+               1C81276F2734B3730068864F /* GPUSupportedFeatures.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GPUSupportedFeatures.cpp; sourceTree = "<group>"; };
+               1C8127712734B4130068864F /* GPUSupportedLimits.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GPUSupportedLimits.cpp; sourceTree = "<group>"; };
</ins><span class="cx">           1C81B9560E97330800266E07 /* InspectorController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorController.h; sourceTree = "<group>"; };
</span><span class="cx">          1C81B9570E97330800266E07 /* InspectorController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorController.cpp; sourceTree = "<group>"; };
</span><span class="cx">          1C81B9580E97330800266E07 /* InspectorClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorClient.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -19067,6 +19096,42 @@
</span><span class="cx">                  path = cocoa;
</span><span class="cx">                  sourceTree = "<group>";
</span><span class="cx">          };
</span><ins>+               1C28955D272E643900B3E2B4 /* WebGPU */ = {
+                       isa = PBXGroup;
+                       children = (
+                               1C28957D272F40A200B3E2B4 /* GPU.cpp */,
+                               1C289571272F2F7600B3E2B4 /* GPU.h */,
+                               1C289567272F267B00B3E2B4 /* GPU.idl */,
+                               1C28957E272F430A00B3E2B4 /* GPUAdapter.cpp */,
+                               1C289572272F30DA00B3E2B4 /* GPUAdapter.h */,
+                               1C28956B272F27A700B3E2B4 /* GPUAdapter.idl */,
+                               1C28957F272F43D800B3E2B4 /* GPUDevice.cpp */,
+                               1C289573272F338D00B3E2B4 /* GPUDevice.h */,
+                               1C28956E272F283800B3E2B4 /* GPUDevice.idl */,
+                               1C28957C272F407800B3E2B4 /* GPUDeviceDescriptor.h */,
+                               1C28956C272F27DA00B3E2B4 /* GPUDeviceDescriptor.idl */,
+                               1C289580272F47B000B3E2B4 /* GPUFeatureName.h */,
+                               1C28956D272F280800B3E2B4 /* GPUFeatureName.idl */,
+                               1C28955E272E64A500B3E2B4 /* GPUObjectBase.idl */,
+                               1C289589272F5AC700B3E2B4 /* GPUObjectDescriptorBase.h */,
+                               1C28955F272E6A9200B3E2B4 /* GPUObjectDescriptorBase.idl */,
+                               1C289582272F48F200B3E2B4 /* GPUPowerPreference.h */,
+                               1C289569272F274700B3E2B4 /* GPUPowerPreference.idl */,
+                               1C28958B272F5AF500B3E2B4 /* GPUPredefinedColorSpace.h */,
+                               1C289566272F232600B3E2B4 /* GPUPredefinedColorSpace.idl */,
+                               1C28957B272F3FBC00B3E2B4 /* GPURequestAdapterOptions.h */,
+                               1C289568272F272400B3E2B4 /* GPURequestAdapterOptions.idl */,
+                               1C81276F2734B3730068864F /* GPUSupportedFeatures.cpp */,
+                               1C289565272F200600B3E2B4 /* GPUSupportedFeatures.h */,
+                               1C289564272F1F4500B3E2B4 /* GPUSupportedFeatures.idl */,
+                               1C8127712734B4130068864F /* GPUSupportedLimits.cpp */,
+                               1C289563272E6F8A00B3E2B4 /* GPUSupportedLimits.h */,
+                               1C289560272E6CCA00B3E2B4 /* GPUSupportedLimits.idl */,
+                               1C28956A272F277E00B3E2B4 /* NavigatorGPU.idl */,
+                       );
+                       path = WebGPU;
+                       sourceTree = "<group>";
+               };
</ins><span class="cx">           1C5FAECA0DCFD8C900D58F78 /* Inspector */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><span class="lines">@@ -24424,6 +24489,7 @@
</span><span class="cx">                          57D8462A1FEAF57F00CA3682 /* webauthn */,
</span><span class="cx">                          97BC69D51505F054001B74AC /* webdatabase */,
</span><span class="cx">                          996E59DA1DF00D45006612B9 /* webdriver */,
</span><ins>+                               1C28955D272E643900B3E2B4 /* WebGPU */,
</ins><span class="cx">                           97AABCF714FA09B5007457AE /* websockets */,
</span><span class="cx">                          E1EE8AC62412B16F00E794D6 /* webxr */,
</span><span class="cx">                  );
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsWebCoreBuiltinNamesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h   2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h      2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -126,6 +126,11 @@
</span><span class="cx">     macro(FileSystemFileHandle) \
</span><span class="cx">     macro(FileSystemHandle) \
</span><span class="cx">     macro(FileSystemSyncAccessHandle) \
</span><ins>+    macro(GPU) \
+    macro(GPUAdapter) \
+    macro(GPUDevice) \
+    macro(GPUSupportedFeatures) \
+    macro(GPUSupportedLimits) \
</ins><span class="cx">     macro(Gamepad) \
</span><span class="cx">     macro(GamepadButton) \
</span><span class="cx">     macro(GamepadEvent) \
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm   2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm      2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -195,7 +195,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    die "Processing document " . $useDocument->fileName . " did not generate anything.";
</del><ins>+    # die "Processing document " . $useDocument->fileName . " did not generate anything.";
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> sub GenerateEmptyHeaderAndCpp
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventTargetFactoryin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/EventTargetFactory.in (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/EventTargetFactory.in   2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WebCore/dom/EventTargetFactory.in      2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -15,6 +15,7 @@
</span><span class="cx"> EventSource
</span><span class="cx"> FileReader
</span><span class="cx"> FontFaceSet
</span><ins>+GPUDevice
</ins><span class="cx"> IDBDatabase
</span><span class="cx"> IDBOpenDBRequest
</span><span class="cx"> IDBRequest
</span></span></pre></div>
<a id="trunkSourceWebCorepageNavigatoridl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Navigator.idl (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Navigator.idl  2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WebCore/page/Navigator.idl     2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -40,3 +40,4 @@
</span><span class="cx"> Navigator includes NavigatorServiceWorker;
</span><span class="cx"> Navigator includes NavigatorShare;
</span><span class="cx"> Navigator includes NavigatorStorage;
</span><ins>+Navigator includes NavigatorGPU;
</ins></span></pre></div>
<a id="trunkSourceWebCorepageNavigatorBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/NavigatorBase.cpp (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/NavigatorBase.cpp      2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WebCore/page/NavigatorBase.cpp 2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> #include "NavigatorBase.h"
</span><span class="cx"> 
</span><span class="cx"> #include "Document.h"
</span><ins>+#include "GPU.h"
</ins><span class="cx"> #include "RuntimeEnabledFeatures.h"
</span><span class="cx"> #include "ServiceWorkerContainer.h"
</span><span class="cx"> #include "StorageManager.h"
</span><span class="lines">@@ -67,6 +68,7 @@
</span><span class="cx"> 
</span><span class="cx"> NavigatorBase::NavigatorBase(ScriptExecutionContext* context)
</span><span class="cx">     : ContextDestructionObserver(context)
</span><ins>+    , m_gpuForWebGPU(GPU::create())
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageNavigatorBaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/NavigatorBase.h (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/NavigatorBase.h        2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WebCore/page/NavigatorBase.h   2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -35,6 +35,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+class GPU;
</ins><span class="cx"> class ScriptExecutionContext;
</span><span class="cx"> class ServiceWorkerContainer;
</span><span class="cx"> class StorageManager;
</span><span class="lines">@@ -62,6 +63,7 @@
</span><span class="cx"> 
</span><span class="cx">     StorageManager& storage();
</span><span class="cx">     WebLockManager& locks();
</span><ins>+    GPU& gpu() { return m_gpuForWebGPU; };
</ins><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx">     explicit NavigatorBase(ScriptExecutionContext*);
</span><span class="lines">@@ -69,6 +71,7 @@
</span><span class="cx"> private:
</span><span class="cx">     RefPtr<StorageManager> m_storageManager;
</span><span class="cx">     RefPtr<WebLockManager> m_webLockManager;
</span><ins>+    Ref<GPU> m_gpuForWebGPU;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(SERVICE_WORKER)
</span><span class="cx"> public:
</span></span></pre></div>
<a id="trunkSourceWebCorepageWorkerNavigatoridl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/WorkerNavigator.idl (285375 => 285376)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/WorkerNavigator.idl    2021-11-06 19:43:54 UTC (rev 285375)
+++ trunk/Source/WebCore/page/WorkerNavigator.idl       2021-11-06 20:50:48 UTC (rev 285376)
</span><span class="lines">@@ -39,3 +39,4 @@
</span><span class="cx"> WorkerNavigator includes NavigatorOnLine;
</span><span class="cx"> WorkerNavigator includes NavigatorServiceWorker;
</span><span class="cx"> WorkerNavigator includes NavigatorStorage;
</span><ins>+WorkerNavigator includes NavigatorGPU;
</ins></span></pre>
</div>
</div>

</body>
</html>