Give unique flag for each experimental feature in canvas and group them in web-platform-features |
||||
Issue descriptionChanged task description: Based on team discussion, we think it is better that we abandon 'Experimental Canvas Features' flag altogether because it is a confusing umbrella flag for a bundle of different small features, when we already have 'Experimental Web Platform Features' as a universal flag. Instead of what's described above, we should identify groups of different features in canvas code, give each of them a unique name, and then put it under "Experimental Web Platform Features" flag. After that, we then should explore whether we can run the canvas api tests when different small experimental features are turned on, and run shipped API tests without any experimental flags. ------------------------------------------------------------------------------------------------------- Background: In Nov 2016, canvas team announced that ImageBitmapRenderingContext is shipped and removed the experimental flag in its IDL interface. 14 months later, I accidentally discovered that this rendering context is actually hidden from the users behind --enable-experimental-canvas-features flag, because the code is written inside the getContext() factory function and it was not very obvious to detect it at the time of release. All the layout tests/pixel tests did not catch this problem because the experimental flags are all automatically turned on for testing. See https://bugs.chromium.org/p/chromium/issues/detail?id=658734 to understand the full context of the problem. Note that the RuntimeEnableFeatures::ExperimentalCanvasFeaturesEnabled() function is frequently inserted into the canvas code, so this problem has a possibility of happening again. Therefore, after a brief discussion with the rest of the canvas team, I think we might want to improve the layout test infra setup. That is, separating those stable features and experimental features in certain ways, and run the tests with the experimental flags turned on and off respectively. In addition, certain group of features (e.g.OffscreenCanvas) are now put under the big umbrella of "Experimental Web Platform Features" instead of "Experimental Canvas Features". We want to ensure coherence from the users' point of view when they are interacting with different APIs for OffscreenCanvas (i.e. not finding that one API is only accessible under 1 flag and the other API is only accessible under another flag and these two APIs are frequently used together). This might requires dig-in and exploration onto what's the possible options. I would assign this task to myself and come back when I'm free; but anyone who's interested and have time to work on it can just take the task from me.
,
Feb 28 2018
,
Mar 7 2018
,
Mar 15 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac commit 2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac Author: xlai <xlai@chromium.org> Date: Thu Mar 15 14:32:46 2018 Group experimental canvas features with the rest of web platform features The experimental canvas features have been divided into the following groups of features: - Canvas2dContextLostRestored - Canvas2dScrollPathIntoView - CanvasColorManagement - CanvasHitRegion - CanvasImageSmoothing - CanvasTransformations - ExtendedTextMetrics - ExtendedImageBitmapOptions - ExtraWebGLVideoTextureMetadata - OffscreenCanvas - OffscreenCanvasText TBR=pfeldman@chromium.org Bug: 817381 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Icff1d8aed866ed1f2e09e054755867c437e9de42 Reviewed-on: https://chromium-review.googlesource.com/957646 Commit-Queue: Olivia Lai <xlai@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Justin Novosad <junov@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Reviewed-by: Ned Nguyen <nednguyen@google.com> Cr-Commit-Position: refs/heads/master@{#543366} [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/chrome/browser/about_flags.cc [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/content/browser/renderer_host/render_process_host_impl.cc [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/content/child/runtime_features.cc [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/content/public/common/content_switches.cc [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/content/public/common/content_switches.h [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/content/test/gpu/gpu_tests/trace_integration_test.py [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/content/test/gpu/gpu_tests/webgl_conformance_integration_test.py [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializerTest.cpp [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/core/events/MouseEvent.idl [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/core/html/canvas/ImageData.cpp [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/core/html/canvas/ImageData.idl [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/core/html/canvas/ImageDataTest.cpp [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/core/html/canvas/TextMetrics.idl [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/core/imagebitmap/ImageBitmapOptions.idl [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/core/imagebitmap/ImageBitmapTest.cpp [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/core/input/Touch.idl [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasPattern.idl [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2D.cpp [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2D.idl [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2DSettings.idl [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2DTest.cpp [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/modules/canvas/canvas2d/Path2D.idl [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/modules/canvas/htmlcanvas/CanvasContextCreationAttributesModule.idl [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/modules/canvas/offscreencanvas2d/OffscreenCanvasRenderingContext2D.idl [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/modules/csspaint/PaintRenderingContext2D.idl [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/modules/webgl/WebGLTexture.idl [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/platform/exported/WebRuntimeFeatures.cpp [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/platform/graphics/CanvasColorParamsTest.cpp [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/Source/platform/runtime_enabled_features.json5 [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/third_party/WebKit/public/platform/WebRuntimeFeatures.h [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/tools/perf/benchmarks/blink_perf.py [modify] https://crrev.com/2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac/tools/perf/benchmarks/smoothness.py
,
Mar 15 2018
|
||||
►
Sign in to add a comment |
||||
Comment 1 by xlai@chromium.org
, Feb 28 2018