Title: [225746] trunk
Revision
225746
Author
d...@apple.com
Date
2017-12-11 10:07:48 -0800 (Mon, 11 Dec 2017)

Log Message

Add a runtime feature flag for ImageBitmap and OffscreenCanvas
https://bugs.webkit.org/show_bug.cgi?id=180652
<rdar://problem/35969611>

Reviewed by Antoine Quint.

Source/WebCore:

Add a RuntimeEnabledFeature for these interfaces, and link the bindings
to the feature.

Test: fast/canvas/offscreen-enabled.html

* bindings/js/WebCoreBuiltinNames.h:
* html/ImageBitmap.idl:
* html/OffscreenCanvas.idl:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setImageBitmapOffscreenCanvasEnabled):
(WebCore::RuntimeEnabledFeatures::imageBitmapOffscreenCanvasEnabled const):
* page/WindowOrWorkerGlobalScope.idl:

Source/WebKit:

Add an experimental feature flag for these interfaces.

* Shared/WebPreferences.yaml:

Websites/webkit.org:

Simple test to validate if these interfaces are enabled.

* experimental-features.html:

LayoutTests:

* fast/canvas/offscreen-enabled-expected.txt: Added.
* fast/canvas/offscreen-enabled.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (225745 => 225746)


--- trunk/LayoutTests/ChangeLog	2017-12-11 18:02:37 UTC (rev 225745)
+++ trunk/LayoutTests/ChangeLog	2017-12-11 18:07:48 UTC (rev 225746)
@@ -1,3 +1,14 @@
+2017-12-11  Dean Jackson  <d...@apple.com>
+
+        Add a runtime feature flag for ImageBitmap and OffscreenCanvas
+        https://bugs.webkit.org/show_bug.cgi?id=180652
+        <rdar://problem/35969611>
+
+        Reviewed by Antoine Quint.
+
+        * fast/canvas/offscreen-enabled-expected.txt: Added.
+        * fast/canvas/offscreen-enabled.html: Added.
+
 2017-12-11  Ms2ger  <ms2...@igalia.com>
 
         [WPE] Enable most wpt html tests.

Added: trunk/LayoutTests/fast/canvas/offscreen-enabled-expected.txt (0 => 225746)


--- trunk/LayoutTests/fast/canvas/offscreen-enabled-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/canvas/offscreen-enabled-expected.txt	2017-12-11 18:07:48 UTC (rev 225746)
@@ -0,0 +1,3 @@
+createImageBitmap exists
+
+OffscreenCanvas exists
Property changes on: trunk/LayoutTests/fast/canvas/offscreen-enabled-expected.txt
___________________________________________________________________

Added: svn:eol-style

+native \ No newline at end of property

Added: svn:keywords

+Date Revision \ No newline at end of property

Added: svn:mime-type

+text/plain \ No newline at end of property

Added: trunk/LayoutTests/fast/canvas/offscreen-enabled.html (0 => 225746)


--- trunk/LayoutTests/fast/canvas/offscreen-enabled.html	                        (rev 0)
+++ trunk/LayoutTests/fast/canvas/offscreen-enabled.html	2017-12-11 18:07:48 UTC (rev 225746)
@@ -0,0 +1,16 @@
+<script>
+    function log(msg) {
+        const out = document.querySelector("div");
+        const p = document.createElement("p");
+        p.textContent = msg;
+        out.appendChild(p);
+    }
+    if (window.testRunner)
+        window.testRunner.dumpAsText();
+
+    window.addEventListener("load", function () {
+        log('createImageBitmap' in window ? "createImageBitmap exists" : "FAIL: createImageBitmap should exist");
+        log('OffscreenCanvas' in window ? "OffscreenCanvas exists" : "FAIL: OffscreenCanvas should exist");
+    }, false);
+</script>
+<div></div>
Property changes on: trunk/LayoutTests/fast/canvas/offscreen-enabled.html
___________________________________________________________________

Added: svn:eol-style

+native \ No newline at end of property

Added: svn:keywords

+Date Revision \ No newline at end of property

Added: svn:mime-type

+text/html \ No newline at end of property

Modified: trunk/Source/WebCore/ChangeLog (225745 => 225746)


--- trunk/Source/WebCore/ChangeLog	2017-12-11 18:02:37 UTC (rev 225745)
+++ trunk/Source/WebCore/ChangeLog	2017-12-11 18:07:48 UTC (rev 225746)
@@ -1,3 +1,24 @@
+2017-12-11  Dean Jackson  <d...@apple.com>
+
+        Add a runtime feature flag for ImageBitmap and OffscreenCanvas
+        https://bugs.webkit.org/show_bug.cgi?id=180652
+        <rdar://problem/35969611>
+
+        Reviewed by Antoine Quint.
+
+        Add a RuntimeEnabledFeature for these interfaces, and link the bindings
+        to the feature.
+
+        Test: fast/canvas/offscreen-enabled.html
+
+        * bindings/js/WebCoreBuiltinNames.h:
+        * html/ImageBitmap.idl:
+        * html/OffscreenCanvas.idl:
+        * page/RuntimeEnabledFeatures.h:
+        (WebCore::RuntimeEnabledFeatures::setImageBitmapOffscreenCanvasEnabled):
+        (WebCore::RuntimeEnabledFeatures::imageBitmapOffscreenCanvasEnabled const):
+        * page/WindowOrWorkerGlobalScope.idl:
+
 2017-12-11  Antoine Quint  <grao...@apple.com>
 
         [Web Animations] Implement AnimationPlaybackEvent and AnimationPlaybackEventInit

Modified: trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h (225745 => 225746)


--- trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h	2017-12-11 18:02:37 UTC (rev 225745)
+++ trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h	2017-12-11 18:07:48 UTC (rev 225746)
@@ -78,6 +78,7 @@
     macro(IDBRequest) \
     macro(IDBTransaction) \
     macro(IDBVersionChangeEvent) \
+    macro(ImageBitmap) \
     macro(InputEvent) \
     macro(IntersectionObserver) \
     macro(IntersectionObserverEntry) \
@@ -96,6 +97,7 @@
     macro(NavigatorCredentials) \
     macro(NavigatorMediaDevices) \
     macro(NavigatorUserMedia) \
+    macro(OffscreenCanvas) \
     macro(PasswordCredential) \
     macro(PaymentAddress) \
     macro(PaymentRequest) \
@@ -196,6 +198,7 @@
     macro(consumeChunk) \
     macro(controlledReadableStream) \
     macro(controller) \
+    macro(createImageBitmap) \
     macro(createReadableStream) \
     macro(customElements) \
     macro(disturbed) \

Modified: trunk/Source/WebCore/html/ImageBitmap.idl (225745 => 225746)


--- trunk/Source/WebCore/html/ImageBitmap.idl	2017-12-11 18:02:37 UTC (rev 225745)
+++ trunk/Source/WebCore/html/ImageBitmap.idl	2017-12-11 18:07:48 UTC (rev 225746)
@@ -24,6 +24,7 @@
  */
 
 [
+    EnabledAtRuntime=ImageBitmapOffscreenCanvas,
     Exposed=(Window,Worker),
     ImplementationLacksVTable
 ] interface ImageBitmap {

Modified: trunk/Source/WebCore/html/OffscreenCanvas.idl (225745 => 225746)


--- trunk/Source/WebCore/html/OffscreenCanvas.idl	2017-12-11 18:02:37 UTC (rev 225745)
+++ trunk/Source/WebCore/html/OffscreenCanvas.idl	2017-12-11 18:07:48 UTC (rev 225746)
@@ -40,6 +40,7 @@
 [
     ConstructorCallWith=ScriptExecutionContext,
     Constructor([EnforceRange] unsigned long width, [EnforceRange] unsigned long height),
+    EnabledAtRuntime=ImageBitmapOffscreenCanvas,
     Exposed=(Window)
 ] interface OffscreenCanvas : EventTarget {
     attribute [EnforceRange] unsigned long width;

Modified: trunk/Source/WebCore/page/RuntimeEnabledFeatures.h (225745 => 225746)


--- trunk/Source/WebCore/page/RuntimeEnabledFeatures.h	2017-12-11 18:02:37 UTC (rev 225745)
+++ trunk/Source/WebCore/page/RuntimeEnabledFeatures.h	2017-12-11 18:07:48 UTC (rev 225746)
@@ -174,6 +174,9 @@
     bool webGPUEnabled() const { return m_isWebGPUEnabled; }
 #endif
 
+    void setImageBitmapOffscreenCanvasEnabled(bool isEnabled) { m_isImageBitmapOffscreenCanvasEnabled = isEnabled; }
+    bool imageBitmapOffscreenCanvasEnabled() const { return m_isImageBitmapOffscreenCanvasEnabled; }
+
     void setCacheAPIEnabled(bool isEnabled) { m_isCacheAPIEnabled = isEnabled; }
     bool cacheAPIEnabled() const { return m_isCacheAPIEnabled; }
 
@@ -320,6 +323,8 @@
     bool m_isWebGPUEnabled { false };
 #endif
 
+    bool m_isImageBitmapOffscreenCanvasEnabled { true };
+
     bool m_isCacheAPIEnabled { false };
     bool m_isFetchAPIEnabled { true };
 

Modified: trunk/Source/WebCore/page/WindowOrWorkerGlobalScope.idl (225745 => 225746)


--- trunk/Source/WebCore/page/WindowOrWorkerGlobalScope.idl	2017-12-11 18:02:37 UTC (rev 225745)
+++ trunk/Source/WebCore/page/WindowOrWorkerGlobalScope.idl	2017-12-11 18:07:48 UTC (rev 225746)
@@ -54,6 +54,6 @@
     [EnabledAtRuntime=IsSecureContextAttribute] readonly attribute boolean isSecureContext;
 
     // ImageBitmap.
-    Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, optional ImageBitmapOptions options);
-    Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh, optional ImageBitmapOptions options);
+    [EnabledAtRuntime=ImageBitmapOffscreenCanvas] Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, optional ImageBitmapOptions options);
+    [EnabledAtRuntime=ImageBitmapOffscreenCanvas] Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh, optional ImageBitmapOptions options);
 };

Modified: trunk/Source/WebKit/ChangeLog (225745 => 225746)


--- trunk/Source/WebKit/ChangeLog	2017-12-11 18:02:37 UTC (rev 225745)
+++ trunk/Source/WebKit/ChangeLog	2017-12-11 18:07:48 UTC (rev 225746)
@@ -1,3 +1,15 @@
+2017-12-11  Dean Jackson  <d...@apple.com>
+
+        Add a runtime feature flag for ImageBitmap and OffscreenCanvas
+        https://bugs.webkit.org/show_bug.cgi?id=180652
+        <rdar://problem/35969611>
+
+        Reviewed by Antoine Quint.
+
+        Add an experimental feature flag for these interfaces.
+
+        * Shared/WebPreferences.yaml:
+
 2017-12-10  Stephan Szabo  <stephan.sz...@sony.com>
 
         APIClient.h uses things from <tuple> without including it explicitly

Modified: trunk/Source/WebKit/Shared/WebPreferences.yaml (225745 => 225746)


--- trunk/Source/WebKit/Shared/WebPreferences.yaml	2017-12-11 18:02:37 UTC (rev 225745)
+++ trunk/Source/WebKit/Shared/WebPreferences.yaml	2017-12-11 18:07:48 UTC (rev 225746)
@@ -1077,6 +1077,14 @@
   humanReadableDescription: "CSS Spring Animation prototype"
   category: experimental
 
+ImageBitmapOffscreenCanvasEnabled:
+  type: bool
+  defaultValue: true
+  humanReadableName: "ImageBitmap and OffscreenCanvas"
+  humanReadableDescription: "Support for the ImageBitmap and OffscreenCanvas APIs"
+  category: experimental
+  webcoreBinding: RuntimeEnabledFeatures
+
 LinkPreloadEnabled:
   type: bool
   defaultValue: DEFAULT_EXPERIMENTAL_FEATURES_ENABLED

Modified: trunk/Websites/webkit.org/ChangeLog (225745 => 225746)


--- trunk/Websites/webkit.org/ChangeLog	2017-12-11 18:02:37 UTC (rev 225745)
+++ trunk/Websites/webkit.org/ChangeLog	2017-12-11 18:07:48 UTC (rev 225746)
@@ -1,3 +1,15 @@
+2017-12-11  Dean Jackson  <d...@apple.com>
+
+        Add a runtime feature flag for ImageBitmap and OffscreenCanvas
+        https://bugs.webkit.org/show_bug.cgi?id=180652
+        <rdar://problem/35969611>
+
+        Reviewed by Antoine Quint.
+
+        Simple test to validate if these interfaces are enabled.
+
+        * experimental-features.html:
+
 2017-11-28  Dean Jackson  <d...@apple.com>
 
         Include gl-matrix directly since github doesn't serve the correct mime type

Modified: trunk/Websites/webkit.org/experimental-features.html (225745 => 225746)


--- trunk/Websites/webkit.org/experimental-features.html	2017-12-11 18:02:37 UTC (rev 225745)
+++ trunk/Websites/webkit.org/experimental-features.html	2017-12-11 18:07:48 UTC (rev 225746)
@@ -116,6 +116,9 @@
     return true;
 }
 
+function testImageBitmapOffscreenCanvas() {
+    return 'createImageBitmap' in window && 'OffscreenCanvas' in window;
+}
 window.addEventListener("load", function () {
     Array.from(document.querySelectorAll(".test")).forEach(element => {
         var enabled = false;
@@ -138,6 +141,7 @@
 
         <div class="test" id="SpringAnimation"><p>CSS Spring Animations</p></div>
         <div class="test" id="ES6Modules"><p>ES6 Modules in HTML</p></div>
+        <div class="test" id="ImageBitmapOffscreenCanvas"><p>ImageBitmap and OffscreenCanvas</p></div>
         <div class="test" id="LinkPreload"><p>Link Preload</p></div>
         <div class="test" id="SubtleCrypto"><p>SubtleCrypto</p></div>
         <div class="test" id="VariationFonts"><p>Variation Fonts</p></div>
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to