[webkit-changes] [268453] trunk
Title: [268453] trunk Revision 268453 Author zandober...@gmail.com Date 2020-10-14 05:06:32 -0700 (Wed, 14 Oct 2020) Log Message Remove ACCELERATED_2D_CANVAS build flags and guarded code https://bugs.webkit.org/show_bug.cgi?id=217603 Reviewed by Carlos Garcia Campos. .: Yank the CMake ENABLE_ACCELERATED_2D_CANVAS option now that it won't have any effect. FindCairoGL.cmake can also be removed. * Source/cmake/FindCairoGL.cmake: Removed. * Source/cmake/OptionsFTW.cmake: * Source/cmake/OptionsGTK.cmake: * Source/cmake/OptionsWPE.cmake: * Source/cmake/OptionsWin.cmake: * Source/cmake/WebKitFeatures.cmake: * Source/cmake/tools/vsprops/FeatureDefines.props: * Source/cmake/tools/vsprops/FeatureDefinesCairo.props: Source/WebCore: Remove code guarded by the ACCELERATED_2D_CANVAS build guard, along with related build system cruft. This feature was only implemented for Cairo, and even then was using an experimental GL-oriented backend of Cairo that was not providing necessarily better performance or experience and is not seeing further development. * PlatformMac.cmake: * SourcesCocoa.txt: * WebCore.xcodeproj/project.pbxproj: * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::createContext2d): (WebCore::HTMLCanvasElement::createContextBitmapRenderer): (WebCore::HTMLCanvasElement::shouldAccelerate const): (WebCore::HTMLCanvasElement::createImageBuffer const): * html/ImageBitmap.cpp: * html/canvas/CanvasRenderingContext2DBase.cpp: (WebCore::CanvasRenderingContext2DBase::isAccelerated const): (WebCore::CanvasRenderingContext2DBase::drawImage): (WebCore::CanvasRenderingContext2DBase::createPattern): (WebCore::CanvasRenderingContext2DBase::didDraw): (WebCore::CanvasRenderingContext2DBase::platformLayer const): Deleted. * html/canvas/CanvasRenderingContext2DBase.h: * html/canvas/ImageBitmapRenderingContext.cpp: * platform/Cairo.cmake: * platform/SourcesCairo.txt: * platform/graphics/GLContext.h: * platform/graphics/PlatformImageBuffer.h: * platform/graphics/cairo/CairoUtilities.cpp: (WebCore::cairoSurfaceSize): * platform/graphics/cairo/ImageBufferCairoGLSurfaceBackend.cpp: Removed. * platform/graphics/cairo/ImageBufferCairoGLSurfaceBackend.h: Removed. * platform/graphics/egl/GLContextEGL.cpp: (WebCore::GLContextEGL::~GLContextEGL): (WebCore::GLContextEGL::cairoDevice): Deleted. * platform/graphics/egl/GLContextEGL.h: * platform/graphics/glx/GLContextGLX.cpp: (WebCore::GLContextGLX::~GLContextGLX): (WebCore::GLContextGLX::cairoDevice): Deleted. * platform/graphics/glx/GLContextGLX.h: * platform/graphics/gpu/Texture.cpp: Removed. * platform/graphics/gpu/Texture.h: Removed. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::nativeImageForCurrentTime): * rendering/RenderLayerBacking.cpp: (WebCore::canvasCompositingStrategy): (WebCore::RenderLayerBacking::updateConfiguration): (WebCore::RenderLayerBacking::containsPaintedContent const): (WebCore::RenderLayerBacking::contentChanged): Source/WTF: * wtf/PlatformEnable.h: Remove the fallback ENABLE_ACCELERATED_2D_CANVAS definition. Tools: * Scripts/webkitperl/FeatureList.pm: Remove the ACCELERATED_2D_CANVAS feature flag. Modified Paths trunk/ChangeLog trunk/Source/WTF/ChangeLog trunk/Source/WTF/wtf/PlatformEnable.h trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/PlatformMac.cmake trunk/Source/WebCore/SourcesCocoa.txt trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj trunk/Source/WebCore/html/HTMLCanvasElement.cpp trunk/Source/WebCore/html/ImageBitmap.cpp trunk/Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp trunk/Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h trunk/Source/WebCore/html/canvas/ImageBitmapRenderingContext.cpp trunk/Source/WebCore/platform/Cairo.cmake trunk/Source/WebCore/platform/SourcesCairo.txt trunk/Source/WebCore/platform/graphics/GLContext.h trunk/Source/WebCore/platform/graphics/PlatformImageBuffer.h trunk/Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp trunk/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp trunk/Source/WebCore/platform/graphics/egl/GLContextEGL.h trunk/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp trunk/Source/WebCore/platform/graphics/glx/GLContextGLX.h trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp trunk/Source/WebCore/rendering/RenderLayerBacking.cpp trunk/Source/cmake/OptionsFTW.cmake trunk/Source/cmake/OptionsGTK.cmake trunk/Source/cmake/OptionsWPE.cmake trunk/Source/cmake/OptionsWin.cmake trunk/Source/cmake/WebKitFeatures.cmake trunk/Source/cmake/tools/vsprops/FeatureDefines.props trunk/Source/cmake/tools/vsprops/FeatureDefinesCairo.props trunk/Tools/ChangeLog trunk/Tools/Scripts/webkitperl/FeatureList.pm Removed Paths trunk/Source/WebCore/platform/graphics/cairo/ImageBufferCairoGLSurfaceBackend.cpp trunk/Source/WebCore/platform/graphics/cairo/ImageBufferCairoGLSurfaceBackend.h trunk/Source/WebCore/platform/graphics/gpu/Texture.cpp trunk/Source/WebCore/platform/graphic
[webkit-changes] [220519] trunk/Source/WebCore
Title: [220519] trunk/Source/WebCore Revision 220519 Author zandober...@gmail.com Date 2017-08-10 00:20:16 -0700 (Thu, 10 Aug 2017) Log Message [TexMap] Drop GraphicsContext3D usage from BitmapTextureGL https://bugs.webkit.org/show_bug.cgi?id=175317 Reviewed by Carlos Garcia Campos. Have BitmapTextureGL use direct OpenGL API entrypoints and constants instead of leveraging the GraphicsContext3D class. Any GraphicsContext3D object passed to BitmapTextureGL would assume rendering to the GL context that's current on that thread, translating method invocations to the OpenGL API. We can do this by ourselves and benefit by avoiding allocating GraphicsContext3D resources like the ANGLE compiler that are by most useful for WebGL. BitmapTextureGL::create() call sites are adjusted to stop passing a GraphicsContext3D reference. BitmapTextureGL::bindAsSurface() doesn't need a replacement for the passed-in GraphicsContext3D object since that object originated from the TextureMapperGL instance, whose GraphicsContext3D is by default of the render-to-current-context nature. Other changes are direct translations of GraphicsContext3D methods to OpenGL API calls, or of GraphicsContext3D values to OpenGL API constants. No new tests -- no change in behavior. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: (WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor): * platform/graphics/texmap/BitmapTextureGL.cpp: Also remove an unnecessary GraphicsContext.h header inclusion. (WebCore::BitmapTextureGL::BitmapTextureGL): (WebCore::BitmapTextureGL::didReset): (WebCore::BitmapTextureGL::updateContentsNoSwizzle): (WebCore::BitmapTextureGL::updateContents): (WebCore::BitmapTextureGL::initializeStencil): (WebCore::BitmapTextureGL::initializeDepthBuffer): (WebCore::BitmapTextureGL::clearIfNeeded): (WebCore::BitmapTextureGL::createFboIfNeeded): (WebCore::BitmapTextureGL::bindAsSurface): (WebCore::BitmapTextureGL::~BitmapTextureGL): (WebCore::BitmapTextureGL::copyFromExternalTexture): * platform/graphics/texmap/BitmapTextureGL.h: (WebCore::BitmapTextureGL::create): (WebCore::BitmapTextureGL::textureTarget const): (WebCore::BitmapTextureGL::internalFormat const): * platform/graphics/texmap/BitmapTexturePool.cpp: (WebCore::BitmapTexturePool::createTexture): * platform/graphics/texmap/TextureMapperGL.cpp: (WebCore::TextureMapperGL::bindSurface): (WebCore::TextureMapperGL::createTexture): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp trunk/Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp trunk/Source/WebCore/platform/graphics/texmap/BitmapTextureGL.h trunk/Source/WebCore/platform/graphics/texmap/BitmapTexturePool.cpp trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (220518 => 220519) --- trunk/Source/WebCore/ChangeLog 2017-08-10 06:52:52 UTC (rev 220518) +++ trunk/Source/WebCore/ChangeLog 2017-08-10 07:20:16 UTC (rev 220519) @@ -1,3 +1,53 @@ +2017-08-10 Zan Dobersek + +[TexMap] Drop GraphicsContext3D usage from BitmapTextureGL +https://bugs.webkit.org/show_bug.cgi?id=175317 + +Reviewed by Carlos Garcia Campos. + +Have BitmapTextureGL use direct OpenGL API entrypoints and constants +instead of leveraging the GraphicsContext3D class. Any GraphicsContext3D +object passed to BitmapTextureGL would assume rendering to the GL context +that's current on that thread, translating method invocations to the +OpenGL API. We can do this by ourselves and benefit by avoiding allocating +GraphicsContext3D resources like the ANGLE compiler that are by most useful +for WebGL. + +BitmapTextureGL::create() call sites are adjusted to stop passing a +GraphicsContext3D reference. BitmapTextureGL::bindAsSurface() doesn't need +a replacement for the passed-in GraphicsContext3D object since that object +originated from the TextureMapperGL instance, whose GraphicsContext3D is by +default of the render-to-current-context nature. Other changes are direct +translations of GraphicsContext3D methods to OpenGL API calls, or of +GraphicsContext3D values to OpenGL API constants. + +No new tests -- no change in behavior. + +* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: +(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor): +* platform/graphics/texmap/BitmapTextureGL.cpp: +Also remove an unnecessary GraphicsContext.h header inclusion. +(WebCore::BitmapTextureGL::BitmapTextureGL): +(WebCore::BitmapTextureGL::didReset): +(WebCore::BitmapTextureGL::updateContentsNoSwizzle): +(WebCore::BitmapTextureGL::updateContents): +(WebCore::BitmapTextureGL::initializeStencil): +(WebCore::BitmapTextureGL::initializeDepthBuffer): +
[webkit-changes] [220521] trunk/Source/WebCore
Title: [220521] trunk/Source/WebCore Revision 220521 Author zandober...@gmail.com Date 2017-08-10 00:39:39 -0700 (Thu, 10 Aug 2017) Log Message [TexMap] Remove GraphicsContext3D usage from BitmapTexturePool https://bugs.webkit.org/show_bug.cgi?id=175319 Reviewed by Carlos Garcia Campos. Drop the GraphicsContext3D reference in BitmapTexturePool now that the BitmapTextureGL doesn't require it anymore. No new tests -- no change in behavior. * platform/graphics/texmap/BitmapTexturePool.cpp: (WebCore::BitmapTexturePool::BitmapTexturePool): * platform/graphics/texmap/BitmapTexturePool.h: * platform/graphics/texmap/TextureMapperGL.cpp: (WebCore::TextureMapperGL::TextureMapperGL): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/texmap/BitmapTexturePool.cpp trunk/Source/WebCore/platform/graphics/texmap/BitmapTexturePool.h trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (220520 => 220521) --- trunk/Source/WebCore/ChangeLog 2017-08-10 07:30:04 UTC (rev 220520) +++ trunk/Source/WebCore/ChangeLog 2017-08-10 07:39:39 UTC (rev 220521) @@ -1,5 +1,23 @@ 2017-08-10 Zan Dobersek +[TexMap] Remove GraphicsContext3D usage from BitmapTexturePool +https://bugs.webkit.org/show_bug.cgi?id=175319 + +Reviewed by Carlos Garcia Campos. + +Drop the GraphicsContext3D reference in BitmapTexturePool now +that the BitmapTextureGL doesn't require it anymore. + +No new tests -- no change in behavior. + +* platform/graphics/texmap/BitmapTexturePool.cpp: +(WebCore::BitmapTexturePool::BitmapTexturePool): +* platform/graphics/texmap/BitmapTexturePool.h: +* platform/graphics/texmap/TextureMapperGL.cpp: +(WebCore::TextureMapperGL::TextureMapperGL): + +2017-08-10 Zan Dobersek + [TexMap] Drop GraphicsContext3D usage from BitmapTextureGL https://bugs.webkit.org/show_bug.cgi?id=175317 Modified: trunk/Source/WebCore/platform/graphics/texmap/BitmapTexturePool.cpp (220520 => 220521) --- trunk/Source/WebCore/platform/graphics/texmap/BitmapTexturePool.cpp 2017-08-10 07:30:04 UTC (rev 220520) +++ trunk/Source/WebCore/platform/graphics/texmap/BitmapTexturePool.cpp 2017-08-10 07:39:39 UTC (rev 220521) @@ -37,9 +37,8 @@ static const Seconds releaseUnusedTexturesTimerInterval { 500_ms }; #if USE(TEXTURE_MAPPER_GL) -BitmapTexturePool::BitmapTexturePool(const TextureMapperContextAttributes& contextAttributes, RefPtr&& context3D) +BitmapTexturePool::BitmapTexturePool(const TextureMapperContextAttributes& contextAttributes) : m_contextAttributes(contextAttributes) -, m_context3D(WTFMove(context3D)) , m_releaseUnusedTexturesTimer(RunLoop::current(), this, &BitmapTexturePool::releaseUnusedTexturesTimerFired) { } Modified: trunk/Source/WebCore/platform/graphics/texmap/BitmapTexturePool.h (220520 => 220521) --- trunk/Source/WebCore/platform/graphics/texmap/BitmapTexturePool.h 2017-08-10 07:30:04 UTC (rev 220520) +++ trunk/Source/WebCore/platform/graphics/texmap/BitmapTexturePool.h 2017-08-10 07:39:39 UTC (rev 220521) @@ -32,13 +32,8 @@ #include #include -#if USE(TEXTURE_MAPPER_GL) -#include "GraphicsContext3D.h" -#endif - namespace WebCore { -class GraphicsContext3D; class IntSize; class BitmapTexturePool { @@ -46,7 +41,7 @@ WTF_MAKE_FAST_ALLOCATED; public: #if USE(TEXTURE_MAPPER_GL) -explicit BitmapTexturePool(const TextureMapperContextAttributes&, RefPtr&&); +explicit BitmapTexturePool(const TextureMapperContextAttributes&); #endif RefPtr acquireTexture(const IntSize&, const BitmapTexture::Flags); @@ -70,7 +65,6 @@ #if USE(TEXTURE_MAPPER_GL) TextureMapperContextAttributes m_contextAttributes; -RefPtr m_context3D; #endif Vector m_textures; Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp (220520 => 220521) --- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp 2017-08-10 07:30:04 UTC (rev 220520) +++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp 2017-08-10 07:39:39 UTC (rev 220521) @@ -172,7 +172,7 @@ m_data = new TextureMapperGLData(*m_context3D); #if USE(TEXTURE_MAPPER_GL) -m_texturePool = std::make_unique(m_contextAttributes, m_context3D.copyRef()); +m_texturePool = std::make_unique(m_contextAttributes); #endif } ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [220522] trunk/Source/WebCore
Title: [220522] trunk/Source/WebCore Revision 220522 Author zandober...@gmail.com Date 2017-08-10 01:37:36 -0700 (Thu, 10 Aug 2017) Log Message Unreviewed GTK+ build fix for ENABLE_GLES2=ON. * platform/graphics/texmap/TextureMapperGLHeaders.h: Define various GL constants that are not provided in GLES2 headers but are only leveraged in OpenGL calls if at runtime the underlying OpenGL is GLES2-capable. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGLHeaders.h Diff Modified: trunk/Source/WebCore/ChangeLog (220521 => 220522) --- trunk/Source/WebCore/ChangeLog 2017-08-10 07:39:39 UTC (rev 220521) +++ trunk/Source/WebCore/ChangeLog 2017-08-10 08:37:36 UTC (rev 220522) @@ -1,5 +1,14 @@ 2017-08-10 Zan Dobersek +Unreviewed GTK+ build fix for ENABLE_GLES2=ON. + +* platform/graphics/texmap/TextureMapperGLHeaders.h: +Define various GL constants that are not provided in GLES2 headers +but are only leveraged in OpenGL calls if at runtime the underlying +OpenGL is GLES2-capable. + +2017-08-10 Zan Dobersek + [TexMap] Remove GraphicsContext3D usage from BitmapTexturePool https://bugs.webkit.org/show_bug.cgi?id=175319 Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGLHeaders.h (220521 => 220522) --- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGLHeaders.h 2017-08-10 07:39:39 UTC (rev 220521) +++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGLHeaders.h 2017-08-10 08:37:36 UTC (rev 220522) @@ -33,3 +33,23 @@ #else #include "OpenGLShims.h" #endif + +#ifndef GL_BGRA +#define GL_BGRA 0x80E1 +#endif + +#ifndef GL_TEXTURE_RECTANGLE_ARB +#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 +#endif + +#ifndef GL_UNPACK_ROW_LENGTH +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#endif + +#ifndef GL_UNPACK_SKIP_ROWS +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#endif + +#ifndef GL_UNPACK_SKIP_PIXELS +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#endif ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [220527] trunk/Source/WebKit
Title: [220527] trunk/Source/WebKit Revision 220527 Author zandober...@gmail.com Date 2017-08-10 05:25:07 -0700 (Thu, 10 Aug 2017) Log Message [GTK] Don't use --whole-archive linking flags for the WebKit2 target libraries https://bugs.webkit.org/show_bug.cgi?id=175416 Reviewed by Carlos Garcia Campos. * PlatformGTK.cmake: Drop the ADD_WHOLE_ARCHIVE_TO_LIBRARIES instruction for the WebKit2 target. This unnecessarily bundles complete archive files both into the main .so library as well as single executables that are linked against the WebKit2 target. Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/PlatformGTK.cmake Diff Modified: trunk/Source/WebKit/ChangeLog (220526 => 220527) --- trunk/Source/WebKit/ChangeLog 2017-08-10 12:01:56 UTC (rev 220526) +++ trunk/Source/WebKit/ChangeLog 2017-08-10 12:25:07 UTC (rev 220527) @@ -1,3 +1,15 @@ +2017-08-10 Zan Dobersek + +[GTK] Don't use --whole-archive linking flags for the WebKit2 target libraries +https://bugs.webkit.org/show_bug.cgi?id=175416 + +Reviewed by Carlos Garcia Campos. + +* PlatformGTK.cmake: Drop the ADD_WHOLE_ARCHIVE_TO_LIBRARIES instruction +for the WebKit2 target. This unnecessarily bundles complete archive +files both into the main .so library as well as single executables that +are linked against the WebKit2 target. + 2017-08-09 Chris Dumez Disable Beacon API on WK1 DRT and WK2 when not using NETWORK_SESSION Modified: trunk/Source/WebKit/PlatformGTK.cmake (220526 => 220527) --- trunk/Source/WebKit/PlatformGTK.cmake 2017-08-10 12:01:56 UTC (rev 220526) +++ trunk/Source/WebKit/PlatformGTK.cmake 2017-08-10 12:25:07 UTC (rev 220527) @@ -858,8 +858,6 @@ ) endif () -ADD_WHOLE_ARCHIVE_TO_LIBRARIES(WebKit2_LIBRARIES) - # To generate WebKitEnumTypes.h we want to use all installed headers, except WebKitEnumTypes.h itself. set(WebKit2GTK_ENUM_GENERATION_HEADERS ${WebKit2GTK_INSTALLED_HEADERS}) list(REMOVE_ITEM WebKit2GTK_ENUM_GENERATION_HEADERS ${DERIVED_SOURCES_WEBKIT2GTK_API_DIR}/WebKitEnumTypes.h) ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [220672] trunk/Source/WebKit
Title: [220672] trunk/Source/WebKit Revision 220672 Author zandober...@gmail.com Date 2017-08-14 03:23:35 -0700 (Mon, 14 Aug 2017) Log Message [ThreadedCompositor] Improve composition and update state handling https://bugs.webkit.org/show_bug.cgi?id=172448 Reviewed by Carlos Garcia Campos. In the ThreadedCompositor and related classes, we now track composition and scene update states separately. This enables properly piping in the DisplayRefreshMonitor object, leveraging it for both display refresh notifications and signalling to the client that the scene update is completed. In CompositingRunLoop, two separate states are now used, one for compositing and the other for scene update. Access to both should be done while the related Lock object is held. The pending update state is also tracked in order to schedule any required updates as soon as the current state update is completed. In ThreadedCompositor, the information about client notification and update completion coordination is now also kept under a Lock object, moving away from atomics. DisplayRefreshMonitor can now utilize just two methods in order to either schedule an update or report that update as finished. * Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp: (WebKit::CompositingRunLoop::CompositingRunLoop): (WebKit::CompositingRunLoop::scheduleUpdate): (WebKit::CompositingRunLoop::stopUpdates): (WebKit::CompositingRunLoop::compositionCompleted): (WebKit::CompositingRunLoop::updateCompleted): (WebKit::CompositingRunLoop::updateTimerFired): (WebKit::CompositingRunLoop::isActive): Deleted. * Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h: (WebKit::CompositingRunLoop::stateLock): * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: (WebKit::m_displayRefreshMonitor): (WebKit::ThreadedCompositor::sceneUpdateFinished): (WebKit::ThreadedCompositor::updateSceneState): (WebKit::ThreadedCompositor::requestDisplayRefreshMonitorUpdate): (WebKit::ThreadedCompositor::handleDisplayRefreshMonitorUpdate): (WebKit::ThreadedCompositor::renderNextFrameIfNeeded): Deleted. (WebKit::ThreadedCompositor::completeCoordinatedUpdateIfNeeded): Deleted. (WebKit::ThreadedCompositor::coordinateUpdateCompletionWithClient): Deleted. * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: * Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp: (WebKit::ThreadedDisplayRefreshMonitor::requestRefreshCallback): (WebKit::ThreadedDisplayRefreshMonitor::displayRefreshCallback): Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp trunk/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h trunk/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp trunk/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h trunk/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp Diff Modified: trunk/Source/WebKit/ChangeLog (220671 => 220672) --- trunk/Source/WebKit/ChangeLog 2017-08-14 09:46:33 UTC (rev 220671) +++ trunk/Source/WebKit/ChangeLog 2017-08-14 10:23:35 UTC (rev 220672) @@ -1,3 +1,52 @@ +2017-08-14 Zan Dobersek + +[ThreadedCompositor] Improve composition and update state handling +https://bugs.webkit.org/show_bug.cgi?id=172448 + +Reviewed by Carlos Garcia Campos. + +In the ThreadedCompositor and related classes, we now track composition +and scene update states separately. This enables properly piping in the +DisplayRefreshMonitor object, leveraging it for both display refresh +notifications and signalling to the client that the scene update is +completed. + +In CompositingRunLoop, two separate states are now used, one for +compositing and the other for scene update. Access to both should be done +while the related Lock object is held. The pending update state is also +tracked in order to schedule any required updates as soon as the current +state update is completed. + +In ThreadedCompositor, the information about client notification and +update completion coordination is now also kept under a Lock object, +moving away from atomics. DisplayRefreshMonitor can now utilize just +two methods in order to either schedule an update or report that update +as finished. + +* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp: +(WebKit::CompositingRunLoop::CompositingRunLoop): +(WebKit::CompositingRunLoop::scheduleUpdate): +(WebKit::CompositingRunLoop::stopUpdates): +(WebKit::CompositingRunLoop::compositionCompleted): +(WebKit::CompositingRunLoop::updateCompleted): +(WebKit::CompositingRunLoop::updateTimerFired): +(WebKit::CompositingRunLoop::isActive): De
[webkit-changes] [220699] trunk
Title: [220699] trunk Revision 220699 Author zandober...@gmail.com Date 2017-08-14 09:37:01 -0700 (Mon, 14 Aug 2017) Log Message REGRESSION(r220517-r220521) [GTK] Various compositing tests fail https://bugs.webkit.org/show_bug.cgi?id=175478 Reviewed by Sergio Villar Senin. Source/WebCore: Fix a regression introduced in r220519. Move a framebuffer binding in TextureMapperGL away from GraphicsContext3D and onto the OpenGL API to work around the framebuffer binding state that's kept in the GraphicsContext3D class. This mismatch in how the framebuffer was bound was causing a couple of test failures in compositing tests. No new tests -- regressed tests have their failure expectations removed. * platform/graphics/texmap/TextureMapperGL.cpp: (WebCore::TextureMapperGL::bindDefaultSurface): Don't use GraphicsContext3D for the glBindFramebuffer() call. This would be done in subsequent patches that would move TextureMapperGL off the GraphicsContext3D usage, but this specific use case clashes with the framebuffer binding that's done in BitmapTextureGL and was causing test failures. LayoutTests: * platform/gtk/TestExpectations: Remove failure and flakiness expectations. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/gtk/TestExpectations trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp Diff Modified: trunk/LayoutTests/ChangeLog (220698 => 220699) --- trunk/LayoutTests/ChangeLog 2017-08-14 16:08:02 UTC (rev 220698) +++ trunk/LayoutTests/ChangeLog 2017-08-14 16:37:01 UTC (rev 220699) @@ -1,3 +1,12 @@ +2017-08-14 Zan Dobersek + +REGRESSION(r220517-r220521) [GTK] Various compositing tests fail +https://bugs.webkit.org/show_bug.cgi?id=175478 + +Reviewed by Sergio Villar Senin. + +* platform/gtk/TestExpectations: Remove failure and flakiness expectations. + 2017-08-14 Ms2ger GTK-focused gardening. Modified: trunk/LayoutTests/platform/gtk/TestExpectations (220698 => 220699) --- trunk/LayoutTests/platform/gtk/TestExpectations 2017-08-14 16:08:02 UTC (rev 220698) +++ trunk/LayoutTests/platform/gtk/TestExpectations 2017-08-14 16:37:01 UTC (rev 220699) @@ -1896,9 +1896,6 @@ webkit.org/b/174354 imported/w3c/IndexedDB-private-browsing/idbfactory_open.html [ Crash Pass ] -webkit.org/b/175478 compositing/images/positioned-image-content-rect.html [ Pass ImageOnlyFailure ] -webkit.org/b/175478 compositing/images/truncated-direct-png-image.html [ Pass ImageOnlyFailure ] - # # End of Flaky tests # @@ -3414,13 +3411,6 @@ webkit.org/b/175422 http/tests/blink/sendbeacon/beacon-same-origin.html [ Failure ] webkit.org/b/175422 imported/w3c/web-platform-tests/beacon/headers/header-content-type.html [ Failure ] -webkit.org/b/175478 compositing/contents-opaque/opaque-with-clip-path.html [ ImageOnlyFailure ] -webkit.org/b/175478 compositing/masks/compositing-clip-path-and-mask.html [ ImageOnlyFailure ] -webkit.org/b/175478 compositing/masks/compositing-clip-path.html [ ImageOnlyFailure ] -webkit.org/b/175478 compositing/masks/compositing-clip-path-origin.html [ ImageOnlyFailure ] -webkit.org/b/175478 compositing/masks/reference-clip-path-on-composited.html [ ImageOnlyFailure ] -webkit.org/b/175478 css3/filters/animation-from-initial-values-with-color-matrix.html [ ImageOnlyFailure ] - # # End of non-crashing, non-flaky tests failing # Modified: trunk/Source/WebCore/ChangeLog (220698 => 220699) --- trunk/Source/WebCore/ChangeLog 2017-08-14 16:08:02 UTC (rev 220698) +++ trunk/Source/WebCore/ChangeLog 2017-08-14 16:37:01 UTC (rev 220699) @@ -1,3 +1,24 @@ +2017-08-14 Zan Dobersek + +REGRESSION(r220517-r220521) [GTK] Various compositing tests fail +https://bugs.webkit.org/show_bug.cgi?id=175478 + +Reviewed by Sergio Villar Senin. + +Fix a regression introduced in r220519. Move a framebuffer binding in TextureMapperGL +away from GraphicsContext3D and onto the OpenGL API to work around the framebuffer +binding state that's kept in the GraphicsContext3D class. This mismatch in how the +framebuffer was bound was causing a couple of test failures in compositing tests. + +No new tests -- regressed tests have their failure expectations removed. + +* platform/graphics/texmap/TextureMapperGL.cpp: +(WebCore::TextureMapperGL::bindDefaultSurface): Don't use GraphicsContext3D for the +glBindFramebuffer() call. This would be done in subsequent patches that would move +TextureMapperGL off the GraphicsContext3D usage, but this specific use case clashes +
[webkit-changes] [220700] trunk/Source/WebKit
Title: [220700] trunk/Source/WebKit Revision 220700 Author zandober...@gmail.com Date 2017-08-14 09:41:18 -0700 (Mon, 14 Aug 2017) Log Message [CoordGraphics] Simplify CoordinatedGraphicsScene state updates https://bugs.webkit.org/show_bug.cgi?id=175528 Reviewed by Carlos Garcia Campos. Hold the information about state updates in ThreadedCompositor, in the m_attributes struct. This way we don't need to store the updates in functors and accumulate them in the CoordinatedGraphicsScene class, but instead just apply any pending state update or atlas removal before the scene is rendered. This removes the need to update the CoordinatedGraphicsScene object from the main thread with data that ultimately has to be handled on the composition thread. Similarly, when updating CoordinatedGraphicsScene, we only need to synchronize on the m_attributes lock object once in order to retrieve the scene update information, instead of having each functor do that repeatedly. * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: (WebKit::CoordinatedGraphicsScene::applyStateChanges): (WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext): (WebKit::CoordinatedGraphicsScene::detach): (WebKit::CoordinatedGraphicsScene::setActive): (WebKit::CoordinatedGraphicsScene::syncRemoteContent): Deleted. (WebKit::CoordinatedGraphicsScene::appendUpdate): Deleted. * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: (WebKit::ThreadedCompositor::renderLayerTree): (WebKit::ThreadedCompositor::updateSceneState): (WebKit::ThreadedCompositor::releaseUpdateAtlases): * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h trunk/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp trunk/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h Diff Modified: trunk/Source/WebKit/ChangeLog (220699 => 220700) --- trunk/Source/WebKit/ChangeLog 2017-08-14 16:37:01 UTC (rev 220699) +++ trunk/Source/WebKit/ChangeLog 2017-08-14 16:41:18 UTC (rev 220700) @@ -1,3 +1,37 @@ +2017-08-14 Zan Dobersek + +[CoordGraphics] Simplify CoordinatedGraphicsScene state updates +https://bugs.webkit.org/show_bug.cgi?id=175528 + +Reviewed by Carlos Garcia Campos. + +Hold the information about state updates in ThreadedCompositor, in the +m_attributes struct. This way we don't need to store the updates in +functors and accumulate them in the CoordinatedGraphicsScene class, but +instead just apply any pending state update or atlas removal before the +scene is rendered. + +This removes the need to update the CoordinatedGraphicsScene object from +the main thread with data that ultimately has to be handled on the +composition thread. Similarly, when updating CoordinatedGraphicsScene, we +only need to synchronize on the m_attributes lock object once in order to +retrieve the scene update information, instead of having each functor do +that repeatedly. + +* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: +(WebKit::CoordinatedGraphicsScene::applyStateChanges): +(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext): +(WebKit::CoordinatedGraphicsScene::detach): +(WebKit::CoordinatedGraphicsScene::setActive): +(WebKit::CoordinatedGraphicsScene::syncRemoteContent): Deleted. +(WebKit::CoordinatedGraphicsScene::appendUpdate): Deleted. +* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: +* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: +(WebKit::ThreadedCompositor::renderLayerTree): +(WebKit::ThreadedCompositor::updateSceneState): +(WebKit::ThreadedCompositor::releaseUpdateAtlases): +* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: + 2017-08-14 Carlos Garcia Campos [GTK][WPE] Avoid emitting WebKitFaviconDatabase::favicon-changed multiple times while setting an icon Modified: trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp (220699 => 220700) --- trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp 2017-08-14 16:37:01 UTC (rev 220699) +++ trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp 2017-08-14 16:41:18 UTC (rev 220700) @@ -77,7 +77,7 @@ { } -void CoordinatedGraphicsScene::paintToCurrentGLContext(const TransformationMatrix& matrix, float opacity, const FloatRect& clipRect, const Color& backgroundColor, bool drawsBackground, const FloatPoint& contentPosition, TextureMapper::PaintFlags PaintFlags) +void CoordinatedGraphicsScene::applyStateChanges(const Vecto
[webkit-changes] [220792] trunk/Source/WebKit
Title: [220792] trunk/Source/WebKit Revision 220792 Author zandober...@gmail.com Date 2017-08-16 04:21:41 -0700 (Wed, 16 Aug 2017) Log Message [CoordGraphics] Simplify CoordinatedGraphicsScene state updates https://bugs.webkit.org/show_bug.cgi?id=175528 Reviewed by Carlos Garcia Campos. Hold the information about state updates in ThreadedCompositor, in the m_attributes struct. This way we don't need to store the updates in functors and accumulate them in the CoordinatedGraphicsScene class, but instead just apply any pending state update or atlas removal before the scene is rendered. This removes the need to update the CoordinatedGraphicsScene object from the main thread with data that ultimately has to be handled on the composition thread. Similarly, when updating CoordinatedGraphicsScene, we only need to synchronize on the m_attributes lock object once in order to retrieve the scene update information, instead of having each functor do that repeatedly. Outside of CoordinatedGraphicsScene and ThreadedCompositor classes, the CompositingCoordinator class now passes the atlases-to-remove Vector by a const lvalue reference down to ThreadedCompositor, and then manually clears the Vector. Before the Vector was passed as an rvalue reference, depending on the ThreadedCompositor code to clear out the original Vector object by moving its resources into the functor object. This doesn't occur anymore because the Vector object is now appended to another Vector. * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: (WebKit::CoordinatedGraphicsScene::applyStateChanges): (WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext): (WebKit::CoordinatedGraphicsScene::detach): (WebKit::CoordinatedGraphicsScene::setActive): (WebKit::CoordinatedGraphicsScene::syncRemoteContent): Deleted. (WebKit::CoordinatedGraphicsScene::appendUpdate): Deleted. * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: (WebKit::ThreadedCompositor::renderLayerTree): (WebKit::ThreadedCompositor::updateSceneState): (WebKit::ThreadedCompositor::releaseUpdateAtlases): * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: (WebKit::CompositingCoordinator::flushPendingLayerChanges): (WebKit::CompositingCoordinator::releaseAtlases): (WebKit::CompositingCoordinator::clearUpdateAtlases): * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h: * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h: * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: (WebKit::ThreadedCoordinatedLayerTreeHost::releaseUpdateAtlases): * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h: Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h trunk/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp trunk/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h trunk/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp trunk/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h trunk/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h trunk/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp trunk/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h Diff Modified: trunk/Source/WebKit/ChangeLog (220791 => 220792) --- trunk/Source/WebKit/ChangeLog 2017-08-16 10:06:14 UTC (rev 220791) +++ trunk/Source/WebKit/ChangeLog 2017-08-16 11:21:41 UTC (rev 220792) @@ -1,3 +1,55 @@ +2017-08-16 Zan Dobersek + +[CoordGraphics] Simplify CoordinatedGraphicsScene state updates +https://bugs.webkit.org/show_bug.cgi?id=175528 + + +Reviewed by Carlos Garcia Campos. + +Hold the information about state updates in ThreadedCompositor, in the +m_attributes struct. This way we don't need to store the updates in +functors and accumulate them in the CoordinatedGraphicsScene class, but +instead just apply any pending state update or atlas removal before the +scene is rendered. + +This removes the need to update the CoordinatedGraphicsScene object from +the main thread with data that ultimately has to be handled on the +composition thread. Similarly, when updating CoordinatedGraphicsScene, we +only need to synchronize on the m_attributes lock object once in order to +retrieve the scene update information, instead of having each functor do +that repeatedly. + +Outside of CoordinatedGraphicsScene and ThreadedCompositor classes, the +CompositingCoordinator class now passes the atl
[webkit-changes] [220861] trunk/Source/WebCore
Title: [220861] trunk/Source/WebCore Revision 220861 Author zandober...@gmail.com Date 2017-08-17 09:37:28 -0700 (Thu, 17 Aug 2017) Log Message [GStreamer] GstStructure shouldn't be handled through GRefPtr https://bugs.webkit.org/show_bug.cgi?id=175673 Reviewed by Xabier Rodriguez-Calvar. * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: (webkitMediaCommonEncryptionDecryptTransformCaps): GstStructure isn't ref-counted, so it should be handled through the GUniquePtr smart pointer. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (220860 => 220861) --- trunk/Source/WebCore/ChangeLog 2017-08-17 16:17:19 UTC (rev 220860) +++ trunk/Source/WebCore/ChangeLog 2017-08-17 16:37:28 UTC (rev 220861) @@ -1,3 +1,15 @@ +2017-08-17 Zan Dobersek + +[GStreamer] GstStructure shouldn't be handled through GRefPtr +https://bugs.webkit.org/show_bug.cgi?id=175673 + +Reviewed by Xabier Rodriguez-Calvar. + +* platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: +(webkitMediaCommonEncryptionDecryptTransformCaps): GstStructure isn't +ref-counted, so it should be handled through the GUniquePtr +smart pointer. + 2017-08-17 Youenn Fablet [Mac/iOS] Increase the audio buffer size when audio capture is on but web audio is not used Modified: trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp (220860 => 220861) --- trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp 2017-08-17 16:17:19 UTC (rev 220860) +++ trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp 2017-08-17 16:37:28 UTC (rev 220861) @@ -26,6 +26,7 @@ #if ENABLE(ENCRYPTED_MEDIA) && USE(GSTREAMER) #include "GRefPtrGStreamer.h" +#include "GUniquePtrGStreamer.h" #include #include @@ -112,13 +113,13 @@ unsigned size = gst_caps_get_size(caps); for (unsigned i = 0; i < size; ++i) { GstStructure* incomingStructure = gst_caps_get_structure(caps, i); -GRefPtr outgoingStructure = nullptr; +GUniquePtr outgoingStructure = nullptr; if (direction == GST_PAD_SINK) { if (!gst_structure_has_field(incomingStructure, "original-media-type")) continue; -outgoingStructure = adoptGRef(gst_structure_copy(incomingStructure)); +outgoingStructure = GUniquePtr(gst_structure_copy(incomingStructure)); gst_structure_set_name(outgoingStructure.get(), gst_structure_get_string(outgoingStructure.get(), "original-media-type")); // Filter out the DRM related fields from the down-stream caps. @@ -130,7 +131,7 @@ gst_structure_remove_field(outgoingStructure.get(), fieldName); } } else { -outgoingStructure = adoptGRef(gst_structure_copy(incomingStructure)); +outgoingStructure = GUniquePtr(gst_structure_copy(incomingStructure)); // Filter out the video related fields from the up-stream caps, // because they are not relevant to the input caps of this element and // can cause caps negotiation failures with adaptive bitrate streams. @@ -168,7 +169,7 @@ } if (!duplicate) -gst_caps_append_structure(transformedCaps, outgoingStructure.leakRef()); +gst_caps_append_structure(transformedCaps, outgoingStructure.release()); } if (filter) { ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [220862] trunk/Source/WebCore
Title: [220862] trunk/Source/WebCore Revision 220862 Author zandober...@gmail.com Date 2017-08-17 09:40:56 -0700 (Thu, 17 Aug 2017) Log Message [GStreamer] AppendPipeline: support dispatch of decryption-specific GstStructure into the pipeline https://bugs.webkit.org/show_bug.cgi?id=175668 Reviewed by Xabier Rodriguez-Calvar. Add the AppendPipeline::dispatchDecryptionStructure() method. Callers can pass in a GstStructure object that contains all the information the decryption elements in the pipeline will require to properly decrypt the content. In case the decryptor element isn't available yet, the GstStructure is stored and dispatched when that element becomes available. The dispatch itself simply creates a new custom GstEvent that adopts the given GstStructure object, sends that into the pipeline element, and shifts the state to 'ongoing'. * platform/graphics/gstreamer/mse/AppendPipeline.cpp: (WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread): (WebCore::AppendPipeline::dispatchPendingDecryptionStructure): (WebCore::AppendPipeline::dispatchDecryptionStructure): * platform/graphics/gstreamer/mse/AppendPipeline.h: Remove a redundant private: label. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h Diff Modified: trunk/Source/WebCore/ChangeLog (220861 => 220862) --- trunk/Source/WebCore/ChangeLog 2017-08-17 16:37:28 UTC (rev 220861) +++ trunk/Source/WebCore/ChangeLog 2017-08-17 16:40:56 UTC (rev 220862) @@ -1,5 +1,28 @@ 2017-08-17 Zan Dobersek +[GStreamer] AppendPipeline: support dispatch of decryption-specific GstStructure into the pipeline +https://bugs.webkit.org/show_bug.cgi?id=175668 + +Reviewed by Xabier Rodriguez-Calvar. + +Add the AppendPipeline::dispatchDecryptionStructure() method. Callers can +pass in a GstStructure object that contains all the information the +decryption elements in the pipeline will require to properly decrypt the +content. In case the decryptor element isn't available yet, the +GstStructure is stored and dispatched when that element becomes available. + +The dispatch itself simply creates a new custom GstEvent that adopts the +given GstStructure object, sends that into the pipeline element, and +shifts the state to 'ongoing'. + +* platform/graphics/gstreamer/mse/AppendPipeline.cpp: +(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread): +(WebCore::AppendPipeline::dispatchPendingDecryptionStructure): +(WebCore::AppendPipeline::dispatchDecryptionStructure): +* platform/graphics/gstreamer/mse/AppendPipeline.h: Remove a redundant private: label. + +2017-08-17 Zan Dobersek + [GStreamer] GstStructure shouldn't be handled through GRefPtr https://bugs.webkit.org/show_bug.cgi?id=175673 Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp (220861 => 220862) --- trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp 2017-08-17 16:37:28 UTC (rev 220861) +++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp 2017-08-17 16:40:56 UTC (rev 220862) @@ -942,6 +942,9 @@ gst_element_sync_state_with_parent(m_appsink.get()); gst_element_sync_state_with_parent(m_decryptor.get()); + +if (m_pendingDecryptionStructure) +dispatchPendingDecryptionStructure(); } else { #endif gst_pad_link(demuxerSrcPad, appsinkSinkPad.get()); @@ -1047,6 +1050,35 @@ gst_element_unlink(m_demux.get(), m_appsink.get()); } +#if ENABLE(ENCRYPTED_MEDIA) +void AppendPipeline::dispatchPendingDecryptionStructure() +{ +ASSERT(m_decryptor); +ASSERT(m_pendingDecryptionStructure); +ASSERT(m_appendState == KeyNegotiation); +GST_TRACE("dispatching key to append pipeline %p", this); + +// Release the m_pendingDecryptionStructure object since +// gst_event_new_custom() takes over ownership of it. +gst_element_send_event(m_pipeline.get(), gst_event_new_custom(GST_EVENT_CUSTOM_DOWNSTREAM_OOB, m_pendingDecryptionStructure.release())); + +setAppendState(AppendState::Ongoing); +} + +void AppendPipeline::dispatchDecryptionStructure(GUniquePtr&& structure) +{ +if (m_appendState == AppendState::KeyNegotiation) { +GST_TRACE("append pipeline %p in key negotiation", this); +m_pendingDecryptionStructure = WTFMove(structure); +if (m_decryptor) +dispatchPendingDecryptionStructure(); +else +GST_TRACE("no decryptor yet, waiting for it"); +} else +GST_TRACE("append pipeline %p not in key negotiation", this); +} +#endif + static void appendPipelineAppsinkCapsChanged(GObject* appsinkPad, GParamSpec*, AppendPipeline* appendPipeline) { GstStructure*
[webkit-changes] [220905] trunk/Source/WebCore
Title: [220905] trunk/Source/WebCore Revision 220905 Author zandober...@gmail.com Date 2017-08-18 00:45:49 -0700 (Fri, 18 Aug 2017) Log Message [EME] MediaKeySession has to initiate playback resume on HTMLMediaElement https://bugs.webkit.org/show_bug.cgi?id=175671 Reviewed by Xabier Rodriguez-Calvar. In MediaKeySession::updateKeyStatuses(), HTMLMediaElement objects that are associated with the MediaKeys instance that created this session have to be notified in order to run the 'Attempt to Resume Playback If Necessary' algorithm. MediaKeys object now tracks the sessions that were created through it. MediaKeySession object is passed a MediaKeys reference, and has that reference invalidated if/when the MediaKeys object is destroyed. In MediaKeySession::updateKeyStatuses(), a task is now queued, notifying the MediaKeys object, if any, that the associated HTMLMediaElement instances have to run the mentioned algorithm. The associated media elements are stored through CDMClient pointers, with HTMLMediaElement class inheriting from the newly-introduced CDMClient interface. HTMLMediaElement::cdmClientAttemptToResumePlaybackIfNecessary() is left unimplemented for now. The object will attach itself to and detach from the associated MediaKeys object in setMediaKeys() and the destructor, enabling the MediaKeys object to properly dispatch the playback resume requests for the attached clients. * Modules/encryptedmedia/CDMClient.h: Copied from Source/WebCore/Modules/encryptedmedia/MediaKeys.h. (WebCore::CDMClient::~CDMClient): * Modules/encryptedmedia/MediaKeySession.cpp: (WebCore::MediaKeySession::create): (WebCore::MediaKeySession::MediaKeySession): (WebCore::MediaKeySession::detachKeys): (WebCore::MediaKeySession::updateKeyStatuses): * Modules/encryptedmedia/MediaKeySession.h: * Modules/encryptedmedia/MediaKeys.cpp: (WebCore::MediaKeys::~MediaKeys): (WebCore::MediaKeys::createSession): (WebCore::MediaKeys::attachCDMClient): (WebCore::MediaKeys::detachCDMClient): (WebCore::MediaKeys::attemptToResumePlaybackOnClients): * Modules/encryptedmedia/MediaKeys.h: * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::cdmClientAttemptToResumePlaybackIfNecessary): * html/HTMLMediaElement.h: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.h trunk/Source/WebCore/Modules/encryptedmedia/MediaKeys.cpp trunk/Source/WebCore/Modules/encryptedmedia/MediaKeys.h trunk/Source/WebCore/html/HTMLMediaElement.cpp trunk/Source/WebCore/html/HTMLMediaElement.h Added Paths trunk/Source/WebCore/Modules/encryptedmedia/CDMClient.h Diff Modified: trunk/Source/WebCore/ChangeLog (220904 => 220905) --- trunk/Source/WebCore/ChangeLog 2017-08-18 07:27:34 UTC (rev 220904) +++ trunk/Source/WebCore/ChangeLog 2017-08-18 07:45:49 UTC (rev 220905) @@ -1,3 +1,50 @@ +2017-08-18 Zan Dobersek + +[EME] MediaKeySession has to initiate playback resume on HTMLMediaElement +https://bugs.webkit.org/show_bug.cgi?id=175671 + +Reviewed by Xabier Rodriguez-Calvar. + +In MediaKeySession::updateKeyStatuses(), HTMLMediaElement objects that are +associated with the MediaKeys instance that created this session have to +be notified in order to run the 'Attempt to Resume Playback If Necessary' +algorithm. + +MediaKeys object now tracks the sessions that were created through it. +MediaKeySession object is passed a MediaKeys reference, and has that +reference invalidated if/when the MediaKeys object is destroyed. + +In MediaKeySession::updateKeyStatuses(), a task is now queued, notifying +the MediaKeys object, if any, that the associated HTMLMediaElement +instances have to run the mentioned algorithm. The associated media +elements are stored through CDMClient pointers, with HTMLMediaElement +class inheriting from the newly-introduced CDMClient interface. + +HTMLMediaElement::cdmClientAttemptToResumePlaybackIfNecessary() is left +unimplemented for now. The object will attach itself to and detach from +the associated MediaKeys object in setMediaKeys() and the destructor, +enabling the MediaKeys object to properly dispatch the playback resume +requests for the attached clients. + +* Modules/encryptedmedia/CDMClient.h: Copied from Source/WebCore/Modules/encryptedmedia/MediaKeys.h. +(WebCore::CDMClient::~CDMClient): +* Modules/encryptedmedia/MediaKeySession.cpp: +(WebCore::MediaKeySession::create): +(WebCore::MediaKeySession::MediaKeySession): +(WebCore::MediaKeySession::detachKeys): +(WebCore::MediaKeySession::updateKeyStatuses): +* Modules/encryptedmedia/MediaKeySession.h: +* Modules/encryptedmedia/MediaKeys.cpp: +(WebCore::MediaKeys::~MediaKeys): +(WebCore::MediaKeys::createSession): +
[webkit-changes] [220959] trunk
Title: [220959] trunk Revision 220959 Author zandober...@gmail.com Date 2017-08-20 23:21:38 -0700 (Sun, 20 Aug 2017) Log Message [EME] Add basic implementation of HTMLMediaElement::setMediaKeys() https://bugs.webkit.org/show_bug.cgi?id=175717 Reviewed by Xabier Rodriguez-Calvar. Source/WebCore: Add an initial and incomplete implementation of HTMLMediaElement::setMediaKeys(), interleaved with the specification wording of how this operation should behave. The implementation still doesn't cover cases of CDM instances being already associated with a different HTMLMediaElement, of CDM instances that can't be disassociated from the current HTMLMediaElement, and of failures during both association and disassociation of MediaKeys with the HTMLMediaElement. The HTMLMediaElement (as a CDMClient inheritor) has to be attached or detached from the MediaKeys object as appropriate. This attachment allows MediaKeys to initiate an attempt to resume playback whenever the key statuses of the associated MediaKeys object are updated. Upon association and disassociation with MediaKeys, the CDMInstance object of that specific MediaKeys instance is attached to or detached from the MediaPlayer instance. This allows the platform layer to gather information about the CDMInstance that will be used for decryption of media content for this specific media element. Additionally, the detachment from both MediaKeys and MediaPlayer is done upon HTMLMediaElement destruction. Upon setting the MediaKeys object, a task is queued that launches the 'Attempt to Resume Playback If Necessary' algorithm. A placeholder method is added that will implement the algorithm in the future. The HTMLMediaElement::mediaKeys() getter is also implemented, returning pointer held in m_mediaKeys. Covered to a degree by existing imported W3C tests, with a setMediaKeys()-oriented test having WPE-specific baseline update. * Modules/encryptedmedia/MediaKeys.h: (WebCore::MediaKeys::cdmInstance const): * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::~HTMLMediaElement): (WebCore::HTMLMediaElement::mediaKeys const): (WebCore::HTMLMediaElement::setMediaKeys): (WebCore::HTMLMediaElement::attemptToResumePlaybackIfNecessary): (WebCore::HTMLMediaElement::contextDestroyed): * html/HTMLMediaElement.h: * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::cdmInstanceAttached): (WebCore::MediaPlayer::cdmInstanceDetached): * platform/graphics/MediaPlayer.h: * platform/graphics/MediaPlayerPrivate.h: (WebCore::MediaPlayerPrivateInterface::cdmInstanceAttached): (WebCore::MediaPlayerPrivateInterface::cdmInstanceDetached): LayoutTests: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-expected.txt: Update the baseline, with the test no longer timing out but instead failing with a NotAllowed exception thrown. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-expected.txt trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/encryptedmedia/MediaKeys.h trunk/Source/WebCore/html/HTMLMediaElement.cpp trunk/Source/WebCore/html/HTMLMediaElement.h trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp trunk/Source/WebCore/platform/graphics/MediaPlayer.h trunk/Source/WebCore/platform/graphics/MediaPlayerPrivate.h Diff Modified: trunk/LayoutTests/ChangeLog (220958 => 220959) --- trunk/LayoutTests/ChangeLog 2017-08-21 04:26:40 UTC (rev 220958) +++ trunk/LayoutTests/ChangeLog 2017-08-21 06:21:38 UTC (rev 220959) @@ -1,3 +1,14 @@ +2017-08-20 Zan Dobersek + +[EME] Add basic implementation of HTMLMediaElement::setMediaKeys() +https://bugs.webkit.org/show_bug.cgi?id=175717 + +Reviewed by Xabier Rodriguez-Calvar. + +* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-expected.txt: +Update the baseline, with the test no longer timing out but instead +failing with a NotAllowed exception thrown. + 2017-08-19 Andy Estes [Payment Request] Add interface stubs Modified: trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-expected.txt (220958 => 220959) --- trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-expected.txt 2017-08-21 04:26:40 UTC (rev 220958) +++ trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-expected.txt 2017-08-21 06:21:38 UTC (rev 220959) @@ -1,5 +1,3 @@ -Harness Error (TIMEOUT), message = null +FAIL org.w3.clearkey, setMediaKeys assert_unreached: NotAllowedError: The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission. Reached unreachable code -TIMEOUT org.w3.clearkey, setMediaKeys Test timed out - Modified: trunk/Source/WebCore/ChangeLog (220958 => 220959) --- trunk
[webkit-changes] [220962] trunk/Source/WebCore
Title: [220962] trunk/Source/WebCore Revision 220962 Author zandober...@gmail.com Date 2017-08-21 05:56:44 -0700 (Mon, 21 Aug 2017) Log Message [EME] HTMLMediaElement: basic implementations of 'Attempt to Decrypt', 'Attempt to Resume Playback If Necessary' https://bugs.webkit.org/show_bug.cgi?id=175761 Reviewed by Xabier Rodriguez-Calvar. Add initial and incomplete implementations of the 'Attempt to Decrypt' and 'Attempt to Resume Playback If Necessary' algorithms. The implementations are interleaved with the specification text for clarity. 'Attempt to Decrypt' implementation doesn't yet address the encrypted block queue or the 'decryption blocked waiting for key' flag since it's not yet clear whether it would make more sense for this state to reside lower, in the platform layer. The gist of the algorithm is to invoke the decryption attempt through the MediaPlayer object, passing along the CDMInstance object retrieved from the MediaKeys object that is associated with this media element. 'Attempt to Resume Playback if Necessary' implementation similarly for now omits the various state flag operations. The main task at this point is to dispatch the 'Attempt to Decrypt' algorithm. HTMLMediaElement::cdmClientAttemptToResumePlaybackIfNecessary() method now invokes the attemptToResumePlaybackIfNecessary() method. MediaKeys::hasOpenSessions() is introduced, returning true if any session that was created through this MediaKeys instance is still open. This allows the 'Attempt to Decrypt' algorithm to proceed with the decryption attempt dispatch into the MediaPlayer hierarchy. For that, the MediaPlayer::attemptToDecryptWithInstance() method is added, which simply dispatches the mirror method on MediaPlayerPrivate interface. This will enable the platform-layer implementations to use the passed-in CDMInstance object for decryption purposes. * Modules/encryptedmedia/MediaKeySession.h: * Modules/encryptedmedia/MediaKeys.cpp: (WebCore::MediaKeys::hasOpenSessions const): * Modules/encryptedmedia/MediaKeys.h: * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::attemptToDecrypt): (WebCore::HTMLMediaElement::attemptToResumePlaybackIfNecessary): (WebCore::HTMLMediaElement::cdmClientAttemptToResumePlaybackIfNecessary): * html/HTMLMediaElement.h: Mark cdmClientAttemptToResumePlaybackIfNecessary() as final. * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::attemptToDecryptWithInstance): * platform/graphics/MediaPlayer.h: * platform/graphics/MediaPlayerPrivate.h: (WebCore::MediaPlayerPrivateInterface::attemptToDecryptWithInstance): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.h trunk/Source/WebCore/Modules/encryptedmedia/MediaKeys.cpp trunk/Source/WebCore/Modules/encryptedmedia/MediaKeys.h trunk/Source/WebCore/html/HTMLMediaElement.cpp trunk/Source/WebCore/html/HTMLMediaElement.h trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp trunk/Source/WebCore/platform/graphics/MediaPlayer.h trunk/Source/WebCore/platform/graphics/MediaPlayerPrivate.h Diff Modified: trunk/Source/WebCore/ChangeLog (220961 => 220962) --- trunk/Source/WebCore/ChangeLog 2017-08-21 08:28:48 UTC (rev 220961) +++ trunk/Source/WebCore/ChangeLog 2017-08-21 12:56:44 UTC (rev 220962) @@ -1,3 +1,54 @@ +2017-08-21 Zan Dobersek + +[EME] HTMLMediaElement: basic implementations of 'Attempt to Decrypt', 'Attempt to Resume Playback If Necessary' +https://bugs.webkit.org/show_bug.cgi?id=175761 + +Reviewed by Xabier Rodriguez-Calvar. + +Add initial and incomplete implementations of the 'Attempt to Decrypt' and +'Attempt to Resume Playback If Necessary' algorithms. The implementations +are interleaved with the specification text for clarity. + +'Attempt to Decrypt' implementation doesn't yet address the encrypted block +queue or the 'decryption blocked waiting for key' flag since it's not yet +clear whether it would make more sense for this state to reside lower, in +the platform layer. The gist of the algorithm is to invoke the decryption +attempt through the MediaPlayer object, passing along the CDMInstance object +retrieved from the MediaKeys object that is associated with this media +element. + +'Attempt to Resume Playback if Necessary' implementation similarly for now +omits the various state flag operations. The main task at this point is to +dispatch the 'Attempt to Decrypt' algorithm. + +HTMLMediaElement::cdmClientAttemptToResumePlaybackIfNecessary() method now +invokes the attemptToResumePlaybackIfNecessary() method. + +MediaKeys::hasOpenSessions() is introduced, returning true if any session +that was created through this MediaKeys instance is still open. This allows +the 'Attempt to Decrypt' algorithm to proceed with the decryption attempt +dispatch into the MediaPlayer hierarchy. + +
[webkit-changes] [221005] trunk/Source/WebKit
Title: [221005] trunk/Source/WebKit Revision 221005 Author zandober...@gmail.com Date 2017-08-21 23:31:49 -0700 (Mon, 21 Aug 2017) Log Message [WK] Add missing ENABLE(NETWORK_CACHE) build guards https://bugs.webkit.org/show_bug.cgi?id=175769 Reviewed by Carlos Alberto Lopez Perez. Given that the build guard exists, it should be possible to compile the WebKit layer with the feature disabled. Missing guards are added in order to achieve that. * NetworkProcess/NetworkConnectionToWebProcess.cpp: * NetworkProcess/NetworkConnectionToWebProcess.h: * NetworkProcess/NetworkConnectionToWebProcess.messages.in: * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::NetworkResourceLoader): * NetworkProcess/soup/NetworkProcessSoup.cpp: (WebKit::NetworkProcess::platformInitializeNetworkProcess): (WebKit::NetworkProcess::clearDiskCache): * UIProcess/soup/WebProcessPoolSoup.cpp: (WebKit::WebProcessPool::platformInitializeNetworkProcess): * WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::WebLoaderStrategy::storeDerivedDataToCache): Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in trunk/Source/WebKit/NetworkProcess/NetworkProcess.h trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp trunk/Source/WebKit/NetworkProcess/soup/NetworkProcessSoup.cpp trunk/Source/WebKit/UIProcess/soup/WebProcessPoolSoup.cpp trunk/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp Diff Modified: trunk/Source/WebKit/ChangeLog (221004 => 221005) --- trunk/Source/WebKit/ChangeLog 2017-08-22 05:54:30 UTC (rev 221004) +++ trunk/Source/WebKit/ChangeLog 2017-08-22 06:31:49 UTC (rev 221005) @@ -1,3 +1,28 @@ +2017-08-21 Zan Dobersek + +[WK] Add missing ENABLE(NETWORK_CACHE) build guards +https://bugs.webkit.org/show_bug.cgi?id=175769 + +Reviewed by Carlos Alberto Lopez Perez. + +Given that the build guard exists, it should be possible to +compile the WebKit layer with the feature disabled. Missing +guards are added in order to achieve that. + +* NetworkProcess/NetworkConnectionToWebProcess.cpp: +* NetworkProcess/NetworkConnectionToWebProcess.h: +* NetworkProcess/NetworkConnectionToWebProcess.messages.in: +* NetworkProcess/NetworkProcess.h: +* NetworkProcess/NetworkResourceLoader.cpp: +(WebKit::NetworkResourceLoader::NetworkResourceLoader): +* NetworkProcess/soup/NetworkProcessSoup.cpp: +(WebKit::NetworkProcess::platformInitializeNetworkProcess): +(WebKit::NetworkProcess::clearDiskCache): +* UIProcess/soup/WebProcessPoolSoup.cpp: +(WebKit::WebProcessPool::platformInitializeNetworkProcess): +* WebProcess/Network/WebLoaderStrategy.cpp: +(WebKit::WebLoaderStrategy::storeDerivedDataToCache): + 2017-08-21 Chris Dumez [Beacon] Content extensions should be able to intercept Beacon / Ping redirects Modified: trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp (221004 => 221005) --- trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp 2017-08-22 05:54:30 UTC (rev 221004) +++ trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp 2017-08-22 06:31:49 UTC (rev 221005) @@ -431,11 +431,13 @@ }); } +#if ENABLE(NETWORK_CACHE) void NetworkConnectionToWebProcess::storeDerivedDataToCache(const WebKit::NetworkCache::DataKey& dataKey, const IPC::DataReference& data) { if (auto* cache = NetworkProcess::singleton().cache()) cache->storeData(dataKey, data.data(), data.size()); } +#endif void NetworkConnectionToWebProcess::setCaptureExtraNetworkLoadMetricsEnabled(bool enabled) { Modified: trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h (221004 => 221005) --- trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h 2017-08-22 05:54:30 UTC (rev 221004) +++ trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h 2017-08-22 06:31:49 UTC (rev 221005) @@ -112,7 +112,9 @@ void unregisterBlobURL(const WebCore::URL&); void writeBlobsToTemporaryFiles(const Vector& blobURLs, uint64_t requestIdentifier); +#if ENABLE(NETWORK_CACHE) void storeDerivedDataToCache(const WebKit::NetworkCache::DataKey&, const IPC::DataReference&); +#endif void setCaptureExtraNetworkLoadMetricsEnabled(bool); Modified: trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in (221004 => 221005) --- trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in 2017-08-22 05:54:30 UTC (rev 221004) +++ trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in 2017-08-22 06:31:49 UTC (rev 221005) @@ -49,7 +49,9 @@ BlobSize(WebCore::URL url) -> (uint64_t re
[webkit-changes] [221007] trunk/Source/WebKit
Title: [221007] trunk/Source/WebKit Revision 221007 Author zandober...@gmail.com Date 2017-08-22 02:13:47 -0700 (Tue, 22 Aug 2017) Log Message [GTK][WPE] Rename StorageProcessMainGtk.cpp to StorageProcessMainGLib.cpp https://bugs.webkit.org/show_bug.cgi?id=175814 Reviewed by Gyuyoung Kim. Both GTK+ and WPE ports already compile the StorageProcessMainGtk.cpp file, but it should be renamed to StorageProcessMainGLib and moved into the StorageProcess/glib/ directory. * PlatformGTK.cmake: * PlatformWPE.cmake: * StorageProcess/glib/StorageProcessMainGLib.cpp: Renamed from Source/WebKit/StorageProcess/gtk/StorageProcessMainGtk.cpp. Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/PlatformGTK.cmake trunk/Source/WebKit/PlatformWPE.cmake Added Paths trunk/Source/WebKit/StorageProcess/glib/ trunk/Source/WebKit/StorageProcess/glib/StorageProcessMainGLib.cpp Removed Paths trunk/Source/WebKit/StorageProcess/gtk/ Diff Modified: trunk/Source/WebKit/ChangeLog (221006 => 221007) --- trunk/Source/WebKit/ChangeLog 2017-08-22 08:44:36 UTC (rev 221006) +++ trunk/Source/WebKit/ChangeLog 2017-08-22 09:13:47 UTC (rev 221007) @@ -1,3 +1,18 @@ +2017-08-22 Zan Dobersek + +[GTK][WPE] Rename StorageProcessMainGtk.cpp to StorageProcessMainGLib.cpp +https://bugs.webkit.org/show_bug.cgi?id=175814 + +Reviewed by Gyuyoung Kim. + +Both GTK+ and WPE ports already compile the StorageProcessMainGtk.cpp +file, but it should be renamed to StorageProcessMainGLib and moved into +the StorageProcess/glib/ directory. + +* PlatformGTK.cmake: +* PlatformWPE.cmake: +* StorageProcess/glib/StorageProcessMainGLib.cpp: Renamed from Source/WebKit/StorageProcess/gtk/StorageProcessMainGtk.cpp. + 2017-08-21 Zan Dobersek [WK] Add missing ENABLE(NETWORK_CACHE) build guards Modified: trunk/Source/WebKit/PlatformGTK.cmake (221006 => 221007) --- trunk/Source/WebKit/PlatformGTK.cmake 2017-08-22 08:44:36 UTC (rev 221006) +++ trunk/Source/WebKit/PlatformGTK.cmake 2017-08-22 09:13:47 UTC (rev 221007) @@ -99,7 +99,7 @@ Shared/unix/ChildProcessMain.cpp -StorageProcess/gtk/StorageProcessMainGtk.cpp +StorageProcess/glib/StorageProcessMainGLib.cpp UIProcess/AcceleratedDrawingAreaProxy.cpp UIProcess/BackingStore.cpp Modified: trunk/Source/WebKit/PlatformWPE.cmake (221006 => 221007) --- trunk/Source/WebKit/PlatformWPE.cmake 2017-08-22 08:44:36 UTC (rev 221006) +++ trunk/Source/WebKit/PlatformWPE.cmake 2017-08-22 09:13:47 UTC (rev 221007) @@ -120,6 +120,8 @@ Shared/wpe/ProcessExecutablePathWPE.cpp Shared/wpe/WebEventFactory.cpp +StorageProcess/glib/StorageProcessMainGLib.cpp + UIProcess/AcceleratedDrawingAreaProxy.cpp UIProcess/BackingStore.cpp UIProcess/DefaultUndoController.cpp @@ -261,9 +263,6 @@ WebProcess/soup/WebProcessSoup.cpp WebProcess/wpe/WebProcessMainWPE.cpp - -# FIXME-GWSHARE: -StorageProcess/gtk/StorageProcessMainGtk.cpp ) list(APPEND WebKit2_MESSAGES_IN_FILES Added: trunk/Source/WebKit/StorageProcess/glib/StorageProcessMainGLib.cpp (0 => 221007) --- trunk/Source/WebKit/StorageProcess/glib/StorageProcessMainGLib.cpp (rev 0) +++ trunk/Source/WebKit/StorageProcess/glib/StorageProcessMainGLib.cpp 2017-08-22 09:13:47 UTC (rev 221007) @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2015 Igalia S.L. + * + * 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 "StorageProcessMainUnix.h" + +#include "ChildProcessMain.h" +#include "StorageProcess.h" + +namespace WebKit { + +int StorageProcessMainUnix(int argc, char** argv) +{ +return ChildProcessMain(argc, argv); +}
[webkit-changes] [221008] trunk/Source/WebCore
Title: [221008] trunk/Source/WebCore Revision 221008 Author zandober...@gmail.com Date 2017-08-22 02:51:22 -0700 (Tue, 22 Aug 2017) Log Message GLContext: zero-initialize the GLContext pointer in ThreadGlobalGLContext https://bugs.webkit.org/show_bug.cgi?id=175819 Reviewed by Xabier Rodriguez-Calvar. * platform/graphics/GLContext.cpp: The ThreadGlobalGLContext object is allocated on heap, so the embedded GLContext pointer can contain a non-null value that can cause problems when e.g. checking for a current GLContext on some specific thread on which a GLContext hasn't yet been made current. Zero-initializing this pointer will avoid false positives that can occur in these circumstances. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/GLContext.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (221007 => 221008) --- trunk/Source/WebCore/ChangeLog 2017-08-22 09:13:47 UTC (rev 221007) +++ trunk/Source/WebCore/ChangeLog 2017-08-22 09:51:22 UTC (rev 221008) @@ -1,3 +1,17 @@ +2017-08-22 Zan Dobersek + +GLContext: zero-initialize the GLContext pointer in ThreadGlobalGLContext +https://bugs.webkit.org/show_bug.cgi?id=175819 + +Reviewed by Xabier Rodriguez-Calvar. + +* platform/graphics/GLContext.cpp: The ThreadGlobalGLContext object is +allocated on heap, so the embedded GLContext pointer can contain a +non-null value that can cause problems when e.g. checking for a current +GLContext on some specific thread on which a GLContext hasn't yet been +made current. Zero-initializing this pointer will avoid false positives +that can occur in these circumstances. + 2017-08-21 Youenn Fablet [Cache API] Add support for Cache.add/addAll Modified: trunk/Source/WebCore/platform/graphics/GLContext.cpp (221007 => 221008) --- trunk/Source/WebCore/platform/graphics/GLContext.cpp 2017-08-22 09:13:47 UTC (rev 221007) +++ trunk/Source/WebCore/platform/graphics/GLContext.cpp 2017-08-22 09:51:22 UTC (rev 221008) @@ -50,7 +50,7 @@ GLContext* context() { return m_context; } private: -GLContext* m_context; +GLContext* m_context { nullptr }; }; ThreadSpecific* ThreadGlobalGLContext::staticGLContext; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [221069] trunk/Tools
Title: [221069] trunk/Tools Revision 221069 Author zandober...@gmail.com Date 2017-08-22 23:45:42 -0700 (Tue, 22 Aug 2017) Log Message Unreviewed. The WPE port should build TestWebKitAPI with the same compiler flags as the GTK+ port, disabling a few flags that are sprouting a lot of warning output. * TestWebKitAPI/PlatformWPE.cmake: Modified Paths trunk/Tools/ChangeLog trunk/Tools/TestWebKitAPI/PlatformWPE.cmake Diff Modified: trunk/Tools/ChangeLog (221068 => 221069) --- trunk/Tools/ChangeLog 2017-08-23 04:59:30 UTC (rev 221068) +++ trunk/Tools/ChangeLog 2017-08-23 06:45:42 UTC (rev 221069) @@ -1,3 +1,11 @@ +2017-08-22 Zan Dobersek + +Unreviewed. The WPE port should build TestWebKitAPI with the same +compiler flags as the GTK+ port, disabling a few flags that are +sprouting a lot of warning output. + +* TestWebKitAPI/PlatformWPE.cmake: + 2017-08-20 Wenson Hsieh [iOS WK2] WKWebView schedules nonstop layout after pressing cmb+b,i,u inside a contenteditable div Modified: trunk/Tools/TestWebKitAPI/PlatformWPE.cmake (221068 => 221069) --- trunk/Tools/TestWebKitAPI/PlatformWPE.cmake 2017-08-23 04:59:30 UTC (rev 221068) +++ trunk/Tools/TestWebKitAPI/PlatformWPE.cmake 2017-08-23 06:45:42 UTC (rev 221069) @@ -58,3 +58,9 @@ add_test(TestWebCore ${TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY}/WebCore/TestWebCore) set_tests_properties(TestWebCore PROPERTIES TIMEOUT 60) set_target_properties(TestWebCore PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY}/WebCore) + +if (COMPILER_IS_GCC_OR_CLANG) +WEBKIT_ADD_TARGET_CXX_FLAGS(TestWebCore -Wno-sign-compare +-Wno-undef +-Wno-unused-parameter) +endif () ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [221073] trunk/LayoutTests
Title: [221073] trunk/LayoutTests Revision 221073 Author zandober...@gmail.com Date 2017-08-23 05:56:27 -0700 (Wed, 23 Aug 2017) Log Message Unreviewed WPE gardening. Unskipping tests under fast/canvas/, adding failure expectations for actual failures, and providing port-specific baselines for tests that require them. * platform/wpe/TestExpectations: * platform/wpe/fast/canvas: Added. * platform/wpe/fast/canvas/canvas-size-change-after-layout-expected.txt: Added. * platform/wpe/fast/canvas/canvas-zoom-expected.txt: Added. * platform/wpe/fast/canvas/webgl: Added. * platform/wpe/fast/canvas/webgl/angle-instanced-arrays-expected.txt: Added. * platform/wpe/fast/canvas/webgl/angle-instanced-arrays-out-of-bounds-expected.txt: Added. * platform/wpe/fast/canvas/webgl/css-webkit-canvas-expected.txt: Added. * platform/wpe/fast/canvas/webgl/css-webkit-canvas-repaint-expected.txt: Added. * platform/wpe/fast/canvas/webgl/framebuffer-object-attachment-expected.txt: Added. * platform/wpe/fast/canvas/webgl/glsl-conformance-expected.txt: Added. * platform/wpe/fast/canvas/webgl/oes-texture-half-float-expected.txt: Added. * platform/wpe/fast/canvas/webgl/webgl-draw-buffers-expected.txt: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/wpe/TestExpectations Added Paths trunk/LayoutTests/platform/wpe/fast/canvas/ trunk/LayoutTests/platform/wpe/fast/canvas/canvas-size-change-after-layout-expected.txt trunk/LayoutTests/platform/wpe/fast/canvas/canvas-zoom-expected.txt trunk/LayoutTests/platform/wpe/fast/canvas/webgl/ trunk/LayoutTests/platform/wpe/fast/canvas/webgl/angle-instanced-arrays-expected.txt trunk/LayoutTests/platform/wpe/fast/canvas/webgl/angle-instanced-arrays-out-of-bounds-expected.txt trunk/LayoutTests/platform/wpe/fast/canvas/webgl/css-webkit-canvas-expected.txt trunk/LayoutTests/platform/wpe/fast/canvas/webgl/css-webkit-canvas-repaint-expected.txt trunk/LayoutTests/platform/wpe/fast/canvas/webgl/framebuffer-object-attachment-expected.txt trunk/LayoutTests/platform/wpe/fast/canvas/webgl/glsl-conformance-expected.txt trunk/LayoutTests/platform/wpe/fast/canvas/webgl/oes-texture-half-float-expected.txt trunk/LayoutTests/platform/wpe/fast/canvas/webgl/webgl-draw-buffers-expected.txt Diff Modified: trunk/LayoutTests/ChangeLog (221072 => 221073) --- trunk/LayoutTests/ChangeLog 2017-08-23 12:42:48 UTC (rev 221072) +++ trunk/LayoutTests/ChangeLog 2017-08-23 12:56:27 UTC (rev 221073) @@ -1,3 +1,23 @@ +2017-08-23 Zan Dobersek + +Unreviewed WPE gardening. Unskipping tests under fast/canvas/, adding +failure expectations for actual failures, and providing port-specific +baselines for tests that require them. + +* platform/wpe/TestExpectations: +* platform/wpe/fast/canvas: Added. +* platform/wpe/fast/canvas/canvas-size-change-after-layout-expected.txt: Added. +* platform/wpe/fast/canvas/canvas-zoom-expected.txt: Added. +* platform/wpe/fast/canvas/webgl: Added. +* platform/wpe/fast/canvas/webgl/angle-instanced-arrays-expected.txt: Added. +* platform/wpe/fast/canvas/webgl/angle-instanced-arrays-out-of-bounds-expected.txt: Added. +* platform/wpe/fast/canvas/webgl/css-webkit-canvas-expected.txt: Added. +* platform/wpe/fast/canvas/webgl/css-webkit-canvas-repaint-expected.txt: Added. +* platform/wpe/fast/canvas/webgl/framebuffer-object-attachment-expected.txt: Added. +* platform/wpe/fast/canvas/webgl/glsl-conformance-expected.txt: Added. +* platform/wpe/fast/canvas/webgl/oes-texture-half-float-expected.txt: Added. +* platform/wpe/fast/canvas/webgl/webgl-draw-buffers-expected.txt: Added. + 2017-08-23 Ms2ger [GTK][WPE] Unreviewed test gardening Modified: trunk/LayoutTests/platform/wpe/TestExpectations (221072 => 221073) --- trunk/LayoutTests/platform/wpe/TestExpectations 2017-08-23 12:42:48 UTC (rev 221072) +++ trunk/LayoutTests/platform/wpe/TestExpectations 2017-08-23 12:56:27 UTC (rev 221073) @@ -166,6 +166,41 @@ webkit.org/b/169917 webgl/1.0.2/conformance/glsl/misc/shader-with-non-reserved-words.html [ Slow ] webkit.org/b/169917 webgl/1.0.3/conformance/rendering/many-draw-calls.html [ Slow ] +# fast/canvas/ +fast/canvas/canvas-blend-image.html [ Failure ] +fast/canvas/canvas-blend-solid.html [ Failure ] +fast/canvas/canvas-createPattern-video-loading.html [ Failure ] +fast/canvas/canvas-createPattern-video-modify.html [ Failure ] +fast/canvas/canvas-ellipse-zero-lineto.html [ Failure ] +fast/canvas/canvas-gradient-addStop-error.html [ Failure ] +fast/canvas/canvas-imageSmoothingQuality.html [ Failure ] +fast/canvas/canvas-overflow-hidden-animation.html [ ImageOnlyFailure ] +fast/canvas/canvas-quadratic-same-endpoint.html [ Failure ] +fast/canvas/canvas-toDataURL-case-insensitive-mimetype.html [ Failure ] +fast/canvas/canvas-toDataURL-webp.html [ Failure ] +fast/canvas/drawImage-with-negative-source-destination.html [ Failure ] +fast/c
[webkit-changes] [221131] trunk/Source/WebCore
Title: [221131] trunk/Source/WebCore Revision 221131 Author zandober...@gmail.com Date 2017-08-24 01:07:38 -0700 (Thu, 24 Aug 2017) Log Message [EME] Implement HTMLMediaElement dispatch of the onencrypted event https://bugs.webkit.org/show_bug.cgi?id=175927 Reviewed by Xabier Rodriguez-Calvar. Add the MediaPlayerClient::mediaPlayerInitializationDataEncountered() method that the platform-layer media pipeline can invoke when it hits encrypted content in the media data. The initialization data and its type are passed by the caller, allowing the HTMLMediaElement override to process it further. This is done in the mediaPlayerInitializationDataEncountered() override in the HTMLMediaElement class. Partially implementing the 'Initialization Data Encountered' algorithm, the 'encrypted' event is dispatched, with the MediaEncryptedEvent interface being leveraged to embed init data and init data type information. CORS and mixed-content validation of the media data is skipped for now. MediaPlayer::initializationDataEncountered() method should be used to dispatch the corresponding method on the client, passing on the given init data and init data type values. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaPlayerInitializationDataEncountered): * html/HTMLMediaElement.h: * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::initializationDataEncountered): * platform/graphics/MediaPlayer.h: (WebCore::MediaPlayerClient::mediaPlayerInitializationDataEncountered): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/html/HTMLMediaElement.cpp trunk/Source/WebCore/html/HTMLMediaElement.h trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp trunk/Source/WebCore/platform/graphics/MediaPlayer.h Diff Modified: trunk/Source/WebCore/ChangeLog (221130 => 221131) --- trunk/Source/WebCore/ChangeLog 2017-08-24 06:17:22 UTC (rev 221130) +++ trunk/Source/WebCore/ChangeLog 2017-08-24 08:07:38 UTC (rev 221131) @@ -1,3 +1,35 @@ +2017-08-24 Zan Dobersek + +[EME] Implement HTMLMediaElement dispatch of the onencrypted event +https://bugs.webkit.org/show_bug.cgi?id=175927 + +Reviewed by Xabier Rodriguez-Calvar. + +Add the MediaPlayerClient::mediaPlayerInitializationDataEncountered() +method that the platform-layer media pipeline can invoke when it hits +encrypted content in the media data. The initialization data and its type +are passed by the caller, allowing the HTMLMediaElement override to +process it further. + +This is done in the mediaPlayerInitializationDataEncountered() override +in the HTMLMediaElement class. Partially implementing the 'Initialization +Data Encountered' algorithm, the 'encrypted' event is dispatched, with the +MediaEncryptedEvent interface being leveraged to embed init data and init +data type information. CORS and mixed-content validation of the media data +is skipped for now. + +MediaPlayer::initializationDataEncountered() method should be used to +dispatch the corresponding method on the client, passing on the given init +data and init data type values. + +* html/HTMLMediaElement.cpp: +(WebCore::HTMLMediaElement::mediaPlayerInitializationDataEncountered): +* html/HTMLMediaElement.h: +* platform/graphics/MediaPlayer.cpp: +(WebCore::MediaPlayer::initializationDataEncountered): +* platform/graphics/MediaPlayer.h: +(WebCore::MediaPlayerClient::mediaPlayerInitializationDataEncountered): + 2017-08-23 Wenson Hsieh DeleteSelectionCommand should be robust when starting and ending editable positions cannot be found Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (221130 => 221131) --- trunk/Source/WebCore/html/HTMLMediaElement.cpp 2017-08-24 06:17:22 UTC (rev 221130) +++ trunk/Source/WebCore/html/HTMLMediaElement.cpp 2017-08-24 08:07:38 UTC (rev 221131) @@ -146,6 +146,7 @@ #endif #if ENABLE(ENCRYPTED_MEDIA) +#include "MediaEncryptedEvent.h" #include "MediaKeys.h" #endif @@ -2652,6 +2653,29 @@ // 6. Return promise. } +void HTMLMediaElement::mediaPlayerInitializationDataEncountered(const String& initDataType, RefPtr&& initData) +{ +// https://w3c.github.io/encrypted-media/#initdata-encountered +// W3C Editor's Draft 23 June 2017 + +// 1. Let the media element be the specified HTMLMediaElement object. +// 2. Let initDataType be the empty string. +// 3. Let initData be null. +// 4. If the media data is CORS-same-origin and not mixed content, run the following steps: +// 4.1. Let initDataType be the string representing the Initialization Data Type of the Initialization Data. +// 4.2. Let initData be the Initialization Data. +// FIXME: ^ + +// 5. Queue a task to create an event named encrypted that does not bubble and is not cancellable using the +//MediaEncryptedEvent interface with its t
[webkit-changes] [221181] trunk/Source/WebCore
Title: [221181] trunk/Source/WebCore Revision 221181 Author zandober...@gmail.com Date 2017-08-25 00:20:34 -0700 (Fri, 25 Aug 2017) Log Message [WebCrypto] Push WorkQueue dispatches for RSA algorithms into shared code https://bugs.webkit.org/show_bug.cgi?id=175621 Reviewed by Darin Adler. Push the WorkQueue dispatch code and other code duplicated between the Mac and libgcrypt implementations of Web Crypto into the shared layer. This patch focuses on the RSA-based algorithms. The WorkQueue dispatch code is condensed into two static functions on the CryptoAlgorithm class, the first variation handling VectorCallback as the callback type and the other handling BoolCallback. The operation is kept in a WTF::Function<> object that returns an ExceptionOr<> value embedding either a Vector object or a boolean value, as appropriate for the callback type. Functions with platform-specific implementations that are invoked from these asynchronous dispatches are made static and return an ExceptionOr value. CryptoAlgorithmParameters objects are passed through non-const references because data getters could lazily construct the underlying Vector objects. CryptoKey objects are passed through const references. Implementations can then manually retrieve and further validate any key or parameter data, as required for that specific implementation. Input data is passed through const references to the original Vector objects. No new tests -- no changes in behavior that's covered by existing tests. * crypto/CryptoAlgorithm.cpp: (WebCore::dispatchOperationImpl): (WebCore::CryptoAlgorithm::dispatchOperation): * crypto/CryptoAlgorithm.h: * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp: (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::encrypt): (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::decrypt): * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h: * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp: (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign): (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify): * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h: * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp: (WebCore::CryptoAlgorithmRSA_OAEP::encrypt): (WebCore::CryptoAlgorithmRSA_OAEP::decrypt): * crypto/algorithms/CryptoAlgorithmRSA_OAEP.h: * crypto/algorithms/CryptoAlgorithmRSA_PSS.cpp: (WebCore::CryptoAlgorithmRSA_PSS::sign): (WebCore::CryptoAlgorithmRSA_PSS::verify): * crypto/algorithms/CryptoAlgorithmRSA_PSS.h: * crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp: (WebCore::gcryptEncrypt): (WebCore::gcryptDecrypt): (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt): (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt): * crypto/gcrypt/CryptoAlgorithmRSASSA_PKCS1_v1_5GCrypt.cpp: (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign): (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify): * crypto/gcrypt/CryptoAlgorithmRSA_OAEPGCrypt.cpp: (WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt): (WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt): * crypto/gcrypt/CryptoAlgorithmRSA_PSSGCrypt.cpp: (WebCore::CryptoAlgorithmRSA_PSS::platformSign): (WebCore::CryptoAlgorithmRSA_PSS::platformVerify): * crypto/mac/CryptoAlgorithmRSAES_PKCS1_v1_5Mac.cpp: (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt): (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt): * crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp: (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign): (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify): * crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp: (WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt): (WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt): * crypto/mac/CryptoAlgorithmRSA_PSSMac.cpp: (WebCore::CryptoAlgorithmRSA_PSS::platformSign): (WebCore::CryptoAlgorithmRSA_PSS::platformVerify): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/crypto/CryptoAlgorithm.cpp trunk/Source/WebCore/crypto/CryptoAlgorithm.h trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.h trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_PSS.cpp trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_PSS.h trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmRSASSA_PKCS1_v1_5GCrypt.cpp trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmRSA_OAEPGCrypt.cpp trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmRSA_PSSGCrypt.cpp trunk/Source/WebCore/crypto/mac/CryptoAlgorithmRSAES_PKCS1_v1_5Mac.cpp trunk/Source/WebCore/crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp trunk/Source/WebCore/crypto/mac/CryptoAlgorit
[webkit-changes] [221222] trunk/Source/WebCore
Title: [221222] trunk/Source/WebCore Revision 221222 Author zandober...@gmail.com Date 2017-08-26 00:48:19 -0700 (Sat, 26 Aug 2017) Log Message [WebCrypto] Push WorkQueue dispatches for RSA algorithms into shared code https://bugs.webkit.org/show_bug.cgi?id=175621 Reviewed by Darin Adler. Push the WorkQueue dispatch code and other code duplicated between the Mac and libgcrypt implementations of Web Crypto into the shared layer. This patch focuses on the RSA-based algorithms. The WorkQueue dispatch code is condensed into two static functions on the CryptoAlgorithm class, the first variation handling VectorCallback as the callback type and the other handling BoolCallback. The operation is kept in a WTF::Function<> object that returns an ExceptionOr<> value embedding either a Vector object or a boolean value, as appropriate for the callback type. Functions with platform-specific implementations that are invoked from these asynchronous dispatches are made static and return an ExceptionOr value. CryptoAlgorithmParameters objects are passed through non-const references because data getters could lazily construct the underlying Vector objects. CryptoKey objects are passed through const references. Implementations can then manually retrieve and further validate any key or parameter data, as required for that specific implementation. Input data is passed through const references to the original Vector objects. No new tests -- no changes in behavior that's covered by existing tests. * crypto/CryptoAlgorithm.cpp: (WebCore::dispatchOperationImpl): (WebCore::CryptoAlgorithm::dispatchOperation): * crypto/CryptoAlgorithm.h: * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp: (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::encrypt): (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::decrypt): * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h: * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp: (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign): (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify): * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h: * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp: (WebCore::CryptoAlgorithmRSA_OAEP::encrypt): (WebCore::CryptoAlgorithmRSA_OAEP::decrypt): * crypto/algorithms/CryptoAlgorithmRSA_OAEP.h: * crypto/algorithms/CryptoAlgorithmRSA_PSS.cpp: (WebCore::CryptoAlgorithmRSA_PSS::sign): (WebCore::CryptoAlgorithmRSA_PSS::verify): * crypto/algorithms/CryptoAlgorithmRSA_PSS.h: * crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp: (WebCore::gcryptEncrypt): (WebCore::gcryptDecrypt): (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt): (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt): * crypto/gcrypt/CryptoAlgorithmRSASSA_PKCS1_v1_5GCrypt.cpp: (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign): (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify): * crypto/gcrypt/CryptoAlgorithmRSA_OAEPGCrypt.cpp: (WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt): (WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt): * crypto/gcrypt/CryptoAlgorithmRSA_PSSGCrypt.cpp: (WebCore::CryptoAlgorithmRSA_PSS::platformSign): (WebCore::CryptoAlgorithmRSA_PSS::platformVerify): * crypto/mac/CryptoAlgorithmRSAES_PKCS1_v1_5Mac.cpp: (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt): (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt): * crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp: (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign): (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify): * crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp: (WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt): (WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt): * crypto/mac/CryptoAlgorithmRSA_PSSMac.cpp: (WebCore::CryptoAlgorithmRSA_PSS::platformSign): (WebCore::CryptoAlgorithmRSA_PSS::platformVerify): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/crypto/CryptoAlgorithm.cpp trunk/Source/WebCore/crypto/CryptoAlgorithm.h trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.h trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_PSS.cpp trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_PSS.h trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmRSASSA_PKCS1_v1_5GCrypt.cpp trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmRSA_OAEPGCrypt.cpp trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmRSA_PSSGCrypt.cpp trunk/Source/WebCore/crypto/mac/CryptoAlgorithmRSAES_PKCS1_v1_5Mac.cpp trunk/Source/WebCore/crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp trunk/Source/WebCore/crypto/mac/CryptoAlgorit
[webkit-changes] [221235] trunk/Source/WebCore
Title: [221235] trunk/Source/WebCore Revision 221235 Author zandober...@gmail.com Date 2017-08-28 01:16:07 -0700 (Mon, 28 Aug 2017) Log Message [WebCrypto] Push WorkQueue dispatches for AES algorithms into shared code https://bugs.webkit.org/show_bug.cgi?id=175539 Reviewed by Sam Weinig. Push the WorkQueue dispatch code and other code duplicated between the Mac and libgcrypt implementations of Web Crypto into the shared layer. This patch focuses on the AES-based algorithms. Functions with platform-specific implementations that are invoked from these asynchronous dispatches are made static and return an ExceptionOr value. CryptoAlgorithmParameters objects are passed through non-const references because data getters could lazily construct the underlying Vector objects. CryptoKey objects are passed through const references. Implementations can then manually retrieve and further validate any key or parameter data, as required for that specific implementation. Input data is passed through const references to the original Vector objects. No new tests -- no changes in behavior that's covered by existing tests. * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp: (WebCore::CryptoAlgorithmAES_CBC::encrypt): (WebCore::CryptoAlgorithmAES_CBC::decrypt): * crypto/algorithms/CryptoAlgorithmAES_CBC.h: * crypto/algorithms/CryptoAlgorithmAES_CFB.cpp: (WebCore::CryptoAlgorithmAES_CFB::encrypt): (WebCore::CryptoAlgorithmAES_CFB::decrypt): * crypto/algorithms/CryptoAlgorithmAES_CFB.h: * crypto/algorithms/CryptoAlgorithmAES_CTR.cpp: (WebCore::CryptoAlgorithmAES_CTR::encrypt): (WebCore::CryptoAlgorithmAES_CTR::decrypt): * crypto/algorithms/CryptoAlgorithmAES_CTR.h: * crypto/algorithms/CryptoAlgorithmAES_GCM.cpp: (WebCore::CryptoAlgorithmAES_GCM::encrypt): (WebCore::CryptoAlgorithmAES_GCM::decrypt): * crypto/algorithms/CryptoAlgorithmAES_GCM.h: * crypto/algorithms/CryptoAlgorithmAES_KW.cpp: (WebCore::CryptoAlgorithmAES_KW::wrapKey): (WebCore::CryptoAlgorithmAES_KW::unwrapKey): * crypto/algorithms/CryptoAlgorithmAES_KW.h: * crypto/gcrypt/CryptoAlgorithmAES_CBCGCrypt.cpp: (WebCore::CryptoAlgorithmAES_CBC::platformEncrypt): (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt): * crypto/gcrypt/CryptoAlgorithmAES_CFBGCrypt.cpp: (WebCore::CryptoAlgorithmAES_CFB::platformEncrypt): (WebCore::CryptoAlgorithmAES_CFB::platformDecrypt): * crypto/gcrypt/CryptoAlgorithmAES_CTRGCrypt.cpp: (WebCore::CryptoAlgorithmAES_CTR::platformEncrypt): (WebCore::CryptoAlgorithmAES_CTR::platformDecrypt): * crypto/gcrypt/CryptoAlgorithmAES_GCMGCrypt.cpp: (WebCore::gcryptEncrypt): (WebCore::gcryptDecrypt): (WebCore::CryptoAlgorithmAES_GCM::platformEncrypt): (WebCore::CryptoAlgorithmAES_GCM::platformDecrypt): * crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp: (WebCore::CryptoAlgorithmAES_KW::platformWrapKey): (WebCore::CryptoAlgorithmAES_KW::platformUnwrapKey): * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp: (WebCore::CryptoAlgorithmAES_CBC::platformEncrypt): (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt): * crypto/mac/CryptoAlgorithmAES_CFBMac.cpp: (WebCore::CryptoAlgorithmAES_CFB::platformEncrypt): (WebCore::CryptoAlgorithmAES_CFB::platformDecrypt): * crypto/mac/CryptoAlgorithmAES_CTRMac.cpp: (WebCore::CryptoAlgorithmAES_CTR::platformEncrypt): (WebCore::CryptoAlgorithmAES_CTR::platformDecrypt): * crypto/mac/CryptoAlgorithmAES_GCMMac.cpp: (WebCore::CryptoAlgorithmAES_GCM::platformEncrypt): (WebCore::CryptoAlgorithmAES_GCM::platformDecrypt): * crypto/mac/CryptoAlgorithmAES_KWMac.cpp: (WebCore::CryptoAlgorithmAES_KW::platformWrapKey): (WebCore::CryptoAlgorithmAES_KW::platformUnwrapKey): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.h trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CFB.cpp trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CFB.h trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CTR.cpp trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CTR.h trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_GCM.cpp trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_GCM.h trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.h trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_CBCGCrypt.cpp trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_CFBGCrypt.cpp trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_CTRGCrypt.cpp trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_GCMGCrypt.cpp trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp trunk/Source/WebCore/crypto/mac/CryptoAlgorithmAES_CBCMac.cpp trunk/Source/WebCore/crypto/mac/CryptoAlgorithmAES_CFBMac.cpp trunk/Source/WebCore/crypto/mac/CryptoAlgorithmAES_CTRMac.cpp trunk/Source/WebCore/crypto/mac/CryptoAlgorithmAES_GCMMac.cpp trunk/Source/WebCore/crypto/mac/CryptoAlgorithmAES_KWMac.cpp Diff Modified: trunk/Source/WebCore/ChangeLog
[webkit-changes] [221290] trunk/Source/WebCore
Title: [221290] trunk/Source/WebCore Revision 221290 Author zandober...@gmail.com Date 2017-08-29 00:46:13 -0700 (Tue, 29 Aug 2017) Log Message Unreviewed WPE debug build fix. * platform/graphics/gstreamer/mse/AppendPipeline.cpp: (WebCore::AppendPipeline::dispatchPendingDecryptionStructure): AppendState is an enum class, enum values have to be accessed using scope resolution. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (221289 => 221290) --- trunk/Source/WebCore/ChangeLog 2017-08-29 04:33:36 UTC (rev 221289) +++ trunk/Source/WebCore/ChangeLog 2017-08-29 07:46:13 UTC (rev 221290) @@ -1,3 +1,12 @@ +2017-08-29 Zan Dobersek + +Unreviewed WPE debug build fix. + +* platform/graphics/gstreamer/mse/AppendPipeline.cpp: +(WebCore::AppendPipeline::dispatchPendingDecryptionStructure): +AppendState is an enum class, enum values have to be accessed +using scope resolution. + 2017-08-28 Andy Estes [Cocoa] Upstream WKGetWebDefaultCFStringEncoding() Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp (221289 => 221290) --- trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp 2017-08-29 04:33:36 UTC (rev 221289) +++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp 2017-08-29 07:46:13 UTC (rev 221290) @@ -1091,7 +1091,7 @@ { ASSERT(m_decryptor); ASSERT(m_pendingDecryptionStructure); -ASSERT(m_appendState == KeyNegotiation); +ASSERT(m_appendState == AppendState::KeyNegotiation); GST_TRACE("dispatching key to append pipeline %p", this); // Release the m_pendingDecryptionStructure object since ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [221293] trunk/Source/WebCore
Title: [221293] trunk/Source/WebCore Revision 221293 Author zandober...@gmail.com Date 2017-08-29 04:29:56 -0700 (Tue, 29 Aug 2017) Log Message [WebCrypto] Push WorkQueue dispatches for EC algorithms into shared code https://bugs.webkit.org/show_bug.cgi?id=175619 Reviewed by Jiewen Tan. Push the WorkQueue dispatch code duplicated between the Mac and libgcrypt implementations of Web Crypto into the shared layer. This patch focuses on the EC-based algorithms. Functions with platform-specific implementations that are invoked from these asynchronous dispatches are made static and return an ExceptionOr or std::optional value. CryptoKey and CryptoAlgorithmParameters objects are passed to those through const references. Input data is passed through const references to the original Vector objects. No new tests -- no changes in behavior that's covered by existing tests. * crypto/algorithms/CryptoAlgorithmECDH.cpp: (WebCore::CryptoAlgorithmECDH::deriveBits): * crypto/algorithms/CryptoAlgorithmECDH.h: * crypto/algorithms/CryptoAlgorithmECDSA.cpp: (WebCore::CryptoAlgorithmECDSA::sign): (WebCore::CryptoAlgorithmECDSA::verify): * crypto/algorithms/CryptoAlgorithmECDSA.h: * crypto/gcrypt/CryptoAlgorithmECDHGCrypt.cpp: (WebCore::CryptoAlgorithmECDH::platformDeriveBits): * crypto/gcrypt/CryptoAlgorithmECDSAGCrypt.cpp: (WebCore::CryptoAlgorithmECDSA::platformSign): (WebCore::CryptoAlgorithmECDSA::platformVerify): * crypto/keys/CryptoKeyEC.h: * crypto/mac/CryptoAlgorithmECDHMac.cpp: (WebCore::CryptoAlgorithmECDH::platformDeriveBits): * crypto/mac/CryptoAlgorithmECDSAMac.cpp: (WebCore::CryptoAlgorithmECDSA::platformSign): (WebCore::CryptoAlgorithmECDSA::platformVerify): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmECDH.cpp trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmECDH.h trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmECDSA.cpp trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmECDSA.h trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmECDHGCrypt.cpp trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmECDSAGCrypt.cpp trunk/Source/WebCore/crypto/keys/CryptoKeyEC.h trunk/Source/WebCore/crypto/mac/CryptoAlgorithmECDHMac.cpp trunk/Source/WebCore/crypto/mac/CryptoAlgorithmECDSAMac.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (221292 => 221293) --- trunk/Source/WebCore/ChangeLog 2017-08-29 09:32:34 UTC (rev 221292) +++ trunk/Source/WebCore/ChangeLog 2017-08-29 11:29:56 UTC (rev 221293) @@ -1,3 +1,41 @@ +2017-08-29 Zan Dobersek + +[WebCrypto] Push WorkQueue dispatches for EC algorithms into shared code +https://bugs.webkit.org/show_bug.cgi?id=175619 + +Reviewed by Jiewen Tan. + +Push the WorkQueue dispatch code duplicated between the Mac and libgcrypt +implementations of Web Crypto into the shared layer. This patch focuses on +the EC-based algorithms. + +Functions with platform-specific implementations that are invoked from +these asynchronous dispatches are made static and return an ExceptionOr or +std::optional value. CryptoKey and CryptoAlgorithmParameters objects are +passed to those through const references. Input data is passed through +const references to the original Vector objects. + +No new tests -- no changes in behavior that's covered by existing tests. + +* crypto/algorithms/CryptoAlgorithmECDH.cpp: +(WebCore::CryptoAlgorithmECDH::deriveBits): +* crypto/algorithms/CryptoAlgorithmECDH.h: +* crypto/algorithms/CryptoAlgorithmECDSA.cpp: +(WebCore::CryptoAlgorithmECDSA::sign): +(WebCore::CryptoAlgorithmECDSA::verify): +* crypto/algorithms/CryptoAlgorithmECDSA.h: +* crypto/gcrypt/CryptoAlgorithmECDHGCrypt.cpp: +(WebCore::CryptoAlgorithmECDH::platformDeriveBits): +* crypto/gcrypt/CryptoAlgorithmECDSAGCrypt.cpp: +(WebCore::CryptoAlgorithmECDSA::platformSign): +(WebCore::CryptoAlgorithmECDSA::platformVerify): +* crypto/keys/CryptoKeyEC.h: +* crypto/mac/CryptoAlgorithmECDHMac.cpp: +(WebCore::CryptoAlgorithmECDH::platformDeriveBits): +* crypto/mac/CryptoAlgorithmECDSAMac.cpp: +(WebCore::CryptoAlgorithmECDSA::platformSign): +(WebCore::CryptoAlgorithmECDSA::platformVerify): + 2017-08-19 Sergio Villar Senin [SVG] Leak in SVGAnimatedListPropertyTearOff Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmECDH.cpp (221292 => 221293) --- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmECDH.cpp 2017-08-29 09:32:34 UTC (rev 221292) +++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmECDH.cpp 2017-08-29 11:29:56 UTC (rev 221293) @@ -31,6 +31,7 @@ #include "CryptoAlgorithmEcKeyParams.h" #include "CryptoAlgorithmEcdhKeyDeriveParams.h" #include "CryptoKeyEC.h" +#include "ScriptExecutionContext.h" namespace WebCore { @@ -112,7 +113,19 @@ (*derivedKe
[webkit-changes] [221294] trunk/Source/WebCore
Title: [221294] trunk/Source/WebCore Revision 221294 Author zandober...@gmail.com Date 2017-08-29 04:30:49 -0700 (Tue, 29 Aug 2017) Log Message [WebCrypto] Push WorkQueue dispatches for HKDF, HMAC, PBKDF2 algorithms into shared code https://bugs.webkit.org/show_bug.cgi?id=175620 Reviewed by Jiewen Tan. Push the WorkQueue dispatch code and other code duplicated between the Mac and libgcrypt implementations of Web Crypto into the shared layer. This patch focuses on the HKDF, HMAC and PBKDF2 algorithms. Functions with platform-specific implementations that are invoked from these asynchronous dispatches are made static and return an ExceptionOr value. CryptoAlgorithmParameters objects are passed through non-const references because data getters could lazily construct the underlying Vector objects. CryptoKey objects are passed through const references. Implementations can then manually retrieve and further validate any key or parameter data, as required for that specific implementation. Input data is passed through const references to the original Vector objects. No new tests -- no changes in behavior that's covered by existing tests. * crypto/algorithms/CryptoAlgorithmHKDF.cpp: (WebCore::CryptoAlgorithmHKDF::deriveBits): * crypto/algorithms/CryptoAlgorithmHKDF.h: * crypto/algorithms/CryptoAlgorithmHMAC.cpp: (WebCore::CryptoAlgorithmHMAC::sign): (WebCore::CryptoAlgorithmHMAC::verify): * crypto/algorithms/CryptoAlgorithmHMAC.h: * crypto/algorithms/CryptoAlgorithmPBKDF2.cpp: (WebCore::CryptoAlgorithmPBKDF2::deriveBits): * crypto/algorithms/CryptoAlgorithmPBKDF2.h: * crypto/gcrypt/CryptoAlgorithmHKDFGCrypt.cpp: (WebCore::CryptoAlgorithmHKDF::platformDeriveBits): * crypto/gcrypt/CryptoAlgorithmHMACGCrypt.cpp: (WebCore::CryptoAlgorithmHMAC::platformSign): (WebCore::CryptoAlgorithmHMAC::platformVerify): * crypto/gcrypt/CryptoAlgorithmPBKDF2GCrypt.cpp: (WebCore::CryptoAlgorithmPBKDF2::platformDeriveBits): * crypto/mac/CryptoAlgorithmHKDFMac.cpp: (WebCore::CryptoAlgorithmHKDF::platformDeriveBits): * crypto/mac/CryptoAlgorithmHMACMac.cpp: (WebCore::CryptoAlgorithmHMAC::platformSign): (WebCore::CryptoAlgorithmHMAC::platformVerify): * crypto/mac/CryptoAlgorithmPBKDF2Mac.cpp: (WebCore::CryptoAlgorithmPBKDF2::platformDeriveBits): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHKDF.cpp trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHKDF.h trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.cpp trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.h trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmPBKDF2.cpp trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmPBKDF2.h trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmHKDFGCrypt.cpp trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmHMACGCrypt.cpp trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmPBKDF2GCrypt.cpp trunk/Source/WebCore/crypto/mac/CryptoAlgorithmHKDFMac.cpp trunk/Source/WebCore/crypto/mac/CryptoAlgorithmHMACMac.cpp trunk/Source/WebCore/crypto/mac/CryptoAlgorithmPBKDF2Mac.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (221293 => 221294) --- trunk/Source/WebCore/ChangeLog 2017-08-29 11:29:56 UTC (rev 221293) +++ trunk/Source/WebCore/ChangeLog 2017-08-29 11:30:49 UTC (rev 221294) @@ -1,5 +1,52 @@ 2017-08-29 Zan Dobersek +[WebCrypto] Push WorkQueue dispatches for HKDF, HMAC, PBKDF2 algorithms into shared code +https://bugs.webkit.org/show_bug.cgi?id=175620 + +Reviewed by Jiewen Tan. + +Push the WorkQueue dispatch code and other code duplicated between the +Mac and libgcrypt implementations of Web Crypto into the shared layer. +This patch focuses on the HKDF, HMAC and PBKDF2 algorithms. + +Functions with platform-specific implementations that are invoked from +these asynchronous dispatches are made static and return an ExceptionOr +value. CryptoAlgorithmParameters objects are passed through non-const +references because data getters could lazily construct the underlying +Vector objects. CryptoKey objects are passed through const references. +Implementations can then manually retrieve and further validate any key +or parameter data, as required for that specific implementation. Input +data is passed through const references to the original Vector objects. + +No new tests -- no changes in behavior that's covered by existing tests. + +* crypto/algorithms/CryptoAlgorithmHKDF.cpp: +(WebCore::CryptoAlgorithmHKDF::deriveBits): +* crypto/algorithms/CryptoAlgorithmHKDF.h: +* crypto/algorithms/CryptoAlgorithmHMAC.cpp: +(WebCore::CryptoAlgorithmHMAC::sign): +(WebCore::CryptoAlgorithmHMAC::verify): +* crypto/algorithms/CryptoAlgorithmHMAC.h: +* crypto/algorithms/CryptoAlgorithmPBKDF2.cpp: +(WebCore::CryptoAlgorithmPBKDF2::deriveBits): +* crypto/algorithms/CryptoAlgorithmPBKDF
[webkit-changes] [221345] trunk/LayoutTests
Title: [221345] trunk/LayoutTests Revision 221345 Author zandober...@gmail.com Date 2017-08-30 00:31:32 -0700 (Wed, 30 Aug 2017) Log Message [WebCrypto] Add layout tests covering EC P-521 https://bugs.webkit.org/show_bug.cgi?id=175659 Reviewed by Jiewen Tan. Add layout tests that cover operations with 521-bit elliptic curves. The newly-introduced tests are skipped on all platforms for now since no implementation provides support just yet. The already-existing tests are modified in a way that only tests the EC P-521 capability optionally, if e.g. P-521 key imports are successful, without affecting the tests for P-256 and P-384 operations. The newly-introduced tests are mirros of existing P-256 and P-384 tests, but they specifically test the P-521 capabilities and use appropriate curve information (X and Y coordinates for the EC public key, D for the EC private key) for that type of elliptic curve. * crypto/subtle/ec-import-pkcs8-key-export-pkcs8-key-p521-expected.txt: Added. * crypto/subtle/ec-import-pkcs8-key-export-pkcs8-key-p521.html: Added. * crypto/subtle/ec-import-spki-key-export-spki-key-p521-expected.txt: Added. * crypto/subtle/ec-import-spki-key-export-spki-key-p521.html: Added. * crypto/subtle/ecdh-derive-bits-length-limits-expected.txt: * crypto/subtle/ecdh-derive-bits-length-limits.html: * crypto/subtle/ecdh-generate-export-jwk-key-p521-expected.txt: Added. * crypto/subtle/ecdh-generate-export-jwk-key-p521.html: Added. * crypto/subtle/ecdh-generate-export-key-pkcs8-p521-expected.txt: Added. * crypto/subtle/ecdh-generate-export-key-pkcs8-p521.html: Added. * crypto/subtle/ecdh-generate-export-key-raw-p521-expected.txt: Added. * crypto/subtle/ecdh-generate-export-key-raw-p521.html: Added. * crypto/subtle/ecdh-generate-export-key-spki-p521-expected.txt: Added. * crypto/subtle/ecdh-generate-export-key-spki-p521.html: Added. * crypto/subtle/ecdh-generate-key-p521-expected.txt: Added. * crypto/subtle/ecdh-generate-key-p521.html: Added. * crypto/subtle/ecdh-import-jwk-private-key-p521-expected.txt: Added. * crypto/subtle/ecdh-import-jwk-private-key-p521.html: Added. * crypto/subtle/ecdh-import-jwk-public-key-p521-expected.txt: Added. * crypto/subtle/ecdh-import-jwk-public-key-p521.html: Added. * crypto/subtle/ecdh-import-pkcs8-key-p521-expected.txt: Added. * crypto/subtle/ecdh-import-pkcs8-key-p521-validate-ecprivatekey-parameters-publickey-expected.txt: Added. * crypto/subtle/ecdh-import-pkcs8-key-p521-validate-ecprivatekey-parameters-publickey.html: Added. * crypto/subtle/ecdh-import-pkcs8-key-p521.html: Added. * crypto/subtle/ecdh-import-raw-key-p521-expected.txt: Added. * crypto/subtle/ecdh-import-raw-key-p521.html: Added. * crypto/subtle/ecdh-import-spki-key-ecdh-identifier-expected.txt: * crypto/subtle/ecdh-import-spki-key-ecdh-identifier.html: * crypto/subtle/ecdh-import-spki-key-p521-expected.txt: Added. * crypto/subtle/ecdh-import-spki-key-p521.html: Added. * crypto/subtle/ecdsa-generate-key-sign-verify-p521-expected.txt: Added. * crypto/subtle/ecdsa-generate-key-sign-verify-p521.html: Added. * crypto/subtle/ecdsa-import-jwk-public-key-alg-521-expected.txt: Added. * crypto/subtle/ecdsa-import-jwk-public-key-alg-521.html: Added. * crypto/subtle/ecdsa-import-key-sign-p521-expected.txt: Added. * crypto/subtle/ecdsa-import-key-sign-p521.html: Added. * crypto/subtle/ecdsa-import-key-verify-p521-expected.txt: Added. * crypto/subtle/ecdsa-import-key-verify-p521.html: Added. * crypto/subtle/ecdsa-import-pkcs8-key-p521-validate-ecprivatekey-parameters-publickey-expected.txt: Added. * crypto/subtle/ecdsa-import-pkcs8-key-p521-validate-ecprivatekey-parameters-publickey.html: Added. * platform/gtk/TestExpectations: * platform/ios/TestExpectations: * platform/mac/TestExpectations: * platform/wpe/TestExpectations: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/crypto/subtle/ecdh-derive-bits-length-limits-expected.txt trunk/LayoutTests/crypto/subtle/ecdh-derive-bits-length-limits.html trunk/LayoutTests/crypto/subtle/ecdh-import-spki-key-ecdh-identifier-expected.txt trunk/LayoutTests/crypto/subtle/ecdh-import-spki-key-ecdh-identifier.html trunk/LayoutTests/platform/gtk/TestExpectations trunk/LayoutTests/platform/ios/TestExpectations trunk/LayoutTests/platform/mac/TestExpectations trunk/LayoutTests/platform/wpe/TestExpectations Added Paths trunk/LayoutTests/crypto/subtle/ec-import-pkcs8-key-export-pkcs8-key-p521-expected.txt trunk/LayoutTests/crypto/subtle/ec-import-pkcs8-key-export-pkcs8-key-p521.html trunk/LayoutTests/crypto/subtle/ec-import-spki-key-export-spki-key-p521-expected.txt trunk/LayoutTests/crypto/subtle/ec-import-spki-key-export-spki-key-p521.html trunk/LayoutTests/crypto/subtle/ecdh-generate-export-jwk-key-p521-expected.txt trunk/LayoutTests/crypto/subtle/ecdh-generate-export-jwk-key-p521.html trunk/LayoutTests/crypto/subtle/ecdh-generate-export-key-pkcs8-p521-expected.txt trunk/LayoutTests/crypto/subtle/ecdh-generate-export-key-pkcs8-p521.html trunk/LayoutTests/c
[webkit-changes] [221482] trunk/Source/WebCore
Title: [221482] trunk/Source/WebCore Revision 221482 Author zandober...@gmail.com Date 2017-09-01 10:53:40 -0700 (Fri, 01 Sep 2017) Log Message Unreviewed WPE build fix after r221439. * html/canvas/WebGL2RenderingContext.cpp: Add the HeapInlines.h header include in order to properly inline a Heap::vm() call. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (221481 => 221482) --- trunk/Source/WebCore/ChangeLog 2017-09-01 17:37:00 UTC (rev 221481) +++ trunk/Source/WebCore/ChangeLog 2017-09-01 17:53:40 UTC (rev 221482) @@ -1,3 +1,10 @@ +2017-09-01 Zan Dobersek + +Unreviewed WPE build fix after r221439. + +* html/canvas/WebGL2RenderingContext.cpp: Add the HeapInlines.h +header include in order to properly inline a Heap::vm() call. + 2017-09-01 Chris Dumez Implement FileSystemEntry.getParent() Modified: trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp (221481 => 221482) --- trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp 2017-09-01 17:37:00 UTC (rev 221481) +++ trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp 2017-09-01 17:53:40 UTC (rev 221482) @@ -54,6 +54,7 @@ #include "WebGLTransformFeedback.h" #include "WebGLVertexArrayObject.h" #include <_javascript_Core/GenericTypedArrayViewInlines.h> +#include <_javascript_Core/HeapInlines.h> #include <_javascript_Core/JSGenericTypedArrayViewInlines.h> namespace WebCore { ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [221571] trunk/Source/WebKit
Title: [221571] trunk/Source/WebKit Revision 221571 Author zandober...@gmail.com Date 2017-09-03 23:03:01 -0700 (Sun, 03 Sep 2017) Log Message [WPE] Use the device scale factor value in WebPageCreationParameters https://bugs.webkit.org/show_bug.cgi?id=175377 Reviewed by Michael Catanzaro. * WebProcess/WebPage/AcceleratedDrawingArea.cpp: (WebKit::AcceleratedDrawingArea::AcceleratedDrawingArea): WebPageCreationParameters::deviceScaleFactor value should be used to set the device scale factor on the given WebPage object. This enables correctly leveraging the scale factor for the WPE port which enters accelerated mode unconditionally and as such doesn't wait for the backing store update that would provide that value otherwise. Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/WebProcess/WebPage/AcceleratedDrawingArea.cpp Diff Modified: trunk/Source/WebKit/ChangeLog (221570 => 221571) --- trunk/Source/WebKit/ChangeLog 2017-09-04 05:58:15 UTC (rev 221570) +++ trunk/Source/WebKit/ChangeLog 2017-09-04 06:03:01 UTC (rev 221571) @@ -1,3 +1,19 @@ +2017-09-03 Zan Dobersek + +[WPE] Use the device scale factor value in WebPageCreationParameters +https://bugs.webkit.org/show_bug.cgi?id=175377 + +Reviewed by Michael Catanzaro. + +* WebProcess/WebPage/AcceleratedDrawingArea.cpp: +(WebKit::AcceleratedDrawingArea::AcceleratedDrawingArea): +WebPageCreationParameters::deviceScaleFactor value should be used +to set the device scale factor on the given WebPage object. This +enables correctly leveraging the scale factor for the WPE port +which enters accelerated mode unconditionally and as such doesn't +wait for the backing store update that would provide that value +otherwise. + 2017-09-03 Brent Fulgham [WK2][iOS] Remove unnecessary IOHIDEventServiceFastPathUserClient access Modified: trunk/Source/WebKit/WebProcess/WebPage/AcceleratedDrawingArea.cpp (221570 => 221571) --- trunk/Source/WebKit/WebProcess/WebPage/AcceleratedDrawingArea.cpp 2017-09-04 05:58:15 UTC (rev 221570) +++ trunk/Source/WebKit/WebProcess/WebPage/AcceleratedDrawingArea.cpp 2017-09-04 06:03:01 UTC (rev 221571) @@ -63,6 +63,8 @@ #endif if (!m_webPage.isVisible()) suspendPainting(); + +m_webPage.corePage()->setDeviceScaleFactor(parameters.deviceScaleFactor); } void AcceleratedDrawingArea::setNeedsDisplay() ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [221572] trunk/Source
Title: [221572] trunk/Source Revision 221572 Author zandober...@gmail.com Date 2017-09-03 23:04:39 -0700 (Sun, 03 Sep 2017) Log Message [GTK] Libgcrypt warning: missing initialization - please fix the application https://bugs.webkit.org/show_bug.cgi?id=171230 Reviewed by Michael Catanzaro. Source/WebCore/PAL: Add the Initialization.h header, containing the single initialize() static function that initializes the libgcrypt library. This header only includes the default libgcrypt header, and nothing else. It's not added to the existing Utilities.h header because that one pulls in other unnecessary headers that for instance use the new() operator, but that collides with the implementation files that define WebKit process entrypoints and intentionally don't include the config.h that brings in FastMalloc to properly define the new() and delete() operators, resulting in compilation errors due to the new and delete operators being defined to warning strings in always-included WebKit2Prefix.h. * pal/crypto/gcrypt/Initialization.h: Copied from Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp. (PAL::GCrypt::initialize): Source/WebKit: Replicate the libgcrypt initialization in the NetworkProcess entrypoint. This is required due to libgcrypt being used through digest operations originating from the certificate hash computation in SoupNetworkSession. The initialization is moved to the PAL library, and the initialize() function is now leveraged in both NetworkProcess and WebProcess entrypoints. * NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp: (main): * WebProcess/EntryPoint/unix/WebProcessMain.cpp: (main): Modified Paths trunk/Source/WebCore/PAL/ChangeLog trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp trunk/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp Added Paths trunk/Source/WebCore/PAL/pal/crypto/gcrypt/Initialization.h Diff Modified: trunk/Source/WebCore/PAL/ChangeLog (221571 => 221572) --- trunk/Source/WebCore/PAL/ChangeLog 2017-09-04 06:03:01 UTC (rev 221571) +++ trunk/Source/WebCore/PAL/ChangeLog 2017-09-04 06:04:39 UTC (rev 221572) @@ -1,3 +1,25 @@ +2017-09-03 Zan Dobersek + +[GTK] Libgcrypt warning: missing initialization - please fix the application +https://bugs.webkit.org/show_bug.cgi?id=171230 + +Reviewed by Michael Catanzaro. + +Add the Initialization.h header, containing the single initialize() static +function that initializes the libgcrypt library. This header only includes +the default libgcrypt header, and nothing else. + +It's not added to the existing Utilities.h header because that one pulls in +other unnecessary headers that for instance use the new() operator, but that +collides with the implementation files that define WebKit process entrypoints +and intentionally don't include the config.h that brings in FastMalloc to +properly define the new() and delete() operators, resulting in compilation +errors due to the new and delete operators being defined to warning strings +in always-included WebKit2Prefix.h. + +* pal/crypto/gcrypt/Initialization.h: Copied from Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp. +(PAL::GCrypt::initialize): + 2017-09-03 Dan Bernstein [Cocoa] Tidy up PassKitSPI.h Added: trunk/Source/WebCore/PAL/pal/crypto/gcrypt/Initialization.h (0 => 221572) --- trunk/Source/WebCore/PAL/pal/crypto/gcrypt/Initialization.h (rev 0) +++ trunk/Source/WebCore/PAL/pal/crypto/gcrypt/Initialization.h 2017-09-04 06:04:39 UTC (rev 221572) @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2017 Metrological Group B.V. + * Copyright (C) 2017 Igalia S.L. + * + * 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
[webkit-changes] [221613] trunk/Source/WebCore
Title: [221613] trunk/Source/WebCore Revision 221613 Author zandober...@gmail.com Date 2017-09-05 04:29:03 -0700 (Tue, 05 Sep 2017) Log Message [EME] HTMLMediaElement: setMediaKeys() should attach CDMInstance from the arriving MediaKeys https://bugs.webkit.org/show_bug.cgi?id=176352 Reviewed by Xabier Rodriguez-Calvar. In HTMLMediaElement::setMediaKeys(), use the incoming MediaKeys object to retrieve the CDMInstance that is then attached to the current MediaPlayer, if any. Covered by existing W3C tests that focus on multi-key use cases. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::setMediaKeys): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/html/HTMLMediaElement.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (221612 => 221613) --- trunk/Source/WebCore/ChangeLog 2017-09-05 08:20:09 UTC (rev 221612) +++ trunk/Source/WebCore/ChangeLog 2017-09-05 11:29:03 UTC (rev 221613) @@ -1,3 +1,19 @@ +2017-09-05 Zan Dobersek + +[EME] HTMLMediaElement: setMediaKeys() should attach CDMInstance from the arriving MediaKeys +https://bugs.webkit.org/show_bug.cgi?id=176352 + +Reviewed by Xabier Rodriguez-Calvar. + +In HTMLMediaElement::setMediaKeys(), use the incoming MediaKeys object +to retrieve the CDMInstance that is then attached to the current +MediaPlayer, if any. + +Covered by existing W3C tests that focus on multi-key use cases. + +* html/HTMLMediaElement.cpp: +(WebCore::HTMLMediaElement::setMediaKeys): + 2017-09-05 Yoshiaki Jitsukawa [Win] Fix the wincairo build after r221558 and r221583 Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (221612 => 221613) --- trunk/Source/WebCore/html/HTMLMediaElement.cpp 2017-09-05 08:20:09 UTC (rev 221612) +++ trunk/Source/WebCore/html/HTMLMediaElement.cpp 2017-09-05 11:29:03 UTC (rev 221613) @@ -2639,7 +2639,7 @@ // 5.3.1. Associate the CDM instance represented by mediaKeys with the media element for decrypting media data. mediaKeys->attachCDMClient(*this); if (m_player) -m_player->cdmInstanceAttached(m_mediaKeys->cdmInstance()); +m_player->cdmInstanceAttached(mediaKeys->cdmInstance()); // 5.3.2. If the preceding step failed, run the following steps: // 5.3.2.1. Set the mediaKeys attribute to null. ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [221614] trunk/Source/WebCore
Title: [221614] trunk/Source/WebCore Revision 221614 Author zandober...@gmail.com Date 2017-09-05 04:31:21 -0700 (Tue, 05 Sep 2017) Log Message HTMLMediaElement: attach any existing EME CDMInstance in mediaEngineWasUpdated() https://bugs.webkit.org/show_bug.cgi?id=176354 Reviewed by Xabier Rodriguez-Calvar. It's common for MediaKeys to be set on an HTMLMediaElement object before any resource is loaded for that element, meaning no underlying MediaPlayer exists at that point. In order to not stall the pipeline when encrypted content is finally loaded, the CDMInstance object of the current MediaKeys set on this element should be attached in mediaEngineWasUpdated() that's called whenever the underlying MediaPlayerPrivate object is replaced. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaEngineWasUpdated): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/html/HTMLMediaElement.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (221613 => 221614) --- trunk/Source/WebCore/ChangeLog 2017-09-05 11:29:03 UTC (rev 221613) +++ trunk/Source/WebCore/ChangeLog 2017-09-05 11:31:21 UTC (rev 221614) @@ -1,5 +1,22 @@ 2017-09-05 Zan Dobersek +HTMLMediaElement: attach any existing EME CDMInstance in mediaEngineWasUpdated() +https://bugs.webkit.org/show_bug.cgi?id=176354 + +Reviewed by Xabier Rodriguez-Calvar. + +It's common for MediaKeys to be set on an HTMLMediaElement object before +any resource is loaded for that element, meaning no underlying MediaPlayer +exists at that point. In order to not stall the pipeline when encrypted +content is finally loaded, the CDMInstance object of the current MediaKeys +set on this element should be attached in mediaEngineWasUpdated() that's +called whenever the underlying MediaPlayerPrivate object is replaced. + +* html/HTMLMediaElement.cpp: +(WebCore::HTMLMediaElement::mediaEngineWasUpdated): + +2017-09-05 Zan Dobersek + [EME] HTMLMediaElement: setMediaKeys() should attach CDMInstance from the arriving MediaKeys https://bugs.webkit.org/show_bug.cgi?id=176352 Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (221613 => 221614) --- trunk/Source/WebCore/html/HTMLMediaElement.cpp 2017-09-05 11:29:03 UTC (rev 221613) +++ trunk/Source/WebCore/html/HTMLMediaElement.cpp 2017-09-05 11:31:21 UTC (rev 221614) @@ -4881,6 +4881,11 @@ } #endif +#if ENABLE(ENCRYPTED_MEDIA) +if (m_player && m_mediaKeys) +m_player->cdmInstanceAttached(m_mediaKeys->cdmInstance()); +#endif + #if PLATFORM(IOS) || (PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE)) if (!m_player) return; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [221665] trunk/Source/WebCore
Title: [221665] trunk/Source/WebCore Revision 221665 Author zandober...@gmail.com Date 2017-09-05 23:48:49 -0700 (Tue, 05 Sep 2017) Log Message [WebCrypto] Downcast parameters and keys at the platform operation callsites https://bugs.webkit.org/show_bug.cgi?id=176392 Reviewed by Sam Weinig. Downcast to algorithm-specific parameter and key types in the shared code that then invokes platform-specific operation implementations. This reduces the duplicated downcasts across different implementations that don't differ at all in this behavior. Covered by existing tests. * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp: (WebCore::CryptoAlgorithmAES_CBC::encrypt): (WebCore::CryptoAlgorithmAES_CBC::decrypt): * crypto/algorithms/CryptoAlgorithmAES_CBC.h: * crypto/algorithms/CryptoAlgorithmAES_CFB.cpp: (WebCore::CryptoAlgorithmAES_CFB::encrypt): (WebCore::CryptoAlgorithmAES_CFB::decrypt): * crypto/algorithms/CryptoAlgorithmAES_CFB.h: * crypto/algorithms/CryptoAlgorithmAES_CTR.cpp: (WebCore::CryptoAlgorithmAES_CTR::encrypt): (WebCore::CryptoAlgorithmAES_CTR::decrypt): * crypto/algorithms/CryptoAlgorithmAES_CTR.h: * crypto/algorithms/CryptoAlgorithmAES_GCM.cpp: (WebCore::CryptoAlgorithmAES_GCM::encrypt): (WebCore::CryptoAlgorithmAES_GCM::decrypt): * crypto/algorithms/CryptoAlgorithmAES_GCM.h: * crypto/algorithms/CryptoAlgorithmAES_KW.cpp: (WebCore::CryptoAlgorithmAES_KW::wrapKey): (WebCore::CryptoAlgorithmAES_KW::unwrapKey): * crypto/algorithms/CryptoAlgorithmAES_KW.h: * crypto/algorithms/CryptoAlgorithmECDH.cpp: (WebCore::CryptoAlgorithmECDH::deriveBits): * crypto/algorithms/CryptoAlgorithmECDH.h: * crypto/algorithms/CryptoAlgorithmECDSA.cpp: (WebCore::CryptoAlgorithmECDSA::sign): (WebCore::CryptoAlgorithmECDSA::verify): * crypto/algorithms/CryptoAlgorithmECDSA.h: * crypto/algorithms/CryptoAlgorithmHKDF.cpp: (WebCore::CryptoAlgorithmHKDF::deriveBits): * crypto/algorithms/CryptoAlgorithmHKDF.h: * crypto/algorithms/CryptoAlgorithmHMAC.cpp: (WebCore::CryptoAlgorithmHMAC::sign): (WebCore::CryptoAlgorithmHMAC::verify): * crypto/algorithms/CryptoAlgorithmHMAC.h: * crypto/algorithms/CryptoAlgorithmPBKDF2.cpp: (WebCore::CryptoAlgorithmPBKDF2::deriveBits): * crypto/algorithms/CryptoAlgorithmPBKDF2.h: * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp: (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::encrypt): (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::decrypt): * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h: * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp: (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign): (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify): * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h: * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp: (WebCore::CryptoAlgorithmRSA_OAEP::encrypt): (WebCore::CryptoAlgorithmRSA_OAEP::decrypt): * crypto/algorithms/CryptoAlgorithmRSA_OAEP.h: * crypto/algorithms/CryptoAlgorithmRSA_PSS.cpp: (WebCore::CryptoAlgorithmRSA_PSS::sign): (WebCore::CryptoAlgorithmRSA_PSS::verify): * crypto/algorithms/CryptoAlgorithmRSA_PSS.h: * crypto/gcrypt/CryptoAlgorithmAES_CBCGCrypt.cpp: (WebCore::CryptoAlgorithmAES_CBC::platformEncrypt): (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt): * crypto/gcrypt/CryptoAlgorithmAES_CFBGCrypt.cpp: (WebCore::CryptoAlgorithmAES_CFB::platformEncrypt): (WebCore::CryptoAlgorithmAES_CFB::platformDecrypt): * crypto/gcrypt/CryptoAlgorithmAES_CTRGCrypt.cpp: (WebCore::CryptoAlgorithmAES_CTR::platformEncrypt): (WebCore::CryptoAlgorithmAES_CTR::platformDecrypt): * crypto/gcrypt/CryptoAlgorithmAES_GCMGCrypt.cpp: (WebCore::CryptoAlgorithmAES_GCM::platformEncrypt): (WebCore::CryptoAlgorithmAES_GCM::platformDecrypt): * crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp: (WebCore::CryptoAlgorithmAES_KW::platformWrapKey): (WebCore::CryptoAlgorithmAES_KW::platformUnwrapKey): * crypto/gcrypt/CryptoAlgorithmECDHGCrypt.cpp: (WebCore::CryptoAlgorithmECDH::platformDeriveBits): * crypto/gcrypt/CryptoAlgorithmECDSAGCrypt.cpp: (WebCore::CryptoAlgorithmECDSA::platformSign): (WebCore::CryptoAlgorithmECDSA::platformVerify): * crypto/gcrypt/CryptoAlgorithmHKDFGCrypt.cpp: (WebCore::CryptoAlgorithmHKDF::platformDeriveBits): * crypto/gcrypt/CryptoAlgorithmHMACGCrypt.cpp: (WebCore::CryptoAlgorithmHMAC::platformSign): (WebCore::CryptoAlgorithmHMAC::platformVerify): * crypto/gcrypt/CryptoAlgorithmPBKDF2GCrypt.cpp: (WebCore::CryptoAlgorithmPBKDF2::platformDeriveBits): * crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp: (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt): (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt): * crypto/gcrypt/CryptoAlgorithmRSASSA_PKCS1_v1_5GCrypt.cpp: (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign): (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify): * crypto/gcrypt/CryptoAlgorithmRSA_OAEPGCrypt.cpp: (WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt): (WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt): * crypto/gcrypt/CryptoAlgorithmRSA_PSSGCrypt.cpp: (WebCore::CryptoAlgorithmRSA_PSS::platformSign
[webkit-changes] [221667] trunk
Title: [221667] trunk Revision 221667 Author zandober...@gmail.com Date 2017-09-06 01:17:59 -0700 (Wed, 06 Sep 2017) Log Message [WebGL2] Implement getActiveUniforms() https://bugs.webkit.org/show_bug.cgi?id=175203 Reviewed by Darin Adler. Source/WebCore: Align getActiveUniforms() WebIDL signature with the spec -- making it return a WebGLAny object, making the program parameter non-nullable, and making the uniformIndices parameter a sequence on GLuint values. The getActiveUniforms() implementation in WebGL2RenderingContext validates the passed-in program and parameter name and then calls the GraphicsContext3D::getActiveUniforms() method, retrieving an array of integers that represent values of the requested parameter name for each uniform whose index was passed through uniformIndices. Test: fast/canvas/webgl/webgl2-getActiveUniforms.html * bindings/js/JSDOMConvertWebGL.cpp: (WebCore::convertToJSValue): * html/canvas/WebGL2RenderingContext.cpp: (WebCore::WebGL2RenderingContext::getActiveUniforms): * html/canvas/WebGL2RenderingContext.h: * html/canvas/WebGL2RenderingContext.idl: * html/canvas/WebGLAny.h: * platform/graphics/GraphicsContext3D.h: * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: (WebCore::GraphicsContext3D::getActiveUniforms): LayoutTests: Add a basic gl.getActiveUniforms() test that checks proper return values for a mat4 uniform in the simple vertex shader that's used when creating the 'standard' program through webgl-test.js utilities. The test remains skipped on GTK+ and Windows (WebGL 2.0 disabled). Mac port skips it as well since the shader can't be compiled properly. WPE and iOS run the test and are passing it. * fast/canvas/webgl/webgl2-getActiveUniforms-expected.txt: Added. * fast/canvas/webgl/webgl2-getActiveUniforms.html: Added. * platform/gtk/TestExpectations: * platform/mac/TestExpectations: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/gtk/TestExpectations trunk/LayoutTests/platform/mac/TestExpectations trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/bindings/js/JSDOMConvertWebGL.cpp trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.h trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.idl trunk/Source/WebCore/html/canvas/WebGLAny.h trunk/Source/WebCore/platform/graphics/GraphicsContext3D.h trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp Added Paths trunk/LayoutTests/fast/canvas/webgl/webgl2-getActiveUniforms-expected.txt trunk/LayoutTests/fast/canvas/webgl/webgl2-getActiveUniforms.html Diff Modified: trunk/LayoutTests/ChangeLog (221666 => 221667) --- trunk/LayoutTests/ChangeLog 2017-09-06 07:23:38 UTC (rev 221666) +++ trunk/LayoutTests/ChangeLog 2017-09-06 08:17:59 UTC (rev 221667) @@ -1,3 +1,22 @@ +2017-09-06 Zan Dobersek + +[WebGL2] Implement getActiveUniforms() +https://bugs.webkit.org/show_bug.cgi?id=175203 + +Reviewed by Darin Adler. + +Add a basic gl.getActiveUniforms() test that checks proper return values +for a mat4 uniform in the simple vertex shader that's used when creating +the 'standard' program through webgl-test.js utilities. The test remains +skipped on GTK+ and Windows (WebGL 2.0 disabled). Mac port skips it as +well since the shader can't be compiled properly. WPE and iOS run the +test and are passing it. + +* fast/canvas/webgl/webgl2-getActiveUniforms-expected.txt: Added. +* fast/canvas/webgl/webgl2-getActiveUniforms.html: Added. +* platform/gtk/TestExpectations: +* platform/mac/TestExpectations: + 2017-09-05 Chris Dumez Unreviewed, rebaseline test after r221639. Added: trunk/LayoutTests/fast/canvas/webgl/webgl2-getActiveUniforms-expected.txt (0 => 221667) --- trunk/LayoutTests/fast/canvas/webgl/webgl2-getActiveUniforms-expected.txt (rev 0) +++ trunk/LayoutTests/fast/canvas/webgl/webgl2-getActiveUniforms-expected.txt 2017-09-06 08:17:59 UTC (rev 221667) @@ -0,0 +1,21 @@ +CONSOLE MESSAGE: line 1: WebGL: INVALID_ENUM: getActiveUniforms: invalid parameter name +Checks for proper getActiveUniforms() behavior on a simple WebGL 2 program. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS gl.getError() is gl.NO_ERROR +PASS gl.getActiveUniforms(program, [mvpLocation], gl.UNIFORM_TYPE) is [gl.FLOAT_MAT4] +PASS gl.getActiveUniforms(program, [mvpLocation], gl.UNIFORM_SIZE) is [1] +PASS gl.getActiveUniforms(program, [mvpLocation], gl.UNIFORM_BLOCK_INDEX) is [-1] +PASS gl.getActiveUniforms(program, [mvpLocation], gl.UNIFORM_OFFSET) is [-1] +PASS gl.getActiveUniforms(program, [mvpLocation], gl.UNIFORM_ARRAY_STRIDE) is [-1] +PASS gl.getActiveUniforms(program, [mvpLocation], gl.UNIFORM_MATRIX_STRIDE) is [-1] +PASS gl.getActiveUniforms(program, [mvpLocation], gl.UNIFORM_IS_ROW_MAJOR) is [0] +PASS gl.getError() is gl.
[webkit-changes] [221718] trunk/Source/WebCore
Title: [221718] trunk/Source/WebCore Revision 221718 Author zandober...@gmail.com Date 2017-09-06 22:58:32 -0700 (Wed, 06 Sep 2017) Log Message [GStreamer] Implement MediaPlayerPrivateGStreamerMSE::attempToDecryptWithInstance() https://bugs.webkit.org/show_bug.cgi?id=176445 Reviewed by Xabier Rodriguez-Calvar. Implement MediaPlayerPrivateGStreamerMSE::attempToDecryptWithInstance(), also adding support for dispatching ClearKey keys into the append pipelines. CDMInstanceClearKey::Key is added, containing key ID and value buffers as well as the key status value. Vector of keys for a specific CDMInstance is accessible through the CDMInstanceClearKey::keys() getter. In MediaPlayerPrivateGStreamerMSE, that Vector is retrieved and then iterated over, constructing corresponding key ID and key value lists that contain GstBuffer objects into which each key ID and value data is copied. Both lists are then set on the 'drm-cipher-clearkey' structure before it's dispatched against each AppendPipeline object. * platform/encryptedmedia/clearkey/CDMClearKey.h: * platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp: (WebCore::MediaPlayerPrivateGStreamerMSE::attemptToDecryptWithInstance): * platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.h trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h Diff Modified: trunk/Source/WebCore/ChangeLog (221717 => 221718) --- trunk/Source/WebCore/ChangeLog 2017-09-07 04:23:35 UTC (rev 221717) +++ trunk/Source/WebCore/ChangeLog 2017-09-07 05:58:32 UTC (rev 221718) @@ -1,3 +1,28 @@ +2017-09-06 Zan Dobersek + +[GStreamer] Implement MediaPlayerPrivateGStreamerMSE::attempToDecryptWithInstance() +https://bugs.webkit.org/show_bug.cgi?id=176445 + +Reviewed by Xabier Rodriguez-Calvar. + +Implement MediaPlayerPrivateGStreamerMSE::attempToDecryptWithInstance(), also +adding support for dispatching ClearKey keys into the append pipelines. + +CDMInstanceClearKey::Key is added, containing key ID and value buffers as well +as the key status value. Vector of keys for a specific CDMInstance is +accessible through the CDMInstanceClearKey::keys() getter. + +In MediaPlayerPrivateGStreamerMSE, that Vector is retrieved and then iterated +over, constructing corresponding key ID and key value lists that contain +GstBuffer objects into which each key ID and value data is copied. Both lists +are then set on the 'drm-cipher-clearkey' structure before it's dispatched +against each AppendPipeline object. + +* platform/encryptedmedia/clearkey/CDMClearKey.h: +* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp: +(WebCore::MediaPlayerPrivateGStreamerMSE::attemptToDecryptWithInstance): +* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h: + 2017-09-06 Joseph Pecoraro Fetch's Response.statusText is unexpectedly the full http status line for HTTP/2 responses Modified: trunk/Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.h (221717 => 221718) --- trunk/Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.h 2017-09-07 04:23:35 UTC (rev 221717) +++ trunk/Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.h 2017-09-07 05:58:32 UTC (rev 221718) @@ -33,6 +33,7 @@ #include "CDMFactory.h" #include "CDMInstance.h" #include "CDMPrivate.h" +#include "SharedBuffer.h" namespace WebCore { @@ -91,6 +92,17 @@ void storeRecordOfKeyUsage(const String&) override; const String& keySystem() const final; + +struct Key { +KeyStatus status; +RefPtr keyIDData; +RefPtr keyValueData; +}; + +const Vector& keys() const { return m_keys; } + +private: +Vector m_keys; }; } // namespace WebCore Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp (221717 => 221718) --- trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp 2017-09-07 04:23:35 UTC (rev 221717) +++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp 2017-09-07 05:58:32 UTC (rev 221718) @@ -53,6 +53,11 @@ #include #include +#if ENABLE(ENCRYPTED_MEDIA) +#include "CDMClearKey.h" +#include "SharedBuffer.h" +#endif + static const char* dumpReadyState(WebCore::MediaPlayer::ReadyState readyState) { switch (readyState) { @@ -927,6 +932,43 @@ return result; } +#if ENABLE(ENCRYPTED_MEDIA) +void MediaPlayerPrivateGStreamerMSE::attemptToDecryptWithInstance(const CDMInstance& instance) +{ +if (is(instance)) { +auto& ckInstance = downcast(instance); +if (ckInstance.keys().isEmpty()) +
[webkit-changes] [221728] trunk/Source/WebCore
Title: [221728] trunk/Source/WebCore Revision 221728 Author zandober...@gmail.com Date 2017-09-07 05:57:14 -0700 (Thu, 07 Sep 2017) Log Message [EME] CDMClearKey: implement remaining methods of CDMPrivate derivative https://bugs.webkit.org/show_bug.cgi?id=176495 Reviewed by Xabier Rodriguez-Calvar. Implement the remaining CDMPrivateClearKey methods, following the ClearKey specification: - server certificates are not supported, but sessions are; - 'keyids' init data in JSON format is acceptable; - JSON responses are acceptable; - session IDs must use the 32-bit integer format. No new tests -- covered by imported W3C tests that utilize ClearKey. * platform/encryptedmedia/clearkey/CDMClearKey.cpp: (WebCore::parseJSONObject): (WebCore::CDMPrivateClearKey::loadAndInitialize): (WebCore::CDMPrivateClearKey::supportsServerCertificates const): (WebCore::CDMPrivateClearKey::supportsSessions const): (WebCore::CDMPrivateClearKey::supportsInitData const): (WebCore::CDMPrivateClearKey::sanitizeResponse const): (WebCore::CDMPrivateClearKey::sanitizeSessionId const): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (221727 => 221728) --- trunk/Source/WebCore/ChangeLog 2017-09-07 12:14:12 UTC (rev 221727) +++ trunk/Source/WebCore/ChangeLog 2017-09-07 12:57:14 UTC (rev 221728) @@ -1,3 +1,28 @@ +2017-09-07 Zan Dobersek + +[EME] CDMClearKey: implement remaining methods of CDMPrivate derivative +https://bugs.webkit.org/show_bug.cgi?id=176495 + +Reviewed by Xabier Rodriguez-Calvar. + +Implement the remaining CDMPrivateClearKey methods, following the +ClearKey specification: + - server certificates are not supported, but sessions are; + - 'keyids' init data in JSON format is acceptable; + - JSON responses are acceptable; + - session IDs must use the 32-bit integer format. + +No new tests -- covered by imported W3C tests that utilize ClearKey. + +* platform/encryptedmedia/clearkey/CDMClearKey.cpp: +(WebCore::parseJSONObject): +(WebCore::CDMPrivateClearKey::loadAndInitialize): +(WebCore::CDMPrivateClearKey::supportsServerCertificates const): +(WebCore::CDMPrivateClearKey::supportsSessions const): +(WebCore::CDMPrivateClearKey::supportsInitData const): +(WebCore::CDMPrivateClearKey::sanitizeResponse const): +(WebCore::CDMPrivateClearKey::sanitizeSessionId const): + 2017-09-07 Carlos Garcia Campos [GTK] Bring back line height rounding when computing font metrics Modified: trunk/Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.cpp (221727 => 221728) --- trunk/Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.cpp 2017-09-07 12:14:12 UTC (rev 221727) +++ trunk/Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.cpp 2017-09-07 12:57:14 UTC (rev 221728) @@ -35,9 +35,29 @@ #include "CDMRestrictions.h" #include "CDMSessionType.h" #include "SharedBuffer.h" +#include +using namespace Inspector; + namespace WebCore { +RefPtr parseJSONObject(const SharedBuffer& buffer) +{ +// Fail on large buffers whose size doesn't fit into a 32-bit unsigned integer. +size_t size = buffer.size(); +if (size > std::numeric_limits::max()) +return nullptr; + +// Parse the buffer contents as JSON, returning the root object (if any). +String json { buffer.data(), static_cast(size) }; +RefPtr value; +RefPtr object; +if (!InspectorValue::parseJSON(json, value) || !value->asObject(object)) +return nullptr; + +return object; +} + CDMFactoryClearKey& CDMFactoryClearKey::singleton() { static CDMFactoryClearKey s_factory; @@ -139,31 +159,51 @@ void CDMPrivateClearKey::loadAndInitialize() { +// No-op. } bool CDMPrivateClearKey::supportsServerCertificates() const { +// Server certificates are not supported. return false; } bool CDMPrivateClearKey::supportsSessions() const { -return false; +// Sessions are supported. +return true; } -bool CDMPrivateClearKey::supportsInitData(const AtomicString&, const SharedBuffer&) const +bool CDMPrivateClearKey::supportsInitData(const AtomicString& initDataType, const SharedBuffer& initData) const { -return false; +// Fail for init data types other than 'keyids'. +if (!equalLettersIgnoringASCIICase(initDataType, "keyids")) +return false; + +// Validate the initData buffer as an JSON object. +if (!parseJSONObject(initData)) +return false; + +return true; } -RefPtr CDMPrivateClearKey::sanitizeResponse(const SharedBuffer&) const +RefPtr CDMPrivateClearKey::sanitizeResponse(const SharedBuffer& response) const { -return nullptr; +// Validate the response buffer as an JSON object. +if (!parseJSONObject(response)) +return nullptr; + +return res
[webkit-changes] [221781] trunk/Source/WebCore
Title: [221781] trunk/Source/WebCore Revision 221781 Author zandober...@gmail.com Date 2017-09-08 03:55:15 -0700 (Fri, 08 Sep 2017) Log Message [GStreamer] Add GRefPtr specializations for GstGLDisplay, GstGLContext https://bugs.webkit.org/show_bug.cgi?id=176543 Reviewed by Xabier Rodriguez-Calvar. Both GstGLDisplay and GstGLContext inherit from GstObject, meaning gst_object_ref_sink() and gst_object_unref() should be used for incrementing and decrementing reference count. Template specializations for the adoptGRef(), refGPtr() and derefGPtr() are added for both types, preventing GRefPtr<> from falling back to using g_object_ref() and g_object_unref() for reference count modification purposes. * platform/graphics/gstreamer/GRefPtrGStreamer.cpp: (WTF::adoptGRef): (WTF::refGPtr): (WTF::derefGPtr): (WTF::refGPtr): (WTF::derefGPtr): * platform/graphics/gstreamer/GRefPtrGStreamer.h: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp trunk/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h Diff Modified: trunk/Source/WebCore/ChangeLog (221780 => 221781) --- trunk/Source/WebCore/ChangeLog 2017-09-08 10:54:42 UTC (rev 221780) +++ trunk/Source/WebCore/ChangeLog 2017-09-08 10:55:15 UTC (rev 221781) @@ -1,5 +1,27 @@ 2017-09-08 Zan Dobersek +[GStreamer] Add GRefPtr specializations for GstGLDisplay, GstGLContext +https://bugs.webkit.org/show_bug.cgi?id=176543 + +Reviewed by Xabier Rodriguez-Calvar. + +Both GstGLDisplay and GstGLContext inherit from GstObject, meaning +gst_object_ref_sink() and gst_object_unref() should be used for +incrementing and decrementing reference count. Template specializations +for the adoptGRef(), refGPtr() and derefGPtr() are added for both types, +preventing GRefPtr<> from falling back to using g_object_ref() and +g_object_unref() for reference count modification purposes. + +* platform/graphics/gstreamer/GRefPtrGStreamer.cpp: +(WTF::adoptGRef): +(WTF::refGPtr): +(WTF::derefGPtr): +(WTF::refGPtr): +(WTF::derefGPtr): +* platform/graphics/gstreamer/GRefPtrGStreamer.h: + +2017-09-08 Zan Dobersek + [GStreamer] Incorrect GstCaps unreffing in GStreamerEMEUtilities::createDecryptor() https://bugs.webkit.org/show_bug.cgi?id=176540 Modified: trunk/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp (221780 => 221781) --- trunk/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp 2017-09-08 10:54:42 UTC (rev 221780) +++ trunk/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp 2017-09-08 10:55:15 UTC (rev 221781) @@ -403,6 +403,50 @@ gst_object_unref(GST_OBJECT(ptr)); } +#if USE(GSTREAMER_GL) + +template<> GRefPtr adoptGRef(GstGLDisplay* ptr) +{ +ASSERT(!ptr || !g_object_is_floating(ptr)); +return GRefPtr(ptr, GRefPtrAdopt); +} + +template<> GstGLDisplay* refGPtr(GstGLDisplay* ptr) +{ +if (ptr) +gst_object_ref_sink(GST_OBJECT(ptr)); + +return ptr; +} + +template<> void derefGPtr(GstGLDisplay* ptr) +{ +if (ptr) +gst_object_unref(GST_OBJECT(ptr)); +} + +template<> GRefPtr adoptGRef(GstGLContext* ptr) +{ +ASSERT(!ptr || !g_object_is_floating(ptr)); +return GRefPtr(ptr, GRefPtrAdopt); +} + +template<> GstGLContext* refGPtr(GstGLContext* ptr) +{ +if (ptr) +gst_object_ref_sink(GST_OBJECT(ptr)); + +return ptr; +} + +template<> void derefGPtr(GstGLContext* ptr) +{ +if (ptr) +gst_object_unref(GST_OBJECT(ptr)); +} + +#endif // USE(GSTREAMER_GL) + } // namespace WTF #endif // USE(GSTREAMER) Modified: trunk/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h (221780 => 221781) --- trunk/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h 2017-09-08 10:54:42 UTC (rev 221780) +++ trunk/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h 2017-09-08 10:55:15 UTC (rev 221781) @@ -43,6 +43,11 @@ typedef struct _WebKitVideoSink WebKitVideoSink; typedef struct _WebKitWebSrc WebKitWebSrc; +#if USE(GSTREAMER_GL) +typedef struct _GstGLDisplay GstGLDisplay; +typedef struct _GstGLContext GstGLContext; +#endif + namespace WTF { template<> GRefPtr adoptGRef(GstElement* ptr); @@ -122,6 +127,16 @@ template<> WebKitWebSrc* refGPtr(WebKitWebSrc* ptr); template<> void derefGPtr(WebKitWebSrc* ptr); +#if USE(GSTREAMER_GL) +template<> GRefPtr adoptGRef(GstGLDisplay* ptr); +template<> GstGLDisplay* refGPtr(GstGLDisplay* ptr); +template<> void derefGPtr(GstGLDisplay* ptr); + +template<> GRefPtr adoptGRef(GstGLContext* ptr); +template<> GstGLContext* refGPtr(GstGLContext* ptr); +template<> void derefGPtr(GstGLContext* ptr); +#endif + } // namespace WTF #endif // USE(GSTREAMER) ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mail
[webkit-changes] [221780] trunk/Source/WebCore
Title: [221780] trunk/Source/WebCore Revision 221780 Author zandober...@gmail.com Date 2017-09-08 03:54:42 -0700 (Fri, 08 Sep 2017) Log Message [GStreamer] Incorrect GstCaps unreffing in GStreamerEMEUtilities::createDecryptor() https://bugs.webkit.org/show_bug.cgi?id=176540 Reviewed by Xabier Rodriguez-Calvar. * platform/graphics/gstreamer/eme/GStreamerEMEUtilities.cpp: Include the GRefPtrGStreamer.h header in order to use specialized template functions that correctly adopt and dereference GstCaps object that is wrapped the GRefPtr<>. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/gstreamer/eme/GStreamerEMEUtilities.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (221779 => 221780) --- trunk/Source/WebCore/ChangeLog 2017-09-08 06:31:22 UTC (rev 221779) +++ trunk/Source/WebCore/ChangeLog 2017-09-08 10:54:42 UTC (rev 221780) @@ -1,3 +1,15 @@ +2017-09-08 Zan Dobersek + +[GStreamer] Incorrect GstCaps unreffing in GStreamerEMEUtilities::createDecryptor() +https://bugs.webkit.org/show_bug.cgi?id=176540 + +Reviewed by Xabier Rodriguez-Calvar. + +* platform/graphics/gstreamer/eme/GStreamerEMEUtilities.cpp: +Include the GRefPtrGStreamer.h header in order to use specialized template +functions that correctly adopt and dereference GstCaps object that is +wrapped the GRefPtr<>. + 2017-09-07 Joseph Pecoraro WebKit should claim that it can show responses for a broader range of JSON MIMETypes Modified: trunk/Source/WebCore/platform/graphics/gstreamer/eme/GStreamerEMEUtilities.cpp (221779 => 221780) --- trunk/Source/WebCore/platform/graphics/gstreamer/eme/GStreamerEMEUtilities.cpp 2017-09-08 06:31:22 UTC (rev 221779) +++ trunk/Source/WebCore/platform/graphics/gstreamer/eme/GStreamerEMEUtilities.cpp 2017-09-08 10:54:42 UTC (rev 221780) @@ -22,7 +22,7 @@ #include "config.h" #include "GStreamerEMEUtilities.h" -#include +#include "GRefPtrGStreamer.h" #if ENABLE(ENCRYPTED_MEDIA) && USE(GSTREAMER) ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [221782] trunk/Source/WebCore
Title: [221782] trunk/Source/WebCore Revision 221782 Author zandober...@gmail.com Date 2017-09-08 03:57:35 -0700 (Fri, 08 Sep 2017) Log Message [GStreamer] initializationDataEncountered() dispatch can outlive MediaPlayerPrivateGStreamerBase https://bugs.webkit.org/show_bug.cgi?id=176544 Reviewed by Xabier Rodriguez-Calvar. The RunLoop dispatch that invokes MediaPlayer::initializationDataEncountered() can outlive the MediaPlayerPrivateGStreamerBase object that is referenced from the dispatched functor. To avoid this, a WeakPtrFactory is placed onto MediaPlayerPrivateGStreamerBase and a WeakPtr object is kept in the functor, bailing during dispatch if the factory (along with MediaPlayerPrivateGStreamerBase) has already been destroyed since the schedule of this dispatch. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase): (WebCore::MediaPlayerPrivateGStreamerBase::handleSyncMessage): Also remove the unused `sessionId` string. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h Diff Modified: trunk/Source/WebCore/ChangeLog (221781 => 221782) --- trunk/Source/WebCore/ChangeLog 2017-09-08 10:55:15 UTC (rev 221781) +++ trunk/Source/WebCore/ChangeLog 2017-09-08 10:57:35 UTC (rev 221782) @@ -1,5 +1,25 @@ 2017-09-08 Zan Dobersek +[GStreamer] initializationDataEncountered() dispatch can outlive MediaPlayerPrivateGStreamerBase +https://bugs.webkit.org/show_bug.cgi?id=176544 + +Reviewed by Xabier Rodriguez-Calvar. + +The RunLoop dispatch that invokes MediaPlayer::initializationDataEncountered() +can outlive the MediaPlayerPrivateGStreamerBase object that is referenced +from the dispatched functor. To avoid this, a WeakPtrFactory is placed onto +MediaPlayerPrivateGStreamerBase and a WeakPtr object is kept in the functor, +bailing during dispatch if the factory (along with MediaPlayerPrivateGStreamerBase) +has already been destroyed since the schedule of this dispatch. + +* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: +(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase): +(WebCore::MediaPlayerPrivateGStreamerBase::handleSyncMessage): +Also remove the unused `sessionId` string. +* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: + +2017-09-08 Zan Dobersek + [GStreamer] Add GRefPtr specializations for GstGLDisplay, GstGLContext https://bugs.webkit.org/show_bug.cgi?id=176543 Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp (221781 => 221782) --- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp 2017-09-08 10:55:15 UTC (rev 221781) +++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp 2017-09-08 10:57:35 UTC (rev 221782) @@ -43,7 +43,6 @@ #include #include #include -#include #include #include @@ -227,7 +226,8 @@ #endif // USE(GSTREAMER_GL) MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase(MediaPlayer* player) -: m_notifier(MainThreadNotifier::create()) +: m_weakPtrFactory(this) +, m_notifier(MainThreadNotifier::create()) , m_player(player) , m_fpsSink(nullptr) , m_readyState(MediaPlayer::HaveNothing) @@ -364,13 +364,13 @@ if (concatenatedInitDataChunksNumber > 1) eventKeySystemIdString = emptyString(); -String sessionId(createCanonicalUUIDString()); +RunLoop::main().dispatch([weakThis = m_weakPtrFactory.createWeakPtr(), eventKeySystemIdString, initData = WTFMove(concatenatedInitDataChunks)] { +if (!weakThis) +return; -RunLoop::main().dispatch([this, eventKeySystemIdString, sessionId, initData = WTFMove(concatenatedInitDataChunks)] { GST_DEBUG("scheduling initializationDataEncountered event for %s with concatenated init datas size of %" G_GSIZE_FORMAT, eventKeySystemIdString.utf8().data(), initData.size()); GST_MEMDUMP("init datas", initData.data(), initData.size()); - -m_player->initializationDataEncountered(ASCIILiteral("cenc"), ArrayBuffer::create(initData.data(), initData.size())); +weakThis->m_player->initializationDataEncountered(ASCIILiteral("cenc"), ArrayBuffer::create(initData.data(), initData.size())); }); GST_INFO("waiting for a CDM instance"); Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h (221781 => 221782) --- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h 2017-09-08 10:55:15 UTC
[webkit-changes] [219286] trunk/Tools
Title: [219286] trunk/Tools Revision 219286 Author zandober...@gmail.com Date 2017-07-09 22:58:57 -0700 (Sun, 09 Jul 2017) Log Message Add WebGL2 configuration option to build-webkit https://bugs.webkit.org/show_bug.cgi?id=174251 Reviewed by Michael Catanzaro. * Scripts/webkitperl/FeatureList.pm: Add the 'webgl2' option, making it possible to enable the ENABLE_WEBGL2 flag through the build-webkit script. The feature is marked as enabled for the Apple Cocoa ports. Modified Paths trunk/Tools/ChangeLog trunk/Tools/Scripts/webkitperl/FeatureList.pm Diff Modified: trunk/Tools/ChangeLog (219285 => 219286) --- trunk/Tools/ChangeLog 2017-07-10 02:34:55 UTC (rev 219285) +++ trunk/Tools/ChangeLog 2017-07-10 05:58:57 UTC (rev 219286) @@ -1,3 +1,14 @@ +2017-07-09 Zan Dobersek + +Add WebGL2 configuration option to build-webkit +https://bugs.webkit.org/show_bug.cgi?id=174251 + +Reviewed by Michael Catanzaro. + +* Scripts/webkitperl/FeatureList.pm: Add the 'webgl2' option, making it possible +to enable the ENABLE_WEBGL2 flag through the build-webkit script. The feature +is marked as enabled for the Apple Cocoa ports. + 2017-07-08 Chris Dumez Simplify WebResourceLoadStatisticsStore / ResourceLoadStatisticsStore Modified: trunk/Tools/Scripts/webkitperl/FeatureList.pm (219285 => 219286) --- trunk/Tools/Scripts/webkitperl/FeatureList.pm 2017-07-10 02:34:55 UTC (rev 219285) +++ trunk/Tools/Scripts/webkitperl/FeatureList.pm 2017-07-10 05:58:57 UTC (rev 219286) @@ -139,6 +139,7 @@ $webTimingSupport, $writableStreamAPISupport, $webglSupport, +$webgl2Support, $xsltSupport, ); @@ -400,6 +401,9 @@ { option => "webgl", desc => "Toggle WebGL support", define => "ENABLE_WEBGL", default => (isAppleCocoaWebKit() || isGtk() || isWPE()), value => \$webglSupport }, +{ option => "webgl2", desc => "Toggle WebGL2 support", + define => "ENABLE_WEBGL2", default => isAppleCocoaWebKit(), value => \$webgl2Support }, + { option => "writableStreamAPI", desc => "Toggle WritableStream API support", define => "ENABLE_WRITABLE_STREAM_API", default => 1, value => \$writableStreamAPISupport }, ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [219300] trunk/Tools
Title: [219300] trunk/Tools Revision 219300 Author zandober...@gmail.com Date 2017-07-10 11:07:10 -0700 (Mon, 10 Jul 2017) Log Message [WPE] Fix layout test baseline and TestExpectations hierarchy https://bugs.webkit.org/show_bug.cgi?id=174092 Reviewed by Michael Catanzaro. Like for the GTK+ port, override the default_baseline_search_path() and _port_specific_expectations_files() methods in the webkitpy.port.WPEPort class. Both methods operate on a short list of search paths that defaults to 'wpe' and 'wk2', along with any other user-specified platform directory. The test_expectations_file_position() method is overridden for testing purposes, and relevant unit tests are added. * Scripts/webkitpy/port/wpe.py: (WPEPort._search_paths): (WPEPort): (WPEPort.default_baseline_search_path): (WPEPort._port_specific_expectations_files): (WPEPort.test_expectations_file_position): * Scripts/webkitpy/port/wpe_unittest.py: (WPEPortTest.test_default_baseline_search_path): (WPEPortTest): (WPEPortTest.test_port_specific_expectations_files): Modified Paths trunk/Tools/ChangeLog trunk/Tools/Scripts/webkitpy/port/wpe.py trunk/Tools/Scripts/webkitpy/port/wpe_unittest.py Diff Modified: trunk/Tools/ChangeLog (219299 => 219300) --- trunk/Tools/ChangeLog 2017-07-10 17:52:06 UTC (rev 219299) +++ trunk/Tools/ChangeLog 2017-07-10 18:07:10 UTC (rev 219300) @@ -1,3 +1,29 @@ +2017-07-10 Zan Dobersek + +[WPE] Fix layout test baseline and TestExpectations hierarchy +https://bugs.webkit.org/show_bug.cgi?id=174092 + +Reviewed by Michael Catanzaro. + +Like for the GTK+ port, override the default_baseline_search_path() and +_port_specific_expectations_files() methods in the webkitpy.port.WPEPort class. +Both methods operate on a short list of search paths that defaults to 'wpe' and +'wk2', along with any other user-specified platform directory. + +The test_expectations_file_position() method is overridden for testing purposes, +and relevant unit tests are added. + +* Scripts/webkitpy/port/wpe.py: +(WPEPort._search_paths): +(WPEPort): +(WPEPort.default_baseline_search_path): +(WPEPort._port_specific_expectations_files): +(WPEPort.test_expectations_file_position): +* Scripts/webkitpy/port/wpe_unittest.py: +(WPEPortTest.test_default_baseline_search_path): +(WPEPortTest): +(WPEPortTest.test_port_specific_expectations_files): + 2017-07-10 Chris Dumez Further WebResourceLoadStatisticsStore / ResourceLoadStatisticsStore clean up Modified: trunk/Tools/Scripts/webkitpy/port/wpe.py (219299 => 219300) --- trunk/Tools/Scripts/webkitpy/port/wpe.py 2017-07-10 17:52:06 UTC (rev 219299) +++ trunk/Tools/Scripts/webkitpy/port/wpe.py 2017-07-10 18:07:10 UTC (rev 219300) @@ -81,6 +81,19 @@ def _path_to_image_diff(self): return self._built_executables_path('ImageDiff') +def _search_paths(self): +return [self.port_name, 'wk2'] + self.get_option("additional_platform_directory", []) + +def default_baseline_search_path(self): +return map(self._webkit_baseline_path, self._search_paths()) + +def _port_specific_expectations_files(self): +return map(lambda x: self._filesystem.join(self._webkit_baseline_path(x), 'TestExpectations'), reversed(self._search_paths())) + +def test_expectations_file_position(self): +# WPE port baseline search path is wpe -> wk2 -> generic, so port test expectations file is at third to last position. +return 2 + def _get_crash_log(self, name, pid, stdout, stderr, newer_than, target_host=None): name = "WPEWebProcess" if name == "WebProcess" else name return GDBCrashLogGenerator(name, pid, newer_than, self._filesystem, self._path_to_driver).generate_crash_log(stdout, stderr) Modified: trunk/Tools/Scripts/webkitpy/port/wpe_unittest.py (219299 => 219300) --- trunk/Tools/Scripts/webkitpy/port/wpe_unittest.py 2017-07-10 17:52:06 UTC (rev 219299) +++ trunk/Tools/Scripts/webkitpy/port/wpe_unittest.py 2017-07-10 18:07:10 UTC (rev 219300) @@ -51,6 +51,17 @@ port._pulseaudio_sanitizer = PulseAudioSanitizerMock() return port +def test_default_baseline_search_path(self): +port = self.make_port() +self.assertEqual(port.default_baseline_search_path(), ['/mock-checkout/LayoutTests/platform/wpe', +'/mock-checkout/LayoutTests/platform/wk2']) + +def test_port_specific_expectations_files(self): +port = self.make_port() +self.assertEqual(port.expectations_files(), ['/mock-checkout/LayoutTests/TestExpectations', +'/mock-checkout/LayoutTests/platform/wk2/TestExpectations', +'/mock-checkout/LayoutTests/platform/wpe/TestExpectations']) + def test_default_timeout_ms(self): self.assertEqual(self.make_port(options=MockOptions(configuration='Release')).default_timeout_ms(), 1500
[webkit-changes] [219324] trunk/LayoutTests
Title: [219324] trunk/LayoutTests Revision 219324 Author zandober...@gmail.com Date 2017-07-11 00:49:54 -0700 (Tue, 11 Jul 2017) Log Message Unreviewed WPE gardening. * platform/wpe/TestExpectations: Enable EMEv3 tests under media/encrypted-media/, all of them passing. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/wpe/TestExpectations Diff Modified: trunk/LayoutTests/ChangeLog (219323 => 219324) --- trunk/LayoutTests/ChangeLog 2017-07-11 04:08:20 UTC (rev 219323) +++ trunk/LayoutTests/ChangeLog 2017-07-11 07:49:54 UTC (rev 219324) @@ -1,3 +1,10 @@ +2017-07-11 Zan Dobersek + +Unreviewed WPE gardening. + +* platform/wpe/TestExpectations: +Enable EMEv3 tests under media/encrypted-media/, all of them passing. + 2017-07-10 Brent Fulgham Resource Load Statistics: Prune statistics in orders of importance Modified: trunk/LayoutTests/platform/wpe/TestExpectations (219323 => 219324) --- trunk/LayoutTests/platform/wpe/TestExpectations 2017-07-11 04:08:20 UTC (rev 219323) +++ trunk/LayoutTests/platform/wpe/TestExpectations 2017-07-11 07:49:54 UTC (rev 219324) @@ -610,6 +610,15 @@ imported/w3c/web-platform-tests/encrypted-media/drm-mp4-waiting-for-a-key.html [ Skip ] imported/w3c/web-platform-tests/encrypted-media/drm-not-callable-after-createsession.html [ Skip ] imported/w3c/web-platform-tests/encrypted-media/drm-temporary-license-type.html [ Skip ] +media/encrypted-media [ Pass ] +media/encrypted-media/encrypted-media-constants.html [ Skip ] +media/encrypted-media/encrypted-media-events.html [ Skip ] +media/encrypted-media/encrypted-media-is-type-supported.html [ Skip ] +media/encrypted-media/encrypted-media-not-loaded.html [ Skip ] +media/encrypted-media/encrypted-media-session-lifetime.html [ Skip ] +media/encrypted-media/encrypted-media-syntax.html [ Skip ] +media/encrypted-media/encrypted-media-v2-events.html [ Skip ] +media/encrypted-media/encrypted-media-v2-syntax.html [ Skip ] # No support for resource load statistics in test controller. webkit.org/b/168171 http/tests/loading/resourceLoadStatistics [ Timeout ] ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [219390] trunk/Tools
Title: [219390] trunk/Tools Revision 219390 Author zandober...@gmail.com Date 2017-07-12 04:26:11 -0700 (Wed, 12 Jul 2017) Log Message [GTK][WPE] Align Jhbuild patches for GStreamer packages https://bugs.webkit.org/show_bug.cgi?id=174363 Reviewed by Michael Catanzaro. Align the patches we apply over Jhbuild-managed GStreamer dependency packages between the GTK+ and WPE port. There's no reason for the two ports to apply different patches over same versions of GStreamer releases. This aligns the two ports on this specific issue. Next we'll look into creating a single GStreamer-specific Jhbuild moduleset that will allow us to keep these patches in a single place, avoiding duplicate files. * gtk/jhbuild.modules: * gtk/patches/gst-plugins-good-0005-souphttpsrc-cookie-jar-and-context-query-support.patch: Added. * gtk/patches/gst-plugins-good-0006-qtdemux-add-context-for-a-preferred-protection.patch: Renamed from Tools/gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-protection.patch. * gtk/patches/gst-plugins-good-0008-qtdemux-also-push-buffers-without-encryption-info-in.patch: Added. * wpe/patches/gstreamer-typefind-Only-push-a-CAPS-event-downstream-if-the-.patch: Removed. Modified Paths trunk/Tools/ChangeLog trunk/Tools/gtk/jhbuild.modules Added Paths trunk/Tools/gtk/patches/gst-plugins-good-0005-souphttpsrc-cookie-jar-and-context-query-support.patch trunk/Tools/gtk/patches/gst-plugins-good-0006-qtdemux-add-context-for-a-preferred-protection.patch trunk/Tools/gtk/patches/gst-plugins-good-0008-qtdemux-also-push-buffers-without-encryption-info-in.patch Removed Paths trunk/Tools/gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-protection.patch trunk/Tools/wpe/patches/gstreamer-typefind-Only-push-a-CAPS-event-downstream-if-the-.patch Diff Modified: trunk/Tools/ChangeLog (219389 => 219390) --- trunk/Tools/ChangeLog 2017-07-12 10:58:31 UTC (rev 219389) +++ trunk/Tools/ChangeLog 2017-07-12 11:26:11 UTC (rev 219390) @@ -1,3 +1,24 @@ +2017-07-12 Zan Dobersek + +[GTK][WPE] Align Jhbuild patches for GStreamer packages +https://bugs.webkit.org/show_bug.cgi?id=174363 + +Reviewed by Michael Catanzaro. + +Align the patches we apply over Jhbuild-managed GStreamer dependency packages +between the GTK+ and WPE port. There's no reason for the two ports to apply +different patches over same versions of GStreamer releases. + +This aligns the two ports on this specific issue. Next we'll look into +creating a single GStreamer-specific Jhbuild moduleset that will allow us +to keep these patches in a single place, avoiding duplicate files. + +* gtk/jhbuild.modules: +* gtk/patches/gst-plugins-good-0005-souphttpsrc-cookie-jar-and-context-query-support.patch: Added. +* gtk/patches/gst-plugins-good-0006-qtdemux-add-context-for-a-preferred-protection.patch: Renamed from Tools/gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-protection.patch. +* gtk/patches/gst-plugins-good-0008-qtdemux-also-push-buffers-without-encryption-info-in.patch: Added. +* wpe/patches/gstreamer-typefind-Only-push-a-CAPS-event-downstream-if-the-.patch: Removed. + 2017-07-11 Dean Jackson Remove NAVIGATOR_HWCONCURRENCY Modified: trunk/Tools/gtk/jhbuild.modules (219389 => 219390) --- trunk/Tools/gtk/jhbuild.modules 2017-07-12 10:58:31 UTC (rev 219389) +++ trunk/Tools/gtk/jhbuild.modules 2017-07-12 11:26:11 UTC (rev 219390) @@ -351,7 +351,9 @@ repo="gstreamer" hash="sha256:be053f6ed716eeb517cec148cec637cdce571c6e04d5c21409e2876fb76c7639"> - + + + Deleted: trunk/Tools/gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-protection.patch (219389 => 219390) --- trunk/Tools/gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-protection.patch 2017-07-12 10:58:31 UTC (rev 219389) +++ trunk/Tools/gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-protection.patch 2017-07-12 11:26:11 UTC (rev 219390) @@ -1,320 +0,0 @@ -From 248573a84e8f715e5abdc0a2a5ce2faf3e7852fd Mon Sep 17 00:00:00 2001 -From: Xabier Rodriguez Calvar -Date: Fri, 16 Sep 2016 16:08:18 +0200 -Subject: [PATCH] qtdemux: add context for a preferred protection - -qtdemux selected the first system corresponding to a working GStreamer -decryptor. With this change, before selecting that decryptor, qtdemux -will check if it has context (a preferred decryptor id) and if not, it -will request it. - -The request includes track-id, available key system ids for the -available decryptors and event the events so that the init data is -accessible. - gst/isomp4/qtdemux.c | 209 +-- - gst/isomp4/qtdemux.h | 2 + - 2 files changed, 205 insertions(+), 6 deletions(-) - -diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c -index 4cb
[webkit-changes] [219391] trunk
Title: [219391] trunk Revision 219391 Author zandober...@gmail.com Date 2017-07-12 06:58:46 -0700 (Wed, 12 Jul 2017) Log Message [WPE] Use libepoxy https://bugs.webkit.org/show_bug.cgi?id=172104 Reviewed by Michael Catanzaro. .: * Source/cmake/FindLibEpoxy.cmake: Added. * Source/cmake/OptionsWPE.cmake: Find libepoxy, don't search for EGL or OpenGL ES anymore, and enable USE_LIBEPOXY by default. Source/WebCore: No new tests -- no changes in behavior. Implement the proper libepoxy header inclusion for ports that enable it. The library acts as a loading facility working on top of the system-provided OpenGL and EGL libraries, with the headers providing a complete collection of specification-defined OpenGL and EGL types, constants and entrypoints. Support is added through the USE(LIBEPOXY) build guard. Note that this guard isn't exclusive with USE(OPENGL), USE(OPENGL_ES_2) or USE(EGL), so the USE(LIBEPOXY) condition is tested before those. In case of OpenGL headers, the header is included, and in case of EGL headers, the header. includes on its own, so in some cases the inclusion of the latter is omitted. EpoxyShims.h header is added, doing a job similar to OpenGLESShims.h. The EXT-suffixed GL entrypoints are redefined to the non-suffixed versions. No suffixed constants are defined because those are defined by the libepoxy headers to the well-known values. * CMakeLists.txt: * PlatformWPE.cmake: * platform/graphics/ANGLEWebKitBridge.h: * platform/graphics/EpoxyShims.h: Added. * platform/graphics/GLContext.cpp: (WebCore::initializeOpenGLShimsIfNeeded): * platform/graphics/GraphicsContext3DPrivate.cpp: * platform/graphics/PlatformDisplay.cpp: * platform/graphics/cairo/CairoUtilities.cpp: * platform/graphics/cairo/GraphicsContext3DCairo.cpp: (WebCore::GraphicsContext3D::create): * platform/graphics/cairo/ImageBufferCairo.cpp: * platform/graphics/egl/GLContextEGL.cpp: * platform/graphics/egl/GLContextEGLWPE.cpp: * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp: * platform/graphics/opengl/Extensions3DOpenGLES.cpp: * platform/graphics/opengl/Extensions3DOpenGLES.h: * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: * platform/graphics/opengl/TemporaryOpenGLSetting.cpp: * platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp: * platform/graphics/wpe/PlatformDisplayWPE.cpp: Source/WebKit2: * PlatformWPE.cmake: Drop the EGL_INCLUDE_DIRS compilation flags. * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: Include when compiling with libepoxy usage enabled. Tools: * WebKitTestRunner/wpe/HeadlessViewBackend.h: Include the header, dropping the EGL and GLES2 inclusions. Modified Paths trunk/ChangeLog trunk/Source/WebCore/CMakeLists.txt trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/PlatformWPE.cmake trunk/Source/WebCore/platform/graphics/ANGLEWebKitBridge.h trunk/Source/WebCore/platform/graphics/GLContext.cpp trunk/Source/WebCore/platform/graphics/GraphicsContext3DPrivate.cpp trunk/Source/WebCore/platform/graphics/PlatformDisplay.cpp trunk/Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp trunk/Source/WebCore/platform/graphics/cairo/GraphicsContext3DCairo.cpp trunk/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp trunk/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp trunk/Source/WebCore/platform/graphics/egl/GLContextEGLWPE.cpp trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp trunk/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp trunk/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLES.cpp trunk/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLES.h trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp trunk/Source/WebCore/platform/graphics/opengl/TemporaryOpenGLSetting.cpp trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp trunk/Source/WebCore/platform/graphics/wpe/PlatformDisplayWPE.cpp trunk/Source/WebKit2/ChangeLog trunk/Source/WebKit2/PlatformWPE.cmake trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp trunk/Source/cmake/OptionsWPE.cmake trunk/Tools/ChangeLog trunk/Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h Added Paths trunk/Source/WebCore/platform/graphics/EpoxyShims.h trunk/Source/cmake/FindLibEpoxy.cmake Diff Modified: trunk/ChangeLog (219390 => 219391) --- trunk/ChangeLog 2017-07-12 11:26:11 UTC (rev 219390) +++ trunk/ChangeLog 2017-07-12 13:58:46 UTC (rev 219391) @@ -1,3 +1,14 @@ +2017-07-12 Zan Dobersek + +[WPE] Use libepoxy +https://bugs.webkit.org/show_bug.cgi?id=172104 + +Reviewed by Michael Catanzaro. + +* Source/cmake/FindLibEpoxy.cmake: Added. +* Source/cmake/OptionsWPE.cmake: Find libepoxy, don't search for +EGL or OpenGL ES anymore, and enable USE_LIBEPOXY by default. + 2017-07-11 Carlos Garcia Campos
[webkit-changes] [219392] trunk
Title: [219392] trunk Revision 219392 Author zandober...@gmail.com Date 2017-07-12 06:59:37 -0700 (Wed, 12 Jul 2017) Log Message [GCrypt] Implement CryptoKeyEC PKCS#8 exports https://bugs.webkit.org/show_bug.cgi?id=173648 Reviewed by Jiewen Tan. Source/WebCore: Implement the PKCS#8 export operation for EC keys for platforms that use libgcrypt. First, the `ECParameters` and the `ECPrivateKey` ASN.1 structures are created and filled out accordingly. For the former, the appropriate object identifier is written under the `namedCurve` element of the structure. For the latter, we write out '1' under `version`, and eliminate the optional `parameters` element. An libgcrypt EC context is then used to retrieve the private and public key MPIs that are then written out under the `privateKey` and `publicKey` elements, respectively. After that, we can proceed to create and fill out the `PrivateKeyInfo` structure. 0 is written out under the `version` element, and the id-ecPublicKey object identifier is written out under the `privateKeyAlgorithm.algorithm` element. This doesn't strictly follow the specification, since the id-ecDH identifier should be used for ECDH keys, but no test in WebKit or the web-platform-tests suite covers this, so this specific detail should be revisited later. Data of the previously-constructed `ECParameters` structure is retrieved and written out under the `privateKeyAlgorithm.parameters` element. Similarly is done for the `ECPrivateKey` structure, writing out its data under the `privateKey` element. Finally, the optional `attributes` element of the `PrivateKeyInfo` structure is eliminated, and the encoded data of this structure is retrieved and returned. No new tests -- relevant tests are now passing and are unskipped. * crypto/gcrypt/CryptoKeyECGCrypt.cpp: (WebCore::CryptoKeyEC::platformExportPkcs8): LayoutTests: * platform/gtk/TestExpectations: Unskip the EC PKCS#8 export tests that are now passing. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/gtk/TestExpectations trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/crypto/gcrypt/CryptoKeyECGCrypt.cpp Diff Modified: trunk/LayoutTests/ChangeLog (219391 => 219392) --- trunk/LayoutTests/ChangeLog 2017-07-12 13:58:46 UTC (rev 219391) +++ trunk/LayoutTests/ChangeLog 2017-07-12 13:59:37 UTC (rev 219392) @@ -1,3 +1,13 @@ +2017-07-12 Zan Dobersek + +[GCrypt] Implement CryptoKeyEC PKCS#8 exports +https://bugs.webkit.org/show_bug.cgi?id=173648 + +Reviewed by Jiewen Tan. + +* platform/gtk/TestExpectations: Unskip the EC PKCS#8 export tests +that are now passing. + 2017-07-11 Carlos Alberto Lopez Perez REGRESSION(r219332): [GTK] 9 new failures on fast/forms spinbutton related tests. Modified: trunk/LayoutTests/platform/gtk/TestExpectations (219391 => 219392) --- trunk/LayoutTests/platform/gtk/TestExpectations 2017-07-12 13:58:46 UTC (rev 219391) +++ trunk/LayoutTests/platform/gtk/TestExpectations 2017-07-12 13:59:37 UTC (rev 219392) @@ -754,13 +754,9 @@ webkit.org/b/133122 crypto/subtle/aes-cfb-import-key-wrap-raw-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/aes-cfb-import-raw-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/ecdh-derive-bits-malformed-parametrs.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ecdh-generate-export-key-pkcs8-p256.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ecdh-generate-export-key-pkcs8-p384.html [ Skip ] webkit.org/b/133122 crypto/subtle/ecdh-import-pkcs8-key-p256.html [ Skip ] webkit.org/b/133122 crypto/subtle/ecdh-import-pkcs8-key-p384.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ecdsa-generate-export-key-pkcs8.html [ Skip ] webkit.org/b/133122 crypto/subtle/ecdsa-import-pkcs8-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ec-import-jwk-key-export-pkcs8-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/ec-import-pkcs8-key-export-jwk-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/ec-import-pkcs8-key-export-pkcs8-key-p256.html [ Skip ] webkit.org/b/133122 crypto/subtle/ec-import-pkcs8-key-export-pkcs8-key-p384.html [ Skip ] @@ -798,7 +794,6 @@ webkit.org/b/133122 crypto/workers/subtle/aes-cfb-import-key-unwrap-key.html [ Skip ] webkit.org/b/133122 crypto/workers/subtle/aes-cfb-import-key-wrap-key.html [ Skip ] webkit.org/b/133122 crypto/workers/subtle/aes-postMessage-worker.html [ Skip ] -webkit.org/b/133122 crypto/workers/subtle/ec-generate-export-pkcs8-key.html [ Skip ] webkit.org/b/133122 crypto/workers/subtle/ec-import-pkcs8-key.html [ Skip ] webkit.org/b/133122 crypto/workers/subtle/ec-postMessage-worker.html [ Skip ] webkit.org/b/133122 crypto/workers/subtle/hmac-postMessage-worker.html [ Skip ] Modified: trunk/Source/WebCore/ChangeLog (219391 => 219392) --- trunk/Source/WebCore/ChangeLog 2017-07-12 13:58:46 UTC (rev 219391) +++ trunk/Source/WebCore/ChangeLog 2017-07-12 13:59:37 UTC (rev 219392) @@ -1,5 +1,42 @@ 2017-07-12 Zan Dobersek +[GCry
[webkit-changes] [219448] trunk
Title: [219448] trunk Revision 219448 Author zandober...@gmail.com Date 2017-07-13 03:00:24 -0700 (Thu, 13 Jul 2017) Log Message [GCrypt] Implement CryptoKeyRSA SPKI imports https://bugs.webkit.org/show_bug.cgi?id=173694 Reviewed by Jiewen Tan. Source/WebCore: Implement the SPKI import operation for RSA keys for platforms that use libgcrypt. The passed-in key data is decoded against the `SubjectPublicKeyInfo` ASN.1 structure. We then validate the `algorithm.algorithm` element, ensuring that the value under that represents a supported object identifier. This check is for now mostly superficial, only ensuring that the object identifier is either id-rsaEncryption, id-RSAES-OAEP or id-RSASSA-PSS. This has to be further extended to also check the id-sha{1,256,384,512}WithRSAEncryption identifiers as well as decoding the `algorithm.parameters` element against a specific ASN.1 structure, if necessary (RSASSA-PSS-params or RSAES-OAEP-params), and cross-checking the specified digest algorithm with the algorithm that's specified through the main object identifier or the structure contained in `algorithm.parameters`. This is avoided for now because no test in WebKit or the web-platform-tests suite covers this detail of the specification. After the algorithm is identified as supported, we proceed with decoding the `subjectPublicKey` data against the `RSAPublicKey` ASN.1 structure. From there, we retrieve the `modulus` and `publicExponent` data from which we can construct an RSA `public-key` s-_expression_ that can be used through libgcrypt. A new CryptoKeyRSA object is then created, taking over ownership of the `public-key` s-_expression_, and returned. No new tests -- related tests are now passing and are unskipped. * crypto/gcrypt/CryptoKeyRSAGCrypt.cpp: (WebCore::supportedAlgorithmIdentifier): (WebCore::CryptoKeyRSA::importSpki): LayoutTests: * platform/gtk/TestExpectations: Unskip the RSA SPKI import tests that are now passing. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/gtk/TestExpectations trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/crypto/gcrypt/CryptoKeyRSAGCrypt.cpp Diff Modified: trunk/LayoutTests/ChangeLog (219447 => 219448) --- trunk/LayoutTests/ChangeLog 2017-07-13 09:38:52 UTC (rev 219447) +++ trunk/LayoutTests/ChangeLog 2017-07-13 10:00:24 UTC (rev 219448) @@ -1,3 +1,13 @@ +2017-07-13 Zan Dobersek + +[GCrypt] Implement CryptoKeyRSA SPKI imports +https://bugs.webkit.org/show_bug.cgi?id=173694 + +Reviewed by Jiewen Tan. + +* platform/gtk/TestExpectations: Unskip the RSA SPKI import tests +that are now passing. + 2017-07-12 Carlos Alberto Lopez Perez REGRESSION(r219332): [GTK] 9 new failures on fast/forms spinbutton related tests Modified: trunk/LayoutTests/platform/gtk/TestExpectations (219447 => 219448) --- trunk/LayoutTests/platform/gtk/TestExpectations 2017-07-13 09:38:52 UTC (rev 219447) +++ trunk/LayoutTests/platform/gtk/TestExpectations 2017-07-13 10:00:24 UTC (rev 219448) @@ -765,9 +765,7 @@ webkit.org/b/133122 crypto/subtle/rsa-import-jwk-key-export-spki-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-import-pkcs8-key-export-jwk-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-import-pkcs8-key-export-pkcs8-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsa-import-spki-key-export-jwk-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-import-spki-key-export-spki-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsa-import-spki-small-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-indexeddb-non-exportable-private.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-indexeddb-non-exportable.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-indexeddb-private.html [ Skip ] @@ -775,20 +773,14 @@ webkit.org/b/133122 crypto/subtle/rsa-oaep-generate-export-key-pkcs8.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-oaep-generate-export-key-spki.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-oaep-import-pkcs8-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsa-oaep-import-spki-key-empty-usages.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsa-oaep-import-spki-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-pss-generate-export-key-pkcs8.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-pss-generate-export-key-spki.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsaes-pkcs1-v1_5-generate-export-key-pkcs8.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsaes-pkcs1-v1_5-generate-export-key-spki.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsaes-pkcs1-v1_5-import-pkcs8-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsaes-pkcs1-v1_5-import-spki-key-empty-usages.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsaes-pkcs1-v1_5-import-spki-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-pkcs8.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsassa-pkcs1-v1_5-generate-e
[webkit-changes] [219449] trunk
Title: [219449] trunk Revision 219449 Author zandober...@gmail.com Date 2017-07-13 03:09:00 -0700 (Thu, 13 Jul 2017) Log Message [GCrypt] Implement CryptoKeyRSA SPKI exports https://bugs.webkit.org/show_bug.cgi?id=173695 Reviewed by Jiewen Tan. Source/WebCore: Implement the SPKI export operation for RSA keys for platforms that use libgcrypt. In CryptoKeyRSA::exportSpki(), we bail early with an invalid access exception if this export is not being done for a public key. Otherwise, we start with creating the `RSAPublicKey` ASN.1 structure, filling in the modulus and public exponent data that's retrieved from the `public-key` s-_expression_ in the signed MPI format. We then create the `SubjectPublicKeyInfo` ASN.1 structure and fill it out with the necessary data. The id-rsaEncryption object identifier is written out under the `algorithm.algorithm` element, and a null value is written out under the `algorithm.parameters` element. This doesn't follow the specification at the moment, since id-RSASSA-PSS would have to be written for the RSA-PSS algorithm, and id-RSAES-OAEP for the RSA-OAEP algorithm, along with specific parameter structures. But no test in WebKit or the web-platform-tests suite covers this, so this deviation should be addressed later. Data of the previously-constructed `RSAPublicKey` structure is retrieved and written out under the `subjectPublicKey` element, before finally retrieving data of the `SubjectPublicKeyInfo` structure and returning that to the caller. A helper mpiSignedData() function is added, providing overloads for gcry_mpi_t and gcry_sexp_t parameters. MPI data for that parameter is retrieved and the first byte of that data is tested, inserting an additional 0x00 byte at the beginning of the Vector if that first byte has the first bit set, avoiding this data accidentally being interpreted as a signed integer. No new tests -- related tests are now passing and are unskipped. * crypto/gcrypt/CryptoKeyRSAGCrypt.cpp: (WebCore::CryptoKeyRSA::exportSpki): * crypto/gcrypt/GCryptUtilities.h: (WebCore::mpiSignedData): LayoutTests: * platform/gtk/TestExpectations: Unskip the RSA SPKI export tests that are now passing. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/gtk/TestExpectations trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/crypto/gcrypt/CryptoKeyRSAGCrypt.cpp trunk/Source/WebCore/crypto/gcrypt/GCryptUtilities.h Diff Modified: trunk/LayoutTests/ChangeLog (219448 => 219449) --- trunk/LayoutTests/ChangeLog 2017-07-13 10:00:24 UTC (rev 219448) +++ trunk/LayoutTests/ChangeLog 2017-07-13 10:09:00 UTC (rev 219449) @@ -1,5 +1,15 @@ 2017-07-13 Zan Dobersek +[GCrypt] Implement CryptoKeyRSA SPKI exports +https://bugs.webkit.org/show_bug.cgi?id=173695 + +Reviewed by Jiewen Tan. + +* platform/gtk/TestExpectations: Unskip the RSA SPKI export tests +that are now passing. + +2017-07-13 Zan Dobersek + [GCrypt] Implement CryptoKeyRSA SPKI imports https://bugs.webkit.org/show_bug.cgi?id=173694 Modified: trunk/LayoutTests/platform/gtk/TestExpectations (219448 => 219449) --- trunk/LayoutTests/platform/gtk/TestExpectations 2017-07-13 10:00:24 UTC (rev 219448) +++ trunk/LayoutTests/platform/gtk/TestExpectations 2017-07-13 10:09:00 UTC (rev 219449) @@ -762,7 +762,6 @@ webkit.org/b/133122 crypto/subtle/ec-import-pkcs8-key-export-pkcs8-key-p384.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-export-key-malformed-parameters.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-import-jwk-key-export-pkcs8-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsa-import-jwk-key-export-spki-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-import-pkcs8-key-export-jwk-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-import-pkcs8-key-export-pkcs8-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-import-spki-key-export-spki-key.html [ Skip ] @@ -771,15 +770,11 @@ webkit.org/b/133122 crypto/subtle/rsa-indexeddb-private.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-indexeddb.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-oaep-generate-export-key-pkcs8.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsa-oaep-generate-export-key-spki.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-oaep-import-pkcs8-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-pss-generate-export-key-pkcs8.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsa-pss-generate-export-key-spki.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsaes-pkcs1-v1_5-generate-export-key-pkcs8.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsaes-pkcs1-v1_5-generate-export-key-spki.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsaes-pkcs1-v1_5-import-pkcs8-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-pkcs8.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-spki.html [ Skip ] webkit.org/b/133122 crypto/su
[webkit-changes] [219535] trunk
Title: [219535] trunk Revision 219535 Author zandober...@gmail.com Date 2017-07-14 22:20:32 -0700 (Fri, 14 Jul 2017) Log Message [GCrypt] Implement CryptoKeyRSA PKCS#8 imports https://bugs.webkit.org/show_bug.cgi?id=173696 Reviewed by Jiewen Tan. Source/WebCore: Implement the PKCS#8 import operation for RSA keys for platforms that use libgcrypt. In CryptoKeyRSA::importPkcs8(), the provided key data is decoded against the 'PrivateKeyInfo` ASN.1 structure. We then validate the `version` element and check that the `privateKeyAlgorithm.algorithm` element contains a supported object identifier. This check is for now mostly superficial, only ensuring that the object identifier is either id-rsaEncryption, id-RSAES-OAEP or id-RSASSA-PSS. This has to be further extended to also check the id-sha{1,256,384,512}WithRSAEncryption identifiers as well as decoding the `privateKeyAlgorithm.parameters` element against a specific ASN.1 structure, if necessary (RSASSA-PSS-params or RSAES-OAEP-params), and cross-checking the specified digest algorithm with the algorithm that's specified through the main object identifier or the structure contained in `privateKeyAlgorithm.parameters`. This is avoided for now because no test in WebKit or the web-platform-tests suite covers this detail of the specification. Data under the `privateKey` element is decoded against the `RSAPrivateKey` ASN.1 structure, and the `version` element of that structure is validated. We then retrieve data from that structure for the modulus, public exponent, private exponent, both primes, both exponents and the coefficient parameters, bailing if any of them is missing. Because libgcrypt switches the use of p and q parameters, deviating from the standard use, we have to recompute the u parameter (the coefficient). With that calculated, we're then able to construct the `private-key` s-_expression_, embedding into it all the necessary parameters, and transferring the ownership of this object to the new CryptoKeyRSA object that's then returned from the importPkcs8() method. No new tests -- related tests are now passing and are unskipped. * crypto/gcrypt/CryptoKeyRSAGCrypt.cpp: (WebCore::CryptoKeyRSA::importPkcs8): LayoutTests: * platform/gtk/TestExpectations: Unskip the RSA PKCS#8 import tests that are now passing. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/gtk/TestExpectations trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/crypto/gcrypt/CryptoKeyRSAGCrypt.cpp Diff Modified: trunk/LayoutTests/ChangeLog (219534 => 219535) --- trunk/LayoutTests/ChangeLog 2017-07-15 00:29:52 UTC (rev 219534) +++ trunk/LayoutTests/ChangeLog 2017-07-15 05:20:32 UTC (rev 219535) @@ -1,3 +1,13 @@ +2017-07-14 Zan Dobersek + +[GCrypt] Implement CryptoKeyRSA PKCS#8 imports +https://bugs.webkit.org/show_bug.cgi?id=173696 + +Reviewed by Jiewen Tan. + +* platform/gtk/TestExpectations: Unskip the RSA PKCS#8 import tests +that are now passing. + 2017-07-14 Chris Dumez Possible crash in ~UserGestureIndicator() when on non-main thread Modified: trunk/LayoutTests/platform/gtk/TestExpectations (219534 => 219535) --- trunk/LayoutTests/platform/gtk/TestExpectations 2017-07-15 00:29:52 UTC (rev 219534) +++ trunk/LayoutTests/platform/gtk/TestExpectations 2017-07-15 05:20:32 UTC (rev 219535) @@ -767,7 +767,6 @@ webkit.org/b/133122 crypto/subtle/ec-import-pkcs8-key-export-pkcs8-key-p384.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-export-key-malformed-parameters.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-import-jwk-key-export-pkcs8-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsa-import-pkcs8-key-export-jwk-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-import-pkcs8-key-export-pkcs8-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-import-spki-key-export-spki-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-indexeddb-non-exportable-private.html [ Skip ] @@ -775,12 +774,9 @@ webkit.org/b/133122 crypto/subtle/rsa-indexeddb-private.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-indexeddb.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-oaep-generate-export-key-pkcs8.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsa-oaep-import-pkcs8-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-pss-generate-export-key-pkcs8.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsaes-pkcs1-v1_5-generate-export-key-pkcs8.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsaes-pkcs1-v1_5-import-pkcs8-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-pkcs8.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsassa-pkcs1-v1_5-import-pkcs8-key.html [ Skip ] webkit.org/b/133122 crypto/workers/subtle/aes-cfb-import-key-decrypt.html [ Skip ] webkit.org/b/133122 crypto/workers/subtle/aes-cfb-import-key-encrypt.html [ Skip ] webkit.org/b/133122 crypto/workers/subtle/aes-cfb-import-key-unwrap-key.html [ Skip
[webkit-changes] [219536] trunk
Title: [219536] trunk Revision 219536 Author zandober...@gmail.com Date 2017-07-14 22:23:19 -0700 (Fri, 14 Jul 2017) Log Message [GCrypt] Implement CryptoKeyRSA PKCS#8 exports https://bugs.webkit.org/show_bug.cgi?id=173697 Reviewed by Jiewen Tan. Source/WebCore: Implement the PKCS#8 import operation for RSA keys for platforms that use libgcrypt. In CryptoKeyRSA::exportPkcs8(), we bail early with an invalid access exception if this export is not being done for a private key. Otherwise, we start with creating the `RSAPrivateKey` ASN.1 structure, writing out '0' under the `version` element and then retrieving the modulus, public and private exponent and both primes. MPI data for those parameters is written out into corresponding elements in the `RSAPrivateKey` structure. We then manually compute values of both exponents and the coefficient parameters, using the private exponent's and both primes' MPI values. The p and q parameters (i.e. the primes) are switched in libgcrypt, deviating from the standard practice, so we have to operate with those two accordingly. We eliminate the optional `otherPrimeInfos` attribute on the `RSAPrivateKey` structure. Support for this attribute will be added later. We then create the `PrivateKeyInfo` ASN.1 structure, and write out '0' under the `version` element. The id-rsaEncryption object identifier is written out under the `algorithm.algorithm` element. In the future, an object identifier that matches this key's algorithm will have to be written out here (id-RSASSA-PSS or id-RSAES-OAEP), along with the appropriate parameters structure, but no test in WebKit or the web-platform-tests suite covers this detail. For now, a null value is written out under the `algorithm.parameters` element. Data for the `RSAPrivateKey` structure is retrieved and written out under the `privateKey` element. The optional `attributes` element on the `PrivateKeyInfo` structure is eliminated. Data that was encoded through the `PrivateKeyInfo` structure is then retrieved and returned from the exportPkcs8() method. No new tests -- related tests are now passing and are unskipped. * crypto/gcrypt/CryptoKeyRSAGCrypt.cpp: (WebCore::CryptoKeyRSA::exportPkcs8): LayoutTests: * platform/gtk/TestExpectations: Unskip the RSA PKCS#8 export tests Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/gtk/TestExpectations trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/crypto/gcrypt/CryptoKeyRSAGCrypt.cpp Diff Modified: trunk/LayoutTests/ChangeLog (219535 => 219536) --- trunk/LayoutTests/ChangeLog 2017-07-15 05:20:32 UTC (rev 219535) +++ trunk/LayoutTests/ChangeLog 2017-07-15 05:23:19 UTC (rev 219536) @@ -1,5 +1,14 @@ 2017-07-14 Zan Dobersek +[GCrypt] Implement CryptoKeyRSA PKCS#8 exports +https://bugs.webkit.org/show_bug.cgi?id=173697 + +Reviewed by Jiewen Tan. + +* platform/gtk/TestExpectations: Unskip the RSA PKCS#8 export tests + +2017-07-14 Zan Dobersek + [GCrypt] Implement CryptoKeyRSA PKCS#8 imports https://bugs.webkit.org/show_bug.cgi?id=173696 Modified: trunk/LayoutTests/platform/gtk/TestExpectations (219535 => 219536) --- trunk/LayoutTests/platform/gtk/TestExpectations 2017-07-15 05:20:32 UTC (rev 219535) +++ trunk/LayoutTests/platform/gtk/TestExpectations 2017-07-15 05:23:19 UTC (rev 219536) @@ -766,7 +766,6 @@ webkit.org/b/133122 crypto/subtle/ec-import-pkcs8-key-export-pkcs8-key-p256.html [ Skip ] webkit.org/b/133122 crypto/subtle/ec-import-pkcs8-key-export-pkcs8-key-p384.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-export-key-malformed-parameters.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsa-import-jwk-key-export-pkcs8-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-import-pkcs8-key-export-pkcs8-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-import-spki-key-export-spki-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-indexeddb-non-exportable-private.html [ Skip ] @@ -773,10 +772,6 @@ webkit.org/b/133122 crypto/subtle/rsa-indexeddb-non-exportable.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-indexeddb-private.html [ Skip ] webkit.org/b/133122 crypto/subtle/rsa-indexeddb.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsa-oaep-generate-export-key-pkcs8.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsa-pss-generate-export-key-pkcs8.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsaes-pkcs1-v1_5-generate-export-key-pkcs8.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-pkcs8.html [ Skip ] webkit.org/b/133122 crypto/workers/subtle/aes-cfb-import-key-decrypt.html [ Skip ] webkit.org/b/133122 crypto/workers/subtle/aes-cfb-import-key-encrypt.html [ Skip ] webkit.org/b/133122 crypto/workers/subtle/aes-cfb-import-key-unwrap-key.html [ Skip ] @@ -788,7 +783,6 @@ webkit.org/b/133122 crypto/workers/subtle/hrsa-postMessage-worker.html [ Skip ] webkit.org/b/133122 crypto/workers/subtle/multiple-postMessage-wo
[webkit-changes] [219556] trunk/Source/WebCore
Title: [219556] trunk/Source/WebCore Revision 219556 Author zandober...@gmail.com Date 2017-07-17 01:45:54 -0700 (Mon, 17 Jul 2017) Log Message [CMake] Clean up Web Crypto build targets https://bugs.webkit.org/show_bug.cgi?id=174253 Reviewed by Michael Catanzaro. Gather the common WebCrypto source files in CMakeLists.txt, including them in the build unconditionally and instead relying on ENABLE_SUBTLE_CRYPTO build guards to exclude the code from compilation if the feature is disabled. PlatformGTK.cmake, PlatformMac.cmake and PlatformWPE.cmake can then remove duplicated build targets. PlatformMac.cmake still lists all the Mac-specific Web Crypto build targets. PlatformGTK.cmake and PlatformWPE.cmake now include GCrypt.cmake if the build was configured to enable the use of libgcrypt. The new CMake file adds the libgcrypt-specific Web Crypto build targets to the build if the feature was enabled, and also sets up libgcrypt include directiories and libraries. No new tests -- no change in behavior. * CMakeLists.txt: * PlatformGTK.cmake: * PlatformMac.cmake: * PlatformWPE.cmake: * platform/GCrypt.cmake: Added. Modified Paths trunk/Source/WebCore/CMakeLists.txt trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/PlatformGTK.cmake trunk/Source/WebCore/PlatformMac.cmake trunk/Source/WebCore/PlatformWPE.cmake Added Paths trunk/Source/WebCore/platform/GCrypt.cmake Diff Modified: trunk/Source/WebCore/CMakeLists.txt (219555 => 219556) --- trunk/Source/WebCore/CMakeLists.txt 2017-07-17 07:03:03 UTC (rev 219555) +++ trunk/Source/WebCore/CMakeLists.txt 2017-07-17 08:45:54 UTC (rev 219556) @@ -1296,6 +1296,41 @@ contentextensions/NFAToDFA.cpp contentextensions/URLFilterParser.cpp +crypto/CryptoAlgorithm.cpp +crypto/CryptoAlgorithmRegistry.cpp +crypto/CryptoKey.cpp +crypto/SubtleCrypto.cpp +crypto/WebKitSubtleCrypto.cpp + +crypto/algorithms/CryptoAlgorithmAES_CBC.cpp +crypto/algorithms/CryptoAlgorithmAES_CFB.cpp +crypto/algorithms/CryptoAlgorithmAES_CTR.cpp +crypto/algorithms/CryptoAlgorithmAES_GCM.cpp +crypto/algorithms/CryptoAlgorithmAES_KW.cpp +crypto/algorithms/CryptoAlgorithmECDH.cpp +crypto/algorithms/CryptoAlgorithmECDSA.cpp +crypto/algorithms/CryptoAlgorithmHKDF.cpp +crypto/algorithms/CryptoAlgorithmHMAC.cpp +crypto/algorithms/CryptoAlgorithmPBKDF2.cpp +crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp +crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp +crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp +crypto/algorithms/CryptoAlgorithmRSA_PSS.cpp +crypto/algorithms/CryptoAlgorithmSHA1.cpp +crypto/algorithms/CryptoAlgorithmSHA224.cpp +crypto/algorithms/CryptoAlgorithmSHA256.cpp +crypto/algorithms/CryptoAlgorithmSHA384.cpp +crypto/algorithms/CryptoAlgorithmSHA512.cpp + +crypto/keys/CryptoKeyAES.cpp +crypto/keys/CryptoKeyDataOctetSequence.cpp +crypto/keys/CryptoKeyDataRSAComponents.cpp +crypto/keys/CryptoKeyEC.cpp +crypto/keys/CryptoKeyHMAC.cpp +crypto/keys/CryptoKeyRSA.cpp +crypto/keys/CryptoKeyRaw.cpp +crypto/keys/CryptoKeySerializationRaw.cpp + css/BasicShapeFunctions.cpp css/CSSAspectRatioValue.cpp css/CSSBasicShapes.cpp Modified: trunk/Source/WebCore/ChangeLog (219555 => 219556) --- trunk/Source/WebCore/ChangeLog 2017-07-17 07:03:03 UTC (rev 219555) +++ trunk/Source/WebCore/ChangeLog 2017-07-17 08:45:54 UTC (rev 219556) @@ -1,3 +1,31 @@ +2017-07-17 Zan Dobersek + +[CMake] Clean up Web Crypto build targets +https://bugs.webkit.org/show_bug.cgi?id=174253 + +Reviewed by Michael Catanzaro. + +Gather the common WebCrypto source files in CMakeLists.txt, including them +in the build unconditionally and instead relying on ENABLE_SUBTLE_CRYPTO +build guards to exclude the code from compilation if the feature is disabled. + +PlatformGTK.cmake, PlatformMac.cmake and PlatformWPE.cmake can then remove +duplicated build targets. PlatformMac.cmake still lists all the Mac-specific +Web Crypto build targets. + +PlatformGTK.cmake and PlatformWPE.cmake now include GCrypt.cmake if the build +was configured to enable the use of libgcrypt. The new CMake file adds the +libgcrypt-specific Web Crypto build targets to the build if the feature was +enabled, and also sets up libgcrypt include directiories and libraries. + +No new tests -- no change in behavior. + +* CMakeLists.txt: +* PlatformGTK.cmake: +* PlatformMac.cmake: +* PlatformWPE.cmake: +* platform/GCrypt.cmake: Added. + 2017-07-16 Michael Catanzaro -Wreorder warning caused by GraphicsContext3D cleanup Modified: trunk/Source/WebCore/PlatformGTK.cmake (219555 => 219556) --- trunk/Source/WebCore/PlatformGTK.cmake 2017-07-17 07:03:03 UTC (rev 219555) +++ trunk/Source/WebCore/PlatformGTK.cmake 2017-07-17 08:45:54 UTC (rev 219556)
[webkit-changes] [219655] trunk/LayoutTests
Title: [219655] trunk/LayoutTests Revision 219655 Author zandober...@gmail.com Date 2017-07-19 07:10:02 -0700 (Wed, 19 Jul 2017) Log Message Unreviewed WPE gardening. * platform/wpe/TestExpectations: Unskip a bunch of Web Crypto tests that are passing now that the underlying implementation has progressed. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/wpe/TestExpectations Diff Modified: trunk/LayoutTests/ChangeLog (219654 => 219655) --- trunk/LayoutTests/ChangeLog 2017-07-19 10:44:57 UTC (rev 219654) +++ trunk/LayoutTests/ChangeLog 2017-07-19 14:10:02 UTC (rev 219655) @@ -1,3 +1,11 @@ +2017-07-19 Zan Dobersek + +Unreviewed WPE gardening. + +* platform/wpe/TestExpectations: +Unskip a bunch of Web Crypto tests that are passing now that +the underlying implementation has progressed. + 2017-07-18 Myles C. Maxfield Setting the minimum font size preference doesn’t affect absolute line-height values, so lines overlap Modified: trunk/LayoutTests/platform/wpe/TestExpectations (219654 => 219655) --- trunk/LayoutTests/platform/wpe/TestExpectations 2017-07-19 10:44:57 UTC (rev 219654) +++ trunk/LayoutTests/platform/wpe/TestExpectations 2017-07-19 14:10:02 UTC (rev 219655) @@ -414,10 +414,6 @@ crypto/webkitSubtle [ Skip ] # These are failures that will be enabled once the relevant parts of implementation land. -webkit.org/b/133122 crypto/subtle/aes-cbc-import-key-unwrap-pkcs8-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/aes-cbc-import-key-unwrap-spki-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/aes-cbc-import-key-wrap-pkcs8-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/aes-cbc-import-key-wrap-spki-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/aes-cfb-generate-export-key-jwk-length-128.html [ Skip ] webkit.org/b/133122 crypto/subtle/aes-cfb-generate-export-key-jwk-length-192.html [ Skip ] webkit.org/b/133122 crypto/subtle/aes-cfb-generate-export-key-jwk-length-256.html [ Skip ] @@ -434,62 +430,16 @@ webkit.org/b/133122 crypto/subtle/aes-cfb-import-key-wrap-jwk-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/aes-cfb-import-key-wrap-raw-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/aes-cfb-import-raw-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ecdh-derive-bits-malformed-parametrs.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ecdh-generate-export-key-pkcs8-p256.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ecdh-generate-export-key-pkcs8-p384.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ecdh-generate-export-key-spki-p256.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ecdh-generate-export-key-spki-p384.html [ Skip ] webkit.org/b/133122 crypto/subtle/ecdh-import-pkcs8-key-p256.html [ Skip ] webkit.org/b/133122 crypto/subtle/ecdh-import-pkcs8-key-p384.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ecdh-import-spki-key-p256.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ecdh-import-spki-key-p384.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ecdsa-generate-export-key-pkcs8.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ecdsa-generate-export-key-spki.html [ Skip ] webkit.org/b/133122 crypto/subtle/ecdsa-import-pkcs8-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ecdsa-import-spki-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ec-import-jwk-key-export-pkcs8-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ec-import-jwk-key-export-spki-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/ec-import-pkcs8-key-export-jwk-key.html [ Skip ] webkit.org/b/133122 crypto/subtle/ec-import-pkcs8-key-export-pkcs8-key-p256.html [ Skip ] webkit.org/b/133122 crypto/subtle/ec-import-pkcs8-key-export-pkcs8-key-p384.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ec-import-raw-key-export-spki-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ec-import-spki-key-export-jwk-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ec-import-spki-key-export-raw-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ec-import-spki-key-export-spki-key-p256.html [ Skip ] -webkit.org/b/133122 crypto/subtle/ec-import-spki-key-export-spki-key-p384.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsaes-pkcs1-v1_5-generate-export-key-pkcs8.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsaes-pkcs1-v1_5-generate-export-key-spki.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsaes-pkcs1-v1_5-import-pkcs8-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsaes-pkcs1-v1_5-import-spki-key-empty-usages.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsaes-pkcs1-v1_5-import-spki-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsa-export-key-malformed-parameters.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsa-import-jwk-key-export-pkcs8-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsa-import-jwk-key-export-spki-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsa-import-pkcs8-key-export-jwk-key.html [ Skip ] -webkit.org/b/133122 crypto/subtle/rsa-impo
[webkit-changes] [219674] trunk/Source/WebCore
Title: [219674] trunk/Source/WebCore Revision 219674 Author zandober...@gmail.com Date 2017-07-19 22:43:11 -0700 (Wed, 19 Jul 2017) Log Message Unreviewed CoordGraphics build fix. * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp: (WebCore::ScrollingCoordinatorCoordinatedGraphics::updateNodeViewportConstraints): This should be defined for the ScrollingCoordinatorCoordinatedGraphics class. Also fix the setFixedToViewport() call, fishing out the GraphicsLayer object from the ScrollingStateNode's LayerRepresentation. (WebCore::AsyncScrollingCoordinator::updateNodeViewportConstraints): Deleted. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (219673 => 219674) --- trunk/Source/WebCore/ChangeLog 2017-07-20 05:23:48 UTC (rev 219673) +++ trunk/Source/WebCore/ChangeLog 2017-07-20 05:43:11 UTC (rev 219674) @@ -1,3 +1,14 @@ +2017-07-19 Zan Dobersek + +Unreviewed CoordGraphics build fix. + +* page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp: +(WebCore::ScrollingCoordinatorCoordinatedGraphics::updateNodeViewportConstraints): +This should be defined for the ScrollingCoordinatorCoordinatedGraphics class. +Also fix the setFixedToViewport() call, fishing out the GraphicsLayer object from +the ScrollingStateNode's LayerRepresentation. +(WebCore::AsyncScrollingCoordinator::updateNodeViewportConstraints): Deleted. + 2017-07-19 Chris Dumez Drop SQLException type Modified: trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp (219673 => 219674) --- trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp 2017-07-20 05:23:48 UTC (rev 219673) +++ trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp 2017-07-20 05:43:11 UTC (rev 219674) @@ -24,11 +24,11 @@ */ #include "config.h" +#include "ScrollingCoordinatorCoordinatedGraphics.h" #if USE(COORDINATED_GRAPHICS) -#include "ScrollingCoordinatorCoordinatedGraphics.h" - +#include "AsyncScrollingCoordinator.h" #include "CoordinatedGraphicsLayer.h" #include "FrameView.h" #include "HostWindow.h" @@ -81,7 +81,7 @@ node->setLayer(graphicsLayer); } -void AsyncScrollingCoordinator::updateNodeViewportConstraints(ScrollingNodeID nodeID, const ViewportConstraints& constraints) +void ScrollingCoordinatorCoordinatedGraphics::updateNodeViewportConstraints(ScrollingNodeID nodeID, const ViewportConstraints& constraints) { ScrollingStateNode* node = m_scrollingStateTree->stateNodeForID(nodeID); if (!node) @@ -89,7 +89,9 @@ switch (constraints.constraintType()) { case ViewportConstraints::FixedPositionConstraint: { -downcast(*graphicsLayer).setFixedToViewport(true); +auto& layer = node->layer(); +if (layer.representsGraphicsLayer()) +downcast(static_cast(layer))->setFixedToViewport(true); break; } case ViewportConstraints::StickyPositionConstraint: ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [219676] trunk/Source
Title: [219676] trunk/Source Revision 219676 Author zandober...@gmail.com Date 2017-07-19 22:57:35 -0700 (Wed, 19 Jul 2017) Log Message [CMake] Clean up Web Crypto build targets https://bugs.webkit.org/show_bug.cgi?id=174253 Reviewed by Alex Christensen. Gather the common WebCrypto source files in CMakeLists.txt, including them in the build unconditionally and instead relying on ENABLE_SUBTLE_CRYPTO build guards to exclude the code from compilation if the feature is disabled. PlatformGTK.cmake, PlatformMac.cmake and PlatformWPE.cmake can then remove duplicated build targets. PlatformMac.cmake still lists all the Mac-specific Web Crypto build targets. PlatformGTK.cmake and PlatformWPE.cmake now include GCrypt.cmake if the USE_GCRYPT variable is enabled. Both ports at the moment enable that variable though as they by default leverage a libgcrypt-based CrpytoDigest implementation in the PAL library. The new GCrypt.cmake file adds the libgcrypt-specific Web Crypto build targets to the build and also sets up libgcrypt include directiories and libraries. No new tests -- no change in behavior. * CMakeLists.txt: * PlatformGTK.cmake: * PlatformMac.cmake: * PlatformWPE.cmake: * platform/GCrypt.cmake: Added. Modified Paths trunk/Source/WebCore/CMakeLists.txt trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/PlatformGTK.cmake trunk/Source/WebCore/PlatformMac.cmake trunk/Source/WebCore/PlatformWPE.cmake trunk/Source/cmake/OptionsGTK.cmake trunk/Source/cmake/OptionsWPE.cmake Added Paths trunk/Source/WebCore/platform/GCrypt.cmake Diff Modified: trunk/Source/WebCore/CMakeLists.txt (219675 => 219676) --- trunk/Source/WebCore/CMakeLists.txt 2017-07-20 05:46:30 UTC (rev 219675) +++ trunk/Source/WebCore/CMakeLists.txt 2017-07-20 05:57:35 UTC (rev 219676) @@ -1293,6 +1293,41 @@ contentextensions/NFAToDFA.cpp contentextensions/URLFilterParser.cpp +crypto/CryptoAlgorithm.cpp +crypto/CryptoAlgorithmRegistry.cpp +crypto/CryptoKey.cpp +crypto/SubtleCrypto.cpp +crypto/WebKitSubtleCrypto.cpp + +crypto/algorithms/CryptoAlgorithmAES_CBC.cpp +crypto/algorithms/CryptoAlgorithmAES_CFB.cpp +crypto/algorithms/CryptoAlgorithmAES_CTR.cpp +crypto/algorithms/CryptoAlgorithmAES_GCM.cpp +crypto/algorithms/CryptoAlgorithmAES_KW.cpp +crypto/algorithms/CryptoAlgorithmECDH.cpp +crypto/algorithms/CryptoAlgorithmECDSA.cpp +crypto/algorithms/CryptoAlgorithmHKDF.cpp +crypto/algorithms/CryptoAlgorithmHMAC.cpp +crypto/algorithms/CryptoAlgorithmPBKDF2.cpp +crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp +crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp +crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp +crypto/algorithms/CryptoAlgorithmRSA_PSS.cpp +crypto/algorithms/CryptoAlgorithmSHA1.cpp +crypto/algorithms/CryptoAlgorithmSHA224.cpp +crypto/algorithms/CryptoAlgorithmSHA256.cpp +crypto/algorithms/CryptoAlgorithmSHA384.cpp +crypto/algorithms/CryptoAlgorithmSHA512.cpp + +crypto/keys/CryptoKeyAES.cpp +crypto/keys/CryptoKeyDataOctetSequence.cpp +crypto/keys/CryptoKeyDataRSAComponents.cpp +crypto/keys/CryptoKeyEC.cpp +crypto/keys/CryptoKeyHMAC.cpp +crypto/keys/CryptoKeyRSA.cpp +crypto/keys/CryptoKeyRaw.cpp +crypto/keys/CryptoKeySerializationRaw.cpp + css/BasicShapeFunctions.cpp css/CSSAspectRatioValue.cpp css/CSSBasicShapes.cpp Modified: trunk/Source/WebCore/ChangeLog (219675 => 219676) --- trunk/Source/WebCore/ChangeLog 2017-07-20 05:46:30 UTC (rev 219675) +++ trunk/Source/WebCore/ChangeLog 2017-07-20 05:57:35 UTC (rev 219676) @@ -1,3 +1,34 @@ +2017-07-19 Zan Dobersek + +[CMake] Clean up Web Crypto build targets +https://bugs.webkit.org/show_bug.cgi?id=174253 + +Reviewed by Alex Christensen. + +Gather the common WebCrypto source files in CMakeLists.txt, including them +in the build unconditionally and instead relying on ENABLE_SUBTLE_CRYPTO +build guards to exclude the code from compilation if the feature is disabled. + +PlatformGTK.cmake, PlatformMac.cmake and PlatformWPE.cmake can then remove +duplicated build targets. PlatformMac.cmake still lists all the Mac-specific +Web Crypto build targets. + +PlatformGTK.cmake and PlatformWPE.cmake now include GCrypt.cmake if the +USE_GCRYPT variable is enabled. Both ports at the moment enable that variable +though as they by default leverage a libgcrypt-based CrpytoDigest implementation +in the PAL library. + +The new GCrypt.cmake file adds the libgcrypt-specific Web Crypto build targets to +the build and also sets up libgcrypt include directiories and libraries. + +No new tests -- no change in behavior. + +* CMakeLists.txt: +* PlatformGTK.cmake: +* PlatformMac.cmake: +* PlatformWPE.cmake: +* platform/GCrypt.cmake: Added. + 2017-07-19 Sam Weinig
[webkit-changes] [219677] trunk/Source/WebCore
Title: [219677] trunk/Source/WebCore Revision 219677 Author zandober...@gmail.com Date 2017-07-19 23:08:28 -0700 (Wed, 19 Jul 2017) Log Message Unreviewed follow-up to r219674. * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp: Remove the AsyncScrollingCoordinator.h header include that was added by accident. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (219676 => 219677) --- trunk/Source/WebCore/ChangeLog 2017-07-20 05:57:35 UTC (rev 219676) +++ trunk/Source/WebCore/ChangeLog 2017-07-20 06:08:28 UTC (rev 219677) @@ -1,5 +1,12 @@ 2017-07-19 Zan Dobersek +Unreviewed follow-up to r219674. + +* page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp: +Remove the AsyncScrollingCoordinator.h header include that was added by accident. + +2017-07-19 Zan Dobersek + [CMake] Clean up Web Crypto build targets https://bugs.webkit.org/show_bug.cgi?id=174253 Modified: trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp (219676 => 219677) --- trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp 2017-07-20 05:57:35 UTC (rev 219676) +++ trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp 2017-07-20 06:08:28 UTC (rev 219677) @@ -28,7 +28,6 @@ #if USE(COORDINATED_GRAPHICS) -#include "AsyncScrollingCoordinator.h" #include "CoordinatedGraphicsLayer.h" #include "FrameView.h" #include "HostWindow.h" ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [219678] trunk/Source/WebCore
Title: [219678] trunk/Source/WebCore Revision 219678 Author zandober...@gmail.com Date 2017-07-19 23:09:56 -0700 (Wed, 19 Jul 2017) Log Message [EME] Push CDMInstance, CDMPrivate and associated types into the Platform layer https://bugs.webkit.org/show_bug.cgi?id=174496 Reviewed by Xabier Rodriguez-Calvar. Move the CDMInstance and CDMPrivate interfaces into the platform layer, enabling implementations of specific key systems at that level, as well as integration with the MediaPlayerPrivate stack without any layering violations. While the platform layer still uses the WebCore namespace, the two interface files have now been moved under the platform/encryptedmedia/ directory and out of the Modules/encryptedmedia/ directory where the Web-facing API implementation resides. The two interfaces integrated closely with the Web-facing enumerations and dictionaries: MediaKeyMessageType, MediaKeySessionType, MediaKeyStatus, MediaKeySystemConfiguration, MediaKeySystemCapability, MediaKeysRequirement and MediaKeysRestrictions. Definitions of these types are also moved to the platform layer without any changes (apart from renaming), and the previous types now alias against the types now located in the platform layer. No new tests -- no change in behavior. * CMakeLists.txt: * Modules/encryptedmedia/CDM.cpp: * Modules/encryptedmedia/CDM.h: * Modules/encryptedmedia/MediaKeyMessageType.h: * Modules/encryptedmedia/MediaKeySessionType.h: * Modules/encryptedmedia/MediaKeyStatus.h: * Modules/encryptedmedia/MediaKeySystemAccess.cpp: * Modules/encryptedmedia/MediaKeySystemAccess.h: * Modules/encryptedmedia/MediaKeySystemConfiguration.h: * Modules/encryptedmedia/MediaKeySystemMediaCapability.h: * Modules/encryptedmedia/MediaKeysRequirement.h: * Modules/encryptedmedia/MediaKeysRestrictions.h: * platform/encryptedmedia/CDMInstance.h: Renamed from Source/WebCore/Modules/encryptedmedia/CDMInstance.h. * platform/encryptedmedia/CDMKeyStatus.h: Copied from Source/WebCore/Modules/encryptedmedia/MediaKeyStatus.h. * platform/encryptedmedia/CDMKeySystemConfiguration.h: Copied from Source/WebCore/Modules/encryptedmedia/MediaKeySystemConfiguration.h. * platform/encryptedmedia/CDMMediaCapability.h: Copied from Source/WebCore/Modules/encryptedmedia/MediaKeySystemMediaCapability.h. * platform/encryptedmedia/CDMMessageType.h: Copied from Source/WebCore/Modules/encryptedmedia/MediaKeyMessageType.h. * platform/encryptedmedia/CDMPrivate.h: Renamed from Source/WebCore/Modules/encryptedmedia/CDMPrivate.h. * platform/encryptedmedia/CDMRequirement.h: Copied from Source/WebCore/Modules/encryptedmedia/MediaKeysRequirement.h. * platform/encryptedmedia/CDMRestrictions.h: Copied from Source/WebCore/Modules/encryptedmedia/MediaKeysRestrictions.h. * platform/encryptedmedia/CDMSessionType.h: Copied from Source/WebCore/Modules/encryptedmedia/MediaKeySessionType.h. Modified Paths trunk/Source/WebCore/CMakeLists.txt trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp trunk/Source/WebCore/Modules/encryptedmedia/CDM.h trunk/Source/WebCore/Modules/encryptedmedia/MediaKeyMessageType.h trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySessionType.h trunk/Source/WebCore/Modules/encryptedmedia/MediaKeyStatus.h trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySystemAccess.cpp trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySystemAccess.h trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySystemConfiguration.h trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySystemMediaCapability.h trunk/Source/WebCore/Modules/encryptedmedia/MediaKeysRequirement.h trunk/Source/WebCore/Modules/encryptedmedia/MediaKeysRestrictions.h Added Paths trunk/Source/WebCore/platform/encryptedmedia/ trunk/Source/WebCore/platform/encryptedmedia/CDMInstance.h trunk/Source/WebCore/platform/encryptedmedia/CDMKeyStatus.h trunk/Source/WebCore/platform/encryptedmedia/CDMKeySystemConfiguration.h trunk/Source/WebCore/platform/encryptedmedia/CDMMediaCapability.h trunk/Source/WebCore/platform/encryptedmedia/CDMMessageType.h trunk/Source/WebCore/platform/encryptedmedia/CDMPrivate.h trunk/Source/WebCore/platform/encryptedmedia/CDMRequirement.h trunk/Source/WebCore/platform/encryptedmedia/CDMRestrictions.h trunk/Source/WebCore/platform/encryptedmedia/CDMSessionType.h Removed Paths trunk/Source/WebCore/Modules/encryptedmedia/CDMInstance.h trunk/Source/WebCore/Modules/encryptedmedia/CDMPrivate.h Diff Modified: trunk/Source/WebCore/CMakeLists.txt (219677 => 219678) --- trunk/Source/WebCore/CMakeLists.txt 2017-07-20 06:08:28 UTC (rev 219677) +++ trunk/Source/WebCore/CMakeLists.txt 2017-07-20 06:09:56 UTC (rev 219678) @@ -83,6 +83,7 @@ "${WEBCORE_DIR}/platform/animation" "${WEBCORE_DIR}/platform/audio" "${WEBCORE_DIR}/platform/crypto" +"${WEBCORE_DIR}/platform/encryptedmedia" "${WEBCORE_DIR}/platform/gamepad" "${WEBCORE_DIR}/platform/gamepad/deprecated" "${WEBCORE_DIR}/platform/gamepad/linux" Modified: trunk/Sour
[webkit-changes] [219680] trunk/Tools
Title: [219680] trunk/Tools Revision 219680 Author zandober...@gmail.com Date 2017-07-20 05:11:59 -0700 (Thu, 20 Jul 2017) Log Message [WPE] Adjust priority of GSource used in WKTR's HeadlessViewBackend https://bugs.webkit.org/show_bug.cgi?id=174671 Reviewed by Carlos Garcia Campos. * WebKitTestRunner/wpe/HeadlessViewBackend.cpp: (HeadlessViewBackend::HeadlessViewBackend): Use the RunLoopDispatcher priority for this source in order to have it dispatched on the same priority as the other WebKit-controlled GSource objects. Modified Paths trunk/Tools/ChangeLog trunk/Tools/WebKitTestRunner/wpe/HeadlessViewBackend.cpp Diff Modified: trunk/Tools/ChangeLog (219679 => 219680) --- trunk/Tools/ChangeLog 2017-07-20 07:46:15 UTC (rev 219679) +++ trunk/Tools/ChangeLog 2017-07-20 12:11:59 UTC (rev 219680) @@ -1,3 +1,15 @@ +2017-07-20 Zan Dobersek + +[WPE] Adjust priority of GSource used in WKTR's HeadlessViewBackend +https://bugs.webkit.org/show_bug.cgi?id=174671 + +Reviewed by Carlos Garcia Campos. + +* WebKitTestRunner/wpe/HeadlessViewBackend.cpp: +(HeadlessViewBackend::HeadlessViewBackend): Use the RunLoopDispatcher +priority for this source in order to have it dispatched on the same +priority as the other WebKit-controlled GSource objects. + 2017-07-19 Jonathan Bedard lint-test-expectations should be run during style checking Modified: trunk/Tools/WebKitTestRunner/wpe/HeadlessViewBackend.cpp (219679 => 219680) --- trunk/Tools/WebKitTestRunner/wpe/HeadlessViewBackend.cpp 2017-07-20 07:46:15 UTC (rev 219679) +++ trunk/Tools/WebKitTestRunner/wpe/HeadlessViewBackend.cpp 2017-07-20 12:11:59 UTC (rev 219680) @@ -29,6 +29,7 @@ #include #include #include +#include // FIXME: Deploy good practices and clean up GBM resources at process exit. static EGLDisplay getEGLDisplay() @@ -103,6 +104,7 @@ backend.performUpdate(); return TRUE; }, this, nullptr); +g_source_set_priority(m_updateSource, RunLoopSourcePriority::RunLoopDispatcher); g_source_attach(m_updateSource, g_main_context_default()); } ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [219818] trunk/Source/WebCore
Title: [219818] trunk/Source/WebCore Revision 219818 Author zandober...@gmail.com Date 2017-07-24 06:50:05 -0700 (Mon, 24 Jul 2017) Log Message [CoordinatedGraphics] Remove unused GLDefs.h header https://bugs.webkit.org/show_bug.cgi?id=174712 Reviewed by Michael Catanzaro. * platform/graphics/opengl/GLDefs.h: Remove this unused header. As far as my recollection goes it was used in the IPC-based CoordinatedGraphics subsystem, which has been removed already. Modified Paths trunk/Source/WebCore/ChangeLog Removed Paths trunk/Source/WebCore/platform/graphics/opengl/GLDefs.h Diff Modified: trunk/Source/WebCore/ChangeLog (219817 => 219818) --- trunk/Source/WebCore/ChangeLog 2017-07-24 12:46:32 UTC (rev 219817) +++ trunk/Source/WebCore/ChangeLog 2017-07-24 13:50:05 UTC (rev 219818) @@ -1,3 +1,14 @@ +2017-07-24 Zan Dobersek + +[CoordinatedGraphics] Remove unused GLDefs.h header +https://bugs.webkit.org/show_bug.cgi?id=174712 + +Reviewed by Michael Catanzaro. + +* platform/graphics/opengl/GLDefs.h: Remove this unused header. +As far as my recollection goes it was used in the IPC-based +CoordinatedGraphics subsystem, which has been removed already. + 2017-07-11 Frederic Wang Add attribute allow-top-navigation-by-user-activation to iframe sandbox Deleted: trunk/Source/WebCore/platform/graphics/opengl/GLDefs.h (219817 => 219818) --- trunk/Source/WebCore/platform/graphics/opengl/GLDefs.h 2017-07-24 12:46:32 UTC (rev 219817) +++ trunk/Source/WebCore/platform/graphics/opengl/GLDefs.h 2017-07-24 13:50:05 UTC (rev 219818) @@ -1,74 +0,0 @@ -/* - * Copyright (C) 2012 Intel Corporation. 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. - */ - -#ifndef GLDefs_h -#define GLDefs_h - -#define GL_GLEXT_PROTOTYPES 1 - -#if USE(OPENGL_ES_2) -#include "Extensions3DOpenGLES.h" -#include "OpenGLESShims.h" -#include -#include -#else -#include "Extensions3DOpenGL.h" -#include "OpenGLShims.h" -#include -#include -#if USE(GLX) -#define GLX_GLXEXT_PROTOTYPES 1 -#include -#include -#endif -#endif - -#if USE(EGL) -#define EGL_EGLEXT_PROTOTYPES 1 -#include -#include -#endif - -namespace WebCore { - -typedef uint32_t PlatformBufferHandle; - -#if USE(GLX) -typedef GLXContext PlatformContext; -typedef GLXFBConfig PlatformSurfaceConfig; -typedef GLXDrawable PlatformDrawable; -#elif USE(EGL) -typedef EGLContext PlatformContext; -typedef EGLConfig PlatformSurfaceConfig; -typedef EGLSurface PlatformDrawable; -#else -typedef void* PlatformContext; -typedef void* PlatformSurfaceConfig; -typedef void* PlatformDrawable; -#endif - -} - -#endif ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [219819] trunk
Title: [219819] trunk Revision 219819 Author zandober...@gmail.com Date 2017-07-24 07:24:38 -0700 (Mon, 24 Jul 2017) Log Message [WPE] libepoxy headers can use EGL_CAST, which might not be defined by eglplatform.h https://bugs.webkit.org/show_bug.cgi?id=174780 Reviewed by Carlos Garcia Campos. Source/WebCore: Newer versions of libepoxy provide EGL definitions that already use the EGL_CAST macro. We'd like to compile on systems where the eglplatform.h header doesn't yet provide that macro that was added only recently (e.g. it's available in Mesa 17.1, but not before). To address that, the EpoxyEGL.h header is added that first includes the libepoxy's EGL header and then provides the EGL_CAST definition in case the eglplatform.h header doesn't. This header should be included in place of (which is included in this new header). The EpoxyEGL.h and EpoxyShims.h headers are also moved under the platform/graphics/epoxy/ directory, with the new directory added to the list of inclusion paths for WPE. * PlatformWPE.cmake: * platform/graphics/PlatformDisplay.cpp: * platform/graphics/cairo/CairoUtilities.cpp: * platform/graphics/cairo/ImageBufferCairo.cpp: * platform/graphics/egl/GLContextEGL.cpp: * platform/graphics/egl/GLContextEGLWPE.cpp: * platform/graphics/epoxy/EpoxyEGL.h: Added. * platform/graphics/epoxy/EpoxyShims.h: Renamed from Source/WebCore/platform/graphics/EpoxyShims.h. * platform/graphics/opengl/Extensions3DOpenGLES.cpp: * platform/graphics/wpe/PlatformDisplayWPE.cpp: Tools: * WebKitTestRunner/wpe/HeadlessViewBackend.cpp: Manually define the EGL_CAST macro to the C++ version that uses static_cast<> in case the eglplatform.h header doesn't provide that macro. This replicates the work in WebCore's EpoxyEGL.h header, but we can't include that header here. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/PlatformWPE.cmake trunk/Source/WebCore/platform/graphics/PlatformDisplay.cpp trunk/Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp trunk/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp trunk/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp trunk/Source/WebCore/platform/graphics/egl/GLContextEGLWPE.cpp trunk/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLES.cpp trunk/Source/WebCore/platform/graphics/wpe/PlatformDisplayWPE.cpp trunk/Tools/ChangeLog trunk/Tools/WebKitTestRunner/wpe/HeadlessViewBackend.cpp Added Paths trunk/Source/WebCore/platform/graphics/epoxy/ trunk/Source/WebCore/platform/graphics/epoxy/EpoxyEGL.h trunk/Source/WebCore/platform/graphics/epoxy/EpoxyShims.h Removed Paths trunk/Source/WebCore/platform/graphics/EpoxyShims.h Diff Modified: trunk/Source/WebCore/ChangeLog (219818 => 219819) --- trunk/Source/WebCore/ChangeLog 2017-07-24 13:50:05 UTC (rev 219818) +++ trunk/Source/WebCore/ChangeLog 2017-07-24 14:24:38 UTC (rev 219819) @@ -1,5 +1,36 @@ 2017-07-24 Zan Dobersek +[WPE] libepoxy headers can use EGL_CAST, which might not be defined by eglplatform.h +https://bugs.webkit.org/show_bug.cgi?id=174780 + +Reviewed by Carlos Garcia Campos. + +Newer versions of libepoxy provide EGL definitions that already use the EGL_CAST macro. +We'd like to compile on systems where the eglplatform.h header doesn't yet provide +that macro that was added only recently (e.g. it's available in Mesa 17.1, but not +before). + +To address that, the EpoxyEGL.h header is added that first includes the libepoxy's EGL +header and then provides the EGL_CAST definition in case the eglplatform.h header doesn't. +This header should be included in place of (which is included in this new +header). + +The EpoxyEGL.h and EpoxyShims.h headers are also moved under the platform/graphics/epoxy/ +directory, with the new directory added to the list of inclusion paths for WPE. + +* PlatformWPE.cmake: +* platform/graphics/PlatformDisplay.cpp: +* platform/graphics/cairo/CairoUtilities.cpp: +* platform/graphics/cairo/ImageBufferCairo.cpp: +* platform/graphics/egl/GLContextEGL.cpp: +* platform/graphics/egl/GLContextEGLWPE.cpp: +* platform/graphics/epoxy/EpoxyEGL.h: Added. +* platform/graphics/epoxy/EpoxyShims.h: Renamed from Source/WebCore/platform/graphics/EpoxyShims.h. +* platform/graphics/opengl/Extensions3DOpenGLES.cpp: +* platform/graphics/wpe/PlatformDisplayWPE.cpp: + +2017-07-24 Zan Dobersek + [CoordinatedGraphics] Remove unused GLDefs.h header https://bugs.webkit.org/show_bug.cgi?id=174712 Modified: trunk/Source/WebCore/PlatformWPE.cmake (219818 => 219819) --- trunk/Source/WebCore/PlatformWPE.cmake 2017-07-24 13:50:05 UTC (rev 219818) +++ trunk/Source/WebCore/PlatformWPE.cmake 2017-07-24 14:24:38 UTC (rev 219819) @@ -33,6 +33,7 @@ "${THIRDPARTY_DIR}/ANGLE/" "${THIRDPARTY_DIR}/ANGLE/include/KHR" "${WEBCORE_DIR}/platform/gra
[webkit-changes] [219820] trunk
Title: [219820] trunk Revision 219820 Author zandober...@gmail.com Date 2017-07-24 07:27:52 -0700 (Mon, 24 Jul 2017) Log Message [WPE] Add libepoxy to the Jhbuild moduleset https://bugs.webkit.org/show_bug.cgi?id=174711 Reviewed by Carlos Alberto Lopez Perez. .: libepoxy 1.3.1 that's widely available in current stable distributions (Debian stable, Ubuntu LTS) does suffice our needs, but also contains a bug that incorrectly determines the current EGL context and the API version of OpenGL that's bound to that context. Focusing on experiences on Debian systems, while the current stable Debian release has this bug patched, the package for the testing distribution of Debian removed that same patch for whatever reason, despite using the 1.3.1 version as the package basis. To avoid this, libepoxy 1.4.3 is now added to WPE's Jhbuild moduleset. The WPE port also now demands at least the 1.4.0 version to be available when configuring. We should revisit the minimum version for libepoxy in the future if the 1.3 release branch gets updated with the proper fix. * Source/cmake/FindLibEpoxy.cmake: * Source/cmake/OptionsWPE.cmake: Tools: * wpe/jhbuild.modules: Add libepoxy 1.4.3 to WPE's Jhbuild moduleset. Modified Paths trunk/ChangeLog trunk/Source/cmake/FindLibEpoxy.cmake trunk/Source/cmake/OptionsWPE.cmake trunk/Tools/ChangeLog trunk/Tools/wpe/jhbuild.modules Diff Modified: trunk/ChangeLog (219819 => 219820) --- trunk/ChangeLog 2017-07-24 14:24:38 UTC (rev 219819) +++ trunk/ChangeLog 2017-07-24 14:27:52 UTC (rev 219820) @@ -1,3 +1,26 @@ +2017-07-24 Zan Dobersek + +[WPE] Add libepoxy to the Jhbuild moduleset +https://bugs.webkit.org/show_bug.cgi?id=174711 + +Reviewed by Carlos Alberto Lopez Perez. + +libepoxy 1.3.1 that's widely available in current stable distributions (Debian stable, +Ubuntu LTS) does suffice our needs, but also contains a bug that incorrectly determines +the current EGL context and the API version of OpenGL that's bound to that context. +Focusing on experiences on Debian systems, while the current stable Debian release has +this bug patched, the package for the testing distribution of Debian removed that same +patch for whatever reason, despite using the 1.3.1 version as the package basis. + +To avoid this, libepoxy 1.4.3 is now added to WPE's Jhbuild moduleset. The WPE port +also now demands at least the 1.4.0 version to be available when configuring. + +We should revisit the minimum version for libepoxy in the future if the 1.3 release +branch gets updated with the proper fix. + +* Source/cmake/FindLibEpoxy.cmake: +* Source/cmake/OptionsWPE.cmake: + 2017-07-21 Konstantin Tokarev [cmake] Unreviewed, add definitions necessary to use ICU shipped with macOS Modified: trunk/Source/cmake/FindLibEpoxy.cmake (219819 => 219820) --- trunk/Source/cmake/FindLibEpoxy.cmake 2017-07-24 14:24:38 UTC (rev 219819) +++ trunk/Source/cmake/FindLibEpoxy.cmake 2017-07-24 14:27:52 UTC (rev 219820) @@ -43,4 +43,5 @@ mark_as_advanced(LIBEPOXY_INCLUDE_DIRS LIBEPOXY_LIBRARIES) include(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBEPOXY REQUIRED_VARS LIBEPOXY_INCLUDE_DIRS LIBEPOXY_LIBRARIES) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBEPOXY REQUIRED_VARS LIBEPOXY_INCLUDE_DIRS LIBEPOXY_LIBRARIES + VERSION_VAR PC_LIBEPOXY_VERSION) Modified: trunk/Source/cmake/OptionsWPE.cmake (219819 => 219820) --- trunk/Source/cmake/OptionsWPE.cmake 2017-07-24 14:24:38 UTC (rev 219819) +++ trunk/Source/cmake/OptionsWPE.cmake 2017-07-24 14:27:52 UTC (rev 219820) @@ -70,7 +70,7 @@ find_package(Freetype2 2.4.2 REQUIRED) find_package(HarfBuzz 0.9.18 REQUIRED) find_package(JPEG REQUIRED) -find_package(LibEpoxy REQUIRED) +find_package(LibEpoxy 1.4.0 REQUIRED) find_package(LibGcrypt 1.6.0 REQUIRED) find_package(LibSoup 2.42.0 REQUIRED) find_package(LibXml2 2.8.0 REQUIRED) Modified: trunk/Tools/ChangeLog (219819 => 219820) --- trunk/Tools/ChangeLog 2017-07-24 14:24:38 UTC (rev 219819) +++ trunk/Tools/ChangeLog 2017-07-24 14:27:52 UTC (rev 219820) @@ -1,5 +1,14 @@ 2017-07-24 Zan Dobersek +[WPE] Add libepoxy to the Jhbuild moduleset +https://bugs.webkit.org/show_bug.cgi?id=174711 + +Reviewed by Carlos Alberto Lopez Perez. + +* wpe/jhbuild.modules: Add libepoxy 1.4.3 to WPE's Jhbuild moduleset. + +2017-07-24 Zan Dobersek + [WPE] libepoxy headers can use EGL_CAST, which might not be defined by eglplatform.h https://bugs.webkit.org/show_bug.cgi?id=174780 Modified: trunk/Tools/wpe/jhbuild.modules (219819 => 219820) --- trunk/Tools/wpe/jhbuild.modules 2017-07-24 14:24:38 UTC (rev 219819) +++ trunk/Tools/wpe/jhbuild.modules 2017-07-24 14:27:52 UTC (rev 219820) @@ -24,6 +24,7 @@ + @@ -41,6 +42,8 @@ href=""
[webkit-changes] [219910] trunk
Title: [219910] trunk Revision 219910 Author zandober...@gmail.com Date 2017-07-26 01:26:08 -0700 (Wed, 26 Jul 2017) Log Message [WPE] WebGL2 support https://bugs.webkit.org/show_bug.cgi?id=174249 Reviewed by Alex Christensen. Source/WebCore: Implement WebGL2 support in GraphicsContext3DCairo for the WPE port, but keep the implementation specific to libepoxy (which WPE leverages by default). In the GraphicsContext3D::create() method, we first construct the GraphicsContext3D object that also ensures a current GL context on this thread. Only then can we determine through libepoxy whether the underlying GL library is able to support WebGL2. For WebGL2, the GLES3 support is required. The initial libepoxy implementation ensures this only in case of 'non-desktop GL' library of minimum version 3.0. This effectively translates to the only supported configuration being the EGL and OpenGL ES 3.0 (or higher) combination. If this cannot be ensured, we discard the existing GraphicsContext3D object and return null. WebGL2 can also be supported via OpenGL (i.e. 'desktop GL'), but this hasn't been tested yet. Implementation will in the future be extended to support that as required. In the GraphicsContext3D constructor itself, the ANGLEWebKitBridge constructor has to now receive the second argument, the desired shader specification that's used when parsing the provided shaders. This should be SH_WEBGL_SPEC for WebGL1, and SH_WEBGL2_SPEC for WebGL2. No new tests -- a small set of existing WebGL2 tests is unskipped and passing. * platform/graphics/cairo/GraphicsContext3DCairo.cpp: (WebCore::GraphicsContext3D::create): (WebCore::GraphicsContext3D::GraphicsContext3D): * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: Add WebGL2-specific methods to the build. Tools: * Scripts/webkitperl/FeatureList.pm: Enable WebGL2 for WPE when building through build-webkit. LayoutTests: * platform/wpe/TestExpectations: Unskip WebGL2 tests under the webgl/ directory. More tests under fast/canvas/webgl2/ will be unskipped later. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/wpe/TestExpectations trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/cairo/GraphicsContext3DCairo.cpp trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp trunk/Tools/ChangeLog trunk/Tools/Scripts/webkitperl/FeatureList.pm Diff Modified: trunk/LayoutTests/ChangeLog (219909 => 219910) --- trunk/LayoutTests/ChangeLog 2017-07-26 08:16:48 UTC (rev 219909) +++ trunk/LayoutTests/ChangeLog 2017-07-26 08:26:08 UTC (rev 219910) @@ -1,3 +1,14 @@ +2017-07-26 Zan Dobersek + +[WPE] WebGL2 support +https://bugs.webkit.org/show_bug.cgi?id=174249 + +Reviewed by Alex Christensen. + +* platform/wpe/TestExpectations: +Unskip WebGL2 tests under the webgl/ directory. More tests under fast/canvas/webgl2/ +will be unskipped later. + 2017-07-26 Nan Wang AX: should dispatch accessibilityPerformPressAction async on MacOS Modified: trunk/LayoutTests/platform/wpe/TestExpectations (219909 => 219910) --- trunk/LayoutTests/platform/wpe/TestExpectations 2017-07-26 08:16:48 UTC (rev 219909) +++ trunk/LayoutTests/platform/wpe/TestExpectations 2017-07-26 08:26:08 UTC (rev 219910) @@ -179,11 +179,6 @@ webkit.org/b/169917 webgl/1.0.2/conformance/glsl/misc/shader-with-non-reserved-words.html [ Slow ] webkit.org/b/169917 webgl/1.0.3/conformance/rendering/many-draw-calls.html [ Slow ] -# WebGL2 -Bug(WPE) webgl/webgl-vertex-array-object-defined.html [ Failure ] -Bug(WPE) webgl/webgl2-rendering-context-defined.html [ Failure ] -Bug(WPE) webgl/webgl2-rendering-context-obtain.html [ Failure ] - # security/ # Require EventSender support Bug(WPE) security/contentSecurityPolicy/image-with-blob-url-allowed-by-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html [ Skip ] Modified: trunk/Source/WebCore/ChangeLog (219909 => 219910) --- trunk/Source/WebCore/ChangeLog 2017-07-26 08:16:48 UTC (rev 219909) +++ trunk/Source/WebCore/ChangeLog 2017-07-26 08:26:08 UTC (rev 219910) @@ -1,3 +1,41 @@ +2017-07-26 Zan Dobersek + +[WPE] WebGL2 support +https://bugs.webkit.org/show_bug.cgi?id=174249 + +Reviewed by Alex Christensen. + +Implement WebGL2 support in GraphicsContext3DCairo for the WPE port, but keep +the implementation specific to libepoxy (which WPE leverages by default). + +In the GraphicsContext3D::create() method, we first construct the +GraphicsContext3D object that also ensures a current GL context on this thread. +Only then can we determine through libepoxy whether the underlying GL library +is able to support WebGL2. + +For WebGL2, the GLES3 support is required. The initial libepoxy implementation +ensures this only in case of 'non-desktop GL' library of minimum version 3.0. +This effectively trans
[webkit-changes] [219940] trunk/Source/WebKit
Title: [219940] trunk/Source/WebKit Revision 219940 Author zandober...@gmail.com Date 2017-07-26 06:09:30 -0700 (Wed, 26 Jul 2017) Log Message Unreviewed. Fix a compiler warning that springs up when building the WPE port with Clang. * UIProcess/API/wpe/ScrollGestureController.h: Let ScrollGestureController be a class, and not a struct. This fits the usual pattern, and also matches the forward declaration used in WPE's PageClientImpl.h. Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/UIProcess/API/wpe/ScrollGestureController.h Diff Modified: trunk/Source/WebKit/ChangeLog (219939 => 219940) --- trunk/Source/WebKit/ChangeLog 2017-07-26 10:33:22 UTC (rev 219939) +++ trunk/Source/WebKit/ChangeLog 2017-07-26 13:09:30 UTC (rev 219940) @@ -1,3 +1,13 @@ +2017-07-26 Zan Dobersek + +Unreviewed. Fix a compiler warning that springs up when +building the WPE port with Clang. + +* UIProcess/API/wpe/ScrollGestureController.h: +Let ScrollGestureController be a class, and not a struct. +This fits the usual pattern, and also matches the forward +declaration used in WPE's PageClientImpl.h. + 2017-07-26 Carlos Garcia Campos Unreviewed. Update OptionsGTK.cmake and NEWS for 2.17.5 release. Modified: trunk/Source/WebKit/UIProcess/API/wpe/ScrollGestureController.h (219939 => 219940) --- trunk/Source/WebKit/UIProcess/API/wpe/ScrollGestureController.h 2017-07-26 10:33:22 UTC (rev 219939) +++ trunk/Source/WebKit/UIProcess/API/wpe/ScrollGestureController.h 2017-07-26 13:09:30 UTC (rev 219940) @@ -29,7 +29,7 @@ namespace WebKit { -struct ScrollGestureController { +class ScrollGestureController { public: ScrollGestureController() = default; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [219945] trunk/Source/WebCore
Title: [219945] trunk/Source/WebCore Revision 219945 Author zandober...@gmail.com Date 2017-07-26 07:31:13 -0700 (Wed, 26 Jul 2017) Log Message [EME][GStreamer] Handle ClearKey as a supported key system https://bugs.webkit.org/show_bug.cgi?id=174778 Reviewed by Xabier Rodriguez-Calvar. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: (WebCore::MediaPlayerPrivateGStreamerBase::supportsKeySystem): Return true for the 'org.w3.clearkey' key system when building with ENCRYPTED_MEDIA enabled. The underlying implementation will follow. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (219944 => 219945) --- trunk/Source/WebCore/ChangeLog 2017-07-26 14:23:21 UTC (rev 219944) +++ trunk/Source/WebCore/ChangeLog 2017-07-26 14:31:13 UTC (rev 219945) @@ -1,3 +1,15 @@ +2017-07-26 Zan Dobersek + +[EME][GStreamer] Handle ClearKey as a supported key system +https://bugs.webkit.org/show_bug.cgi?id=174778 + +Reviewed by Xabier Rodriguez-Calvar. + +* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: +(WebCore::MediaPlayerPrivateGStreamerBase::supportsKeySystem): +Return true for the 'org.w3.clearkey' key system when building with +ENCRYPTED_MEDIA enabled. The underlying implementation will follow. + 2017-07-26 Claudio Saavedra [WPE] Fix a potential crash in the platform pasteboard when reading a string Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp (219944 => 219945) --- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp 2017-07-26 14:23:21 UTC (rev 219944) +++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp 2017-07-26 14:31:13 UTC (rev 219945) @@ -1034,6 +1034,12 @@ bool MediaPlayerPrivateGStreamerBase::supportsKeySystem(const String& keySystem, const String& mimeType) { GST_INFO("Checking for KeySystem support with %s and type %s: false.", keySystem.utf8().data(), mimeType.utf8().data()); + +#if ENABLE(ENCRYPTED_MEDIA) +if (equalLettersIgnoringASCIICase(keySystem, "org.w3.clearkey")) +return true; +#endif + return false; } ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [219946] trunk/Source/WebCore
Title: [219946] trunk/Source/WebCore Revision 219946 Author zandober...@gmail.com Date 2017-07-26 07:33:10 -0700 (Wed, 26 Jul 2017) Log Message [EME][GStreamer] Multi-key support in the GStreamer ClearKey decryptor https://bugs.webkit.org/show_bug.cgi?id=174779 Reviewed by Xabier Rodriguez-Calvar. In the CENC decryptor, the key ID value is retrieved from the info structure on the GstProtectionMeta object. GstBuffer for that value is retrieved and passed to the setupCipher() function. In the ClearKey decryptor (which extends the CENC decryptor), the single GstBuffer object on the private instance that holds the key value is replaced with a Vector object that holds pairs of key ID and value GstBuffers. In the handleKeyResponse() implementation that Vector is emptied and then refilled with key ID and value pairs that are passed in through the drm-cipher-clearkey structure that's attached to the GstEvent that signalled new key information. In the ClearKey decryptor's setupCipher() implementation the passed-in key ID buffer is used to find a matching key ID and value pair stored on the private instance. If not found, an error is thrown. If found, the matching key value is used for decryption. * platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp: (webKitMediaClearKeyDecryptorHandleKeyResponse): (webKitMediaClearKeyDecryptorSetupCipher): * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: (webkitMediaCommonEncryptionDecryptTransformInPlace): (webKitMediaCommonEncryptionDecryptDefaultSetupCipher): * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h Diff Modified: trunk/Source/WebCore/ChangeLog (219945 => 219946) --- trunk/Source/WebCore/ChangeLog 2017-07-26 14:31:13 UTC (rev 219945) +++ trunk/Source/WebCore/ChangeLog 2017-07-26 14:33:10 UTC (rev 219946) @@ -1,5 +1,36 @@ 2017-07-26 Zan Dobersek +[EME][GStreamer] Multi-key support in the GStreamer ClearKey decryptor +https://bugs.webkit.org/show_bug.cgi?id=174779 + +Reviewed by Xabier Rodriguez-Calvar. + +In the CENC decryptor, the key ID value is retrieved from the info structure +on the GstProtectionMeta object. GstBuffer for that value is retrieved and +passed to the setupCipher() function. + +In the ClearKey decryptor (which extends the CENC decryptor), the single +GstBuffer object on the private instance that holds the key value is replaced +with a Vector object that holds pairs of key ID and value GstBuffers. In the +handleKeyResponse() implementation that Vector is emptied and then refilled +with key ID and value pairs that are passed in through the drm-cipher-clearkey +structure that's attached to the GstEvent that signalled new key information. + +In the ClearKey decryptor's setupCipher() implementation the passed-in key ID +buffer is used to find a matching key ID and value pair stored on the private +instance. If not found, an error is thrown. If found, the matching key value +is used for decryption. + +* platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp: +(webKitMediaClearKeyDecryptorHandleKeyResponse): +(webKitMediaClearKeyDecryptorSetupCipher): +* platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: +(webkitMediaCommonEncryptionDecryptTransformInPlace): +(webKitMediaCommonEncryptionDecryptDefaultSetupCipher): +* platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h: + +2017-07-26 Zan Dobersek + [EME][GStreamer] Handle ClearKey as a supported key system https://bugs.webkit.org/show_bug.cgi?id=174778 Modified: trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp (219945 => 219946) --- trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp 2017-07-26 14:31:13 UTC (rev 219945) +++ trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp 2017-07-26 14:33:10 UTC (rev 219946) @@ -31,15 +31,20 @@ #define CLEARKEY_SIZE 16 +struct Key { +GRefPtr keyID; +GRefPtr keyValue; +}; + #define WEBKIT_MEDIA_CK_DECRYPT_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_MEDIA_CK_DECRYPT, WebKitMediaClearKeyDecryptPrivate)) struct _WebKitMediaClearKeyDecryptPrivate { -GRefPtr key; +Vector keys; gcry_cipher_hd_t handle; }; static void webKitMediaClearKeyDecryptorFinalize(GObject*); static gboolean webKitMediaClearKeyDecryptorHandleKey
[webkit-changes] [219976] trunk
Title: [219976] trunk Revision 219976 Author zandober...@gmail.com Date 2017-07-27 01:13:02 -0700 (Thu, 27 Jul 2017) Log Message [GCrypt] Key serialization support https://bugs.webkit.org/show_bug.cgi?id=173883 Reviewed by Jiewen Tan. Source/WebCore: Implement crypto key serialization for platforms that use libgcrypt. Despite the function names and the existing implementation for the Mac port, we don't perform the KEK wrapping and unwrapping due to the review feedback advising against it. Instead the passed-in key data is simply copied and returned as the result of the 'wrapping' operation, and similarly the passed-in serialized data is simply copied and returned as the result of the 'unwrapping' operation. No new tests -- related tests are now passing and are unskipped. * crypto/gcrypt/SerializedCryptoKeyWrapGCrypt.cpp: (WebCore::getDefaultWebCryptoMasterKey): (WebCore::wrapSerializedCryptoKey): (WebCore::unwrapSerializedCryptoKey): LayoutTests: * platform/wpe/TestExpectations: Unskip the crypto/worker/ tests that utilize key serialization and are now passing. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/wpe/TestExpectations trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/crypto/gcrypt/SerializedCryptoKeyWrapGCrypt.cpp Diff Modified: trunk/LayoutTests/ChangeLog (219975 => 219976) --- trunk/LayoutTests/ChangeLog 2017-07-27 03:57:19 UTC (rev 219975) +++ trunk/LayoutTests/ChangeLog 2017-07-27 08:13:02 UTC (rev 219976) @@ -1,3 +1,13 @@ +2017-07-27 Zan Dobersek + +[GCrypt] Key serialization support +https://bugs.webkit.org/show_bug.cgi?id=173883 + +Reviewed by Jiewen Tan. + +* platform/wpe/TestExpectations: Unskip the crypto/worker/ tests that +utilize key serialization and are now passing. + 2017-07-26 Arnaud Renevier and Fujii Hironori Implement new TextMetrics, returned by canvas measureText() Modified: trunk/LayoutTests/platform/wpe/TestExpectations (219975 => 219976) --- trunk/LayoutTests/platform/wpe/TestExpectations 2017-07-27 03:57:19 UTC (rev 219975) +++ trunk/LayoutTests/platform/wpe/TestExpectations 2017-07-27 08:13:02 UTC (rev 219976) @@ -440,21 +440,8 @@ webkit.org/b/133122 crypto/workers/subtle/aes-cfb-import-key-encrypt.html [ Skip ] webkit.org/b/133122 crypto/workers/subtle/aes-cfb-import-key-unwrap-key.html [ Skip ] webkit.org/b/133122 crypto/workers/subtle/aes-cfb-import-key-wrap-key.html [ Skip ] -webkit.org/b/133122 crypto/workers/subtle/aes-postMessage-worker.html [ Skip ] -webkit.org/b/133122 crypto/workers/subtle/ec-generate-export-pkcs8-key.html [ Skip ] -webkit.org/b/133122 crypto/workers/subtle/ec-generate-export-spki-key.html [ Skip ] webkit.org/b/133122 crypto/workers/subtle/ec-import-pkcs8-key.html [ Skip ] -webkit.org/b/133122 crypto/workers/subtle/ec-import-spki-key.html [ Skip ] webkit.org/b/133122 crypto/workers/subtle/ec-postMessage-worker.html [ Skip ] -webkit.org/b/133122 crypto/workers/subtle/hmac-postMessage-worker.html [ Skip ] -webkit.org/b/133122 crypto/workers/subtle/hrsa-postMessage-worker.html [ Skip ] -webkit.org/b/133122 crypto/workers/subtle/multiple-postMessage-worker.html [ Skip ] -webkit.org/b/133122 crypto/workers/subtle/raw-postMessage-worker.html [ Skip ] -webkit.org/b/133122 crypto/workers/subtle/rsa-export-pkcs8-key.html [ Skip ] -webkit.org/b/133122 crypto/workers/subtle/rsa-export-spki-key.html [ Skip ] -webkit.org/b/133122 crypto/workers/subtle/rsa-import-pkcs8-key.html [ Skip ] -webkit.org/b/133122 crypto/workers/subtle/rsa-import-spki-key.html [ Skip ] -webkit.org/b/133122 crypto/workers/subtle/rsa-postMessage-worker.html [ Skip ] imported/w3c/web-platform-tests/WebCryptoAPI [ Pass Slow ] webkit.org/b/133122 imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/rsa.worker.html [ Failure ] Modified: trunk/Source/WebCore/ChangeLog (219975 => 219976) --- trunk/Source/WebCore/ChangeLog 2017-07-27 03:57:19 UTC (rev 219975) +++ trunk/Source/WebCore/ChangeLog 2017-07-27 08:13:02 UTC (rev 219976) @@ -1,3 +1,27 @@ +2017-07-27 Zan Dobersek + +[GCrypt] Key serialization support +https://bugs.webkit.org/show_bug.cgi?id=173883 + +Reviewed by Jiewen Tan. + +Implement crypto key serialization for platforms that use libgcrypt. + +Despite the function names and the existing implementation for the Mac port, +we don't perform the KEK wrapping and unwrapping due to the review feedback +advising against it. + +Instead the passed-in key data is simply copied and returned as the result of +the 'wrapping' operation, and similarly the passed-in serialized data is simply +copied and returned as the result of the 'unwrapping' operation. + +No new tests -- related tests are now passing and are unskipped. + +* crypto/gcrypt/SerializedCryptoKeyWrapGCrypt.cpp: +(WebCore::getDefaultWebCryptoMasterKey): +(WebCore::wrapSerializedCryptoK
[webkit-changes] [219977] trunk/Source/WebCore
Title: [219977] trunk/Source/WebCore Revision 219977 Author zandober...@gmail.com Date 2017-07-27 01:13:55 -0700 (Thu, 27 Jul 2017) Log Message [EME] Allow CDMInstance type traits specialization https://bugs.webkit.org/show_bug.cgi?id=174886 Reviewed by Xabier Rodriguez-Calvar. Allow using the trait-based type casting for the CDMInstance class and its derivatives. ImplementationType enumeration values are to be used and returned from the new implementationType() virtual method. This method is leveraged in the type trait specialization that enables using is<>() and downcast<>() helpers for CDMInstance objects. This will allow differentiating between CDMInstance implementations once the media playback pipeline has to retrieve any key information that's necessary for playback of encrypted content. MockCDMInstance class overrides the implementationType() method, returning the ImplementationType::Mock value. Type trait specializations for this class aren't added since they're not needed anywhere at this point. * platform/encryptedmedia/CDMInstance.h: * testing/MockCDMFactory.h: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/encryptedmedia/CDMInstance.h trunk/Source/WebCore/testing/MockCDMFactory.h Diff Modified: trunk/Source/WebCore/ChangeLog (219976 => 219977) --- trunk/Source/WebCore/ChangeLog 2017-07-27 08:13:02 UTC (rev 219976) +++ trunk/Source/WebCore/ChangeLog 2017-07-27 08:13:55 UTC (rev 219977) @@ -1,5 +1,29 @@ 2017-07-27 Zan Dobersek +[EME] Allow CDMInstance type traits specialization +https://bugs.webkit.org/show_bug.cgi?id=174886 + +Reviewed by Xabier Rodriguez-Calvar. + +Allow using the trait-based type casting for the CDMInstance class and its +derivatives. ImplementationType enumeration values are to be used and +returned from the new implementationType() virtual method. This method is +leveraged in the type trait specialization that enables using is<>() and +downcast<>() helpers for CDMInstance objects. + +This will allow differentiating between CDMInstance implementations once +the media playback pipeline has to retrieve any key information that's +necessary for playback of encrypted content. + +MockCDMInstance class overrides the implementationType() method, returning +the ImplementationType::Mock value. Type trait specializations for this +class aren't added since they're not needed anywhere at this point. + +* platform/encryptedmedia/CDMInstance.h: +* testing/MockCDMFactory.h: + +2017-07-27 Zan Dobersek + [GCrypt] Key serialization support https://bugs.webkit.org/show_bug.cgi?id=173883 Modified: trunk/Source/WebCore/platform/encryptedmedia/CDMInstance.h (219976 => 219977) --- trunk/Source/WebCore/platform/encryptedmedia/CDMInstance.h 2017-07-27 08:13:02 UTC (rev 219976) +++ trunk/Source/WebCore/platform/encryptedmedia/CDMInstance.h 2017-07-27 08:13:55 UTC (rev 219977) @@ -34,6 +34,7 @@ #include #include #include +#include #include namespace WebCore { @@ -46,6 +47,12 @@ public: virtual ~CDMInstance() { } +enum class ImplementationType { +Mock, +}; + +virtual ImplementationType implementationType() const = 0; + enum SuccessValue { Failed, Succeeded, @@ -90,4 +97,9 @@ } // namespace WebCore +#define SPECIALIZE_TYPE_TRAITS_CDM_INSTANCE(ToValueTypeName, ImplementationTypeName) \ +SPECIALIZE_TYPE_TRAITS_BEGIN(ToValueTypeName) \ +static bool isType(const WebCore::CDMInstance& instance) { return instance.implementationType() == ImplementationTypeName; } \ +SPECIALIZE_TYPE_TRAITS_END() + #endif Modified: trunk/Source/WebCore/testing/MockCDMFactory.h (219976 => 219977) --- trunk/Source/WebCore/testing/MockCDMFactory.h 2017-07-27 08:13:02 UTC (rev 219976) +++ trunk/Source/WebCore/testing/MockCDMFactory.h 2017-07-27 08:13:55 UTC (rev 219977) @@ -127,6 +127,7 @@ MockCDMInstance(WeakPtr); private: +ImplementationType implementationType() const final { return ImplementationType::Mock; } SuccessValue initializeWithConfiguration(const MediaKeySystemConfiguration&) final; SuccessValue setDistinctiveIdentifiersAllowed(bool) final; SuccessValue setPersistentStateAllowed(bool) final; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [219978] trunk/Source/WebCore
Title: [219978] trunk/Source/WebCore Revision 219978 Author zandober...@gmail.com Date 2017-07-27 01:55:09 -0700 (Thu, 27 Jul 2017) Log Message [EME][GStreamer] Add barebones CDM interface implementations for ClearKey https://bugs.webkit.org/show_bug.cgi?id=174887 Reviewed by Xabier Rodriguez-Calvar. Add empty ClearKey derivations of CDMFactory, CDMPrivate and CDMInstance classes. These will be enhanced as the implementation progresses. ClearKey is added to CDMInstance::ImplementationType, and the CDMInstanceClearKey::implementationType() override returns that value. Type traits specialization for the CDMInstanceClearKey class is also added, utilizing the CDMInstance::ImplementationType::ClearKey value. The implementation file is added to the WPE build, along with the necessary inclusion directory. * PlatformWPE.cmake: * platform/encryptedmedia/CDMInstance.h: * platform/encryptedmedia/clearkey/CDMClearKey.cpp: Added. (WebCore::CDMFactoryClearKey::createCDM): (WebCore::CDMFactoryClearKey::supportsKeySystem): (WebCore::CDMPrivateClearKey::supportsInitDataType): (WebCore::CDMPrivateClearKey::supportsConfiguration): (WebCore::CDMPrivateClearKey::supportsConfigurationWithRestrictions): (WebCore::CDMPrivateClearKey::supportsSessionTypeWithConfiguration): (WebCore::CDMPrivateClearKey::supportsRobustness): (WebCore::CDMPrivateClearKey::distinctiveIdentifiersRequirement): (WebCore::CDMPrivateClearKey::persistentStateRequirement): (WebCore::CDMPrivateClearKey::distinctiveIdentifiersAreUniquePerOriginAndClearable): (WebCore::CDMPrivateClearKey::createInstance): (WebCore::CDMPrivateClearKey::loadAndInitialize): (WebCore::CDMPrivateClearKey::supportsServerCertificates): (WebCore::CDMPrivateClearKey::supportsSessions): (WebCore::CDMPrivateClearKey::supportsInitData): (WebCore::CDMPrivateClearKey::sanitizeResponse): (WebCore::CDMPrivateClearKey::sanitizeSessionId): (WebCore::CDMInstanceClearKey::initializeWithConfiguration): (WebCore::CDMInstanceClearKey::setDistinctiveIdentifiersAllowed): (WebCore::CDMInstanceClearKey::setPersistentStateAllowed): (WebCore::CDMInstanceClearKey::setServerCertificate): (WebCore::CDMInstanceClearKey::requestLicense): (WebCore::CDMInstanceClearKey::updateLicense): (WebCore::CDMInstanceClearKey::loadSession): (WebCore::CDMInstanceClearKey::closeSession): (WebCore::CDMInstanceClearKey::removeSessionData): (WebCore::CDMInstanceClearKey::storeRecordOfKeyUsage): * platform/encryptedmedia/clearkey/CDMClearKey.h: Added. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/PlatformWPE.cmake trunk/Source/WebCore/platform/encryptedmedia/CDMInstance.h Added Paths trunk/Source/WebCore/platform/encryptedmedia/clearkey/ trunk/Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.cpp trunk/Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.h Diff Modified: trunk/Source/WebCore/ChangeLog (219977 => 219978) --- trunk/Source/WebCore/ChangeLog 2017-07-27 08:13:55 UTC (rev 219977) +++ trunk/Source/WebCore/ChangeLog 2017-07-27 08:55:09 UTC (rev 219978) @@ -1,5 +1,55 @@ 2017-07-27 Zan Dobersek +[EME][GStreamer] Add barebones CDM interface implementations for ClearKey +https://bugs.webkit.org/show_bug.cgi?id=174887 + +Reviewed by Xabier Rodriguez-Calvar. + +Add empty ClearKey derivations of CDMFactory, CDMPrivate and CDMInstance +classes. These will be enhanced as the implementation progresses. + +ClearKey is added to CDMInstance::ImplementationType, and the +CDMInstanceClearKey::implementationType() override returns that value. +Type traits specialization for the CDMInstanceClearKey class is also +added, utilizing the CDMInstance::ImplementationType::ClearKey value. + +The implementation file is added to the WPE build, along with the +necessary inclusion directory. + +* PlatformWPE.cmake: +* platform/encryptedmedia/CDMInstance.h: +* platform/encryptedmedia/clearkey/CDMClearKey.cpp: Added. +(WebCore::CDMFactoryClearKey::createCDM): +(WebCore::CDMFactoryClearKey::supportsKeySystem): +(WebCore::CDMPrivateClearKey::supportsInitDataType): +(WebCore::CDMPrivateClearKey::supportsConfiguration): +(WebCore::CDMPrivateClearKey::supportsConfigurationWithRestrictions): +(WebCore::CDMPrivateClearKey::supportsSessionTypeWithConfiguration): +(WebCore::CDMPrivateClearKey::supportsRobustness): +(WebCore::CDMPrivateClearKey::distinctiveIdentifiersRequirement): +(WebCore::CDMPrivateClearKey::persistentStateRequirement): +(WebCore::CDMPrivateClearKey::distinctiveIdentifiersAreUniquePerOriginAndClearable): +(WebCore::CDMPrivateClearKey::createInstance): +(WebCore::CDMPrivateClearKey::loadAndInitialize): +(WebCore::CDMPrivateClearKey::supportsServerCertificates): +(WebCore::CDMPrivateClearKey::supportsSessions): +(WebCore::CDMPrivateClearKey::supp
[webkit-changes] [219995] trunk/Source/WebKit
Title: [219995] trunk/Source/WebKit Revision 219995 Author zandober...@gmail.com Date 2017-07-27 22:49:05 -0700 (Thu, 27 Jul 2017) Log Message [CMake] Re-add the StorageProcess executable target https://bugs.webkit.org/show_bug.cgi?id=174929 Reviewed by Carlos Garcia Campos. Re-add the StorageProcess executable target that was removed in r219960. Back then it was still named DatabaseProcess, but the name changed in the following patches. * CMakeLists.txt: Modified Paths trunk/Source/WebKit/CMakeLists.txt trunk/Source/WebKit/ChangeLog Diff Modified: trunk/Source/WebKit/CMakeLists.txt (219994 => 219995) --- trunk/Source/WebKit/CMakeLists.txt 2017-07-28 05:11:19 UTC (rev 219994) +++ trunk/Source/WebKit/CMakeLists.txt 2017-07-28 05:49:05 UTC (rev 219995) @@ -866,6 +866,17 @@ set_target_properties(NetworkProcess PROPERTIES OUTPUT_NAME ${WebKit2_NetworkProcess_OUTPUT_NAME}) endif () +if (NOT "${PORT}" STREQUAL "Mac") +add_executable(StorageProcess ${StorageProcess_SOURCES}) +add_webkit2_prefix_header(StorageProcess) +target_link_libraries(StorageProcess ${StorageProcess_LIBRARIES}) +install(TARGETS StorageProcess DESTINATION "${LIBEXEC_INSTALL_DIR}") + +if (WebKit2_StorageProcess_OUTPUT_NAME) +set_target_properties(StorageProcess PROPERTIES OUTPUT_NAME ${WebKit2_StorageProcess_OUTPUT_NAME}) +endif () +endif () + if (ENABLE_PLUGIN_PROCESS AND NOT "${PORT}" STREQUAL "Mac") add_definitions(-DENABLE_PLUGIN_PROCESS=1) add_executable(PluginProcess ${PluginProcess_SOURCES}) Modified: trunk/Source/WebKit/ChangeLog (219994 => 219995) --- trunk/Source/WebKit/ChangeLog 2017-07-28 05:11:19 UTC (rev 219994) +++ trunk/Source/WebKit/ChangeLog 2017-07-28 05:49:05 UTC (rev 219995) @@ -1,3 +1,16 @@ +2017-07-27 Zan Dobersek + +[CMake] Re-add the StorageProcess executable target +https://bugs.webkit.org/show_bug.cgi?id=174929 + +Reviewed by Carlos Garcia Campos. + +Re-add the StorageProcess executable target that was removed in r219960. +Back then it was still named DatabaseProcess, but the name changed in +the following patches. + +* CMakeLists.txt: + 2017-07-27 Brady Eidson Part 2 of: Rename DatabaseProcess to StorageProcess. ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [219999] trunk
Title: [21] trunk Revision 21 Author zandober...@gmail.com Date 2017-07-28 00:53:17 -0700 (Fri, 28 Jul 2017) Log Message Unreviewed. Bumping the patch version for WPEWebKit library to 20170728. * Source/cmake/OptionsWPE.cmake: Modified Paths trunk/ChangeLog trunk/Source/cmake/OptionsWPE.cmake Diff Modified: trunk/ChangeLog (219998 => 21) --- trunk/ChangeLog 2017-07-28 07:31:06 UTC (rev 219998) +++ trunk/ChangeLog 2017-07-28 07:53:17 UTC (rev 21) @@ -1,3 +1,9 @@ +2017-07-28 Zan Dobersek + +Unreviewed. Bumping the patch version for WPEWebKit library to 20170728. + +* Source/cmake/OptionsWPE.cmake: + 2017-07-27 Brady Eidson Part 1 of: Rename DatabaseProcess to StorageProcess. Modified: trunk/Source/cmake/OptionsWPE.cmake (219998 => 21) --- trunk/Source/cmake/OptionsWPE.cmake 2017-07-28 07:31:06 UTC (rev 219998) +++ trunk/Source/cmake/OptionsWPE.cmake 2017-07-28 07:53:17 UTC (rev 21) @@ -2,7 +2,7 @@ set(PROJECT_VERSION_MAJOR 0) set(PROJECT_VERSION_MINOR 0) -set(PROJECT_VERSION_PATCH 20170427) +set(PROJECT_VERSION_PATCH 20170728) set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}) set(WPE_API_VERSION 0.1) ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [220054] trunk/Source/WebCore
Title: [220054] trunk/Source/WebCore Revision 220054 Author zandober...@gmail.com Date 2017-07-30 23:59:59 -0700 (Sun, 30 Jul 2017) Log Message Unreviewed. Suppress the -Wextra compiler warning when building with GCC 6.3.0, explicitly initializing the RefCounted<> base class in the FetchHeaders(const FetchHeaders&) constructor. Note that while that's the signature of the copy constructor for the FetchHeaders class, the base RefCounted<> class is not copyable, so the default RefCounted<> constructor is used, but the FetchHeaders resources are normally copied into the new object from the one that's passed in. * Modules/fetch/FetchHeaders.h: (WebCore::FetchHeaders::FetchHeaders): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/fetch/FetchHeaders.h Diff Modified: trunk/Source/WebCore/ChangeLog (220053 => 220054) --- trunk/Source/WebCore/ChangeLog 2017-07-31 04:57:15 UTC (rev 220053) +++ trunk/Source/WebCore/ChangeLog 2017-07-31 06:59:59 UTC (rev 220054) @@ -1,3 +1,17 @@ +2017-07-30 Zan Dobersek + +Unreviewed. Suppress the -Wextra compiler warning when building with GCC 6.3.0, +explicitly initializing the RefCounted<> base class in the +FetchHeaders(const FetchHeaders&) constructor. + +Note that while that's the signature of the copy constructor for the FetchHeaders +class, the base RefCounted<> class is not copyable, so the default RefCounted<> +constructor is used, but the FetchHeaders resources are normally copied into the +new object from the one that's passed in. + +* Modules/fetch/FetchHeaders.h: +(WebCore::FetchHeaders::FetchHeaders): + 2017-07-30 Darin Adler Remove code in HTMLObjectElement attribute parsing that forces style resolution and layout Modified: trunk/Source/WebCore/Modules/fetch/FetchHeaders.h (220053 => 220054) --- trunk/Source/WebCore/Modules/fetch/FetchHeaders.h 2017-07-31 04:57:15 UTC (rev 220053) +++ trunk/Source/WebCore/Modules/fetch/FetchHeaders.h 2017-07-31 06:59:59 UTC (rev 220054) @@ -100,7 +100,8 @@ } inline FetchHeaders::FetchHeaders(const FetchHeaders& other) -: m_guard(other.m_guard) +: RefCounted() +, m_guard(other.m_guard) , m_headers(other.m_headers) { } ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [220092] trunk/Source/WebCore
Title: [220092] trunk/Source/WebCore Revision 220092 Author zandober...@gmail.com Date 2017-08-01 04:49:51 -0700 (Tue, 01 Aug 2017) Log Message [GCrypt] Gather crypto constants in a single location https://bugs.webkit.org/show_bug.cgi?id=174091 Reviewed by Jiewen Tan. Gather common constants used across the libgcrypt-specific Web Crypto implementations in a single place -- in the GCryptUtilities.h header, inside the CryptoConstants namespace. The various ASN.1 object identifiers and other helper values are placed inside, in the std::array container. Additionally, CryptoConstants::matches() helper function is provided. It compares the provided data-and-size pair with the given std::array container and returns true if the std::memcmp() call returns 0. Changes in CryptoKeyEC and CryptoKeyRSA consist mostly of switching to the use of CryptoConstants::matches() and the CryptoConstants data arrays, as well as some whitespace cleanup. Additionallity in CryptoKeyEC, the helper functions covering various curve attributes are reordered, renamed and reorganized for simplicity. No new tests -- no changes in behavior. * crypto/gcrypt/CryptoKeyECGCrypt.cpp: (WebCore::curveIdentifier): (WebCore::curveSize): (WebCore::curveUncompressedFieldElementSize): (WebCore::curveUncompressedPointSize): (WebCore::CryptoKeyEC::platformImportRaw): (WebCore::CryptoKeyEC::platformImportJWKPublic): (WebCore::CryptoKeyEC::platformImportJWKPrivate): (WebCore::supportedAlgorithmIdentifier): (WebCore::curveForIdentifier): (WebCore::CryptoKeyEC::platformImportSpki): (WebCore::CryptoKeyEC::platformExportRaw): (WebCore::CryptoKeyEC::platformAddFieldElements): (WebCore::CryptoKeyEC::platformExportSpki): (WebCore::CryptoKeyEC::platformExportPkcs8): (WebCore::uncompressedPointSizeForCurve): Deleted. (WebCore::uncompressedFieldElementSizeForCurve): Deleted. * crypto/gcrypt/CryptoKeyRSAGCrypt.cpp: (WebCore::supportedAlgorithmIdentifier): (WebCore::CryptoKeyRSA::importPkcs8): (WebCore::CryptoKeyRSA::exportSpki): (WebCore::CryptoKeyRSA::exportPkcs8): * crypto/gcrypt/GCryptUtilities.h: (WebCore::CryptoConstants::matches): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/crypto/gcrypt/CryptoKeyECGCrypt.cpp trunk/Source/WebCore/crypto/gcrypt/CryptoKeyRSAGCrypt.cpp trunk/Source/WebCore/crypto/gcrypt/GCryptUtilities.h Diff Modified: trunk/Source/WebCore/ChangeLog (220091 => 220092) --- trunk/Source/WebCore/ChangeLog 2017-08-01 08:08:56 UTC (rev 220091) +++ trunk/Source/WebCore/ChangeLog 2017-08-01 11:49:51 UTC (rev 220092) @@ -1,3 +1,54 @@ +2017-08-01 Zan Dobersek + +[GCrypt] Gather crypto constants in a single location +https://bugs.webkit.org/show_bug.cgi?id=174091 + +Reviewed by Jiewen Tan. + +Gather common constants used across the libgcrypt-specific Web Crypto +implementations in a single place -- in the GCryptUtilities.h header, +inside the CryptoConstants namespace. The various ASN.1 object identifiers +and other helper values are placed inside, in the std::array +container. + +Additionally, CryptoConstants::matches() helper function is provided. It +compares the provided data-and-size pair with the given std::array +container and returns true if the std::memcmp() call returns 0. + +Changes in CryptoKeyEC and CryptoKeyRSA consist mostly of switching to the +use of CryptoConstants::matches() and the CryptoConstants data arrays, as +well as some whitespace cleanup. + +Additionallity in CryptoKeyEC, the helper functions covering various curve +attributes are reordered, renamed and reorganized for simplicity. + +No new tests -- no changes in behavior. + +* crypto/gcrypt/CryptoKeyECGCrypt.cpp: +(WebCore::curveIdentifier): +(WebCore::curveSize): +(WebCore::curveUncompressedFieldElementSize): +(WebCore::curveUncompressedPointSize): +(WebCore::CryptoKeyEC::platformImportRaw): +(WebCore::CryptoKeyEC::platformImportJWKPublic): +(WebCore::CryptoKeyEC::platformImportJWKPrivate): +(WebCore::supportedAlgorithmIdentifier): +(WebCore::curveForIdentifier): +(WebCore::CryptoKeyEC::platformImportSpki): +(WebCore::CryptoKeyEC::platformExportRaw): +(WebCore::CryptoKeyEC::platformAddFieldElements): +(WebCore::CryptoKeyEC::platformExportSpki): +(WebCore::CryptoKeyEC::platformExportPkcs8): +(WebCore::uncompressedPointSizeForCurve): Deleted. +(WebCore::uncompressedFieldElementSizeForCurve): Deleted. +* crypto/gcrypt/CryptoKeyRSAGCrypt.cpp: +(WebCore::supportedAlgorithmIdentifier): +(WebCore::CryptoKeyRSA::importPkcs8): +(WebCore::CryptoKeyRSA::exportSpki): +(WebCore::CryptoKeyRSA::exportPkcs8): +* crypto/gcrypt/GCryptUtilities.h: +(WebCore::CryptoConstants::matches): + 2017-07-31 Fujii Hironori
[webkit-changes] [220108] trunk/LayoutTests
Title: [220108] trunk/LayoutTests Revision 220108 Author zandober...@gmail.com Date 2017-08-01 12:18:11 -0700 (Tue, 01 Aug 2017) Log Message [WebCrypto] Add PKCS#8 import test that covers `parameters` and `publicKey` values in ECPrivateKey https://bugs.webkit.org/show_bug.cgi?id=174420 Reviewed by Darin Adler. Add test cases that cover testing of the optional ECParameters and publicKey bit string attributes in the ECPrivateKey ASN.1 structure that's embedded in the PKCS#8 PrivateKeyInfo ASN.1 structure. Per the spec, if the ECParameters attribute in the ECPrivateKey structure is present, the relevant curve object identifier should match the same curve identifier that's used in the ECParameters attribute of the AlgorithmIdentifier structure in PrivateKeyInfo. Both of these should of course match the curve that was specified for the import operation. For the publicKey bit string, the data contained there should be properly formatted for the specific curve, meaning it should be of proper curve-specific size and that it should use 0x04 as the leading byte, signalling an uncompressed EC point. On top of that the public key should have a valid value that positions it on the specified elliptic curve. These cases are covered for PKCS#8 key imports for P-256 and P-384 curves and for both ECDH and ECDSA algorithms in the newly-introduced tests. They are skipped on all platforms since no implementation in WebKit can pass them yet. * TestExpectations: * crypto/subtle/ecdh-import-pkcs8-key-p256-validate-ecprivatekey-parameters-publickey-expected.txt: Added. * crypto/subtle/ecdh-import-pkcs8-key-p256-validate-ecprivatekey-parameters-publickey.html: Added. * crypto/subtle/ecdh-import-pkcs8-key-p384-validate-ecprivatekey-parameters-publickey-expected.txt: Added. * crypto/subtle/ecdh-import-pkcs8-key-p384-validate-ecprivatekey-parameters-publickey.html: Added. * crypto/subtle/ecdsa-import-pkcs8-key-p256-validate-ecprivatekey-parameters-publickey-expected.txt: Added. * crypto/subtle/ecdsa-import-pkcs8-key-p256-validate-ecprivatekey-parameters-publickey.html: Added. * crypto/subtle/ecdsa-import-pkcs8-key-p384-validate-ecprivatekey-parameters-publickey-expected.txt: Added. * crypto/subtle/ecdsa-import-pkcs8-key-p384-validate-ecprivatekey-parameters-publickey.html: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/TestExpectations Added Paths trunk/LayoutTests/crypto/subtle/ecdh-import-pkcs8-key-p256-validate-ecprivatekey-parameters-publickey-expected.txt trunk/LayoutTests/crypto/subtle/ecdh-import-pkcs8-key-p256-validate-ecprivatekey-parameters-publickey.html trunk/LayoutTests/crypto/subtle/ecdh-import-pkcs8-key-p384-validate-ecprivatekey-parameters-publickey-expected.txt trunk/LayoutTests/crypto/subtle/ecdh-import-pkcs8-key-p384-validate-ecprivatekey-parameters-publickey.html trunk/LayoutTests/crypto/subtle/ecdsa-import-pkcs8-key-p256-validate-ecprivatekey-parameters-publickey-expected.txt trunk/LayoutTests/crypto/subtle/ecdsa-import-pkcs8-key-p256-validate-ecprivatekey-parameters-publickey.html trunk/LayoutTests/crypto/subtle/ecdsa-import-pkcs8-key-p384-validate-ecprivatekey-parameters-publickey-expected.txt trunk/LayoutTests/crypto/subtle/ecdsa-import-pkcs8-key-p384-validate-ecprivatekey-parameters-publickey.html Diff Modified: trunk/LayoutTests/ChangeLog (220107 => 220108) --- trunk/LayoutTests/ChangeLog 2017-08-01 19:03:59 UTC (rev 220107) +++ trunk/LayoutTests/ChangeLog 2017-08-01 19:18:11 UTC (rev 220108) @@ -1,3 +1,38 @@ +2017-08-01 Zan Dobersek + +[WebCrypto] Add PKCS#8 import test that covers `parameters` and `publicKey` values in ECPrivateKey +https://bugs.webkit.org/show_bug.cgi?id=174420 + +Reviewed by Darin Adler. + +Add test cases that cover testing of the optional ECParameters and publicKey bit string +attributes in the ECPrivateKey ASN.1 structure that's embedded in the PKCS#8 PrivateKeyInfo +ASN.1 structure. + +Per the spec, if the ECParameters attribute in the ECPrivateKey structure is present, the +relevant curve object identifier should match the same curve identifier that's used in the +ECParameters attribute of the AlgorithmIdentifier structure in PrivateKeyInfo. Both of these +should of course match the curve that was specified for the import operation. + +For the publicKey bit string, the data contained there should be properly formatted for +the specific curve, meaning it should be of proper curve-specific size and that it should +use 0x04 as the leading byte, signalling an uncompressed EC point. On top of that the public +key should have a valid value that positions it on the specified elliptic curve. + +These cases are covered for PKCS#8 key imports for P-256 and P-384 curves and for both ECDH +and ECDSA algorithms in the newly-introduced tests. They are skipped on all platforms since +no implementation in WebKit can
[webkit-changes] [220203] trunk/Source/WebCore
Title: [220203] trunk/Source/WebCore Revision 220203 Author zandober...@gmail.com Date 2017-08-03 07:40:47 -0700 (Thu, 03 Aug 2017) Log Message [EME] CDM constructor assigns CDMPrivate member multiple times https://bugs.webkit.org/show_bug.cgi?id=175128 Reviewed by Xabier Rodriguez-Calvar. In the CDM class constructor, iterate over the registered CDM factories, finding one that supports the specified key system. A CDMPrivate object is created through that factory, and the iteration is now stopped at that point, while previously it contined to potentially create CDMPrivate objects through other factories. Helper createCDMPrivateForKeySystem() function is removed. * Modules/encryptedmedia/CDM.cpp: (WebCore::CDM::CDM): (WebCore::createCDMPrivateForKeySystem): Deleted. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (220202 => 220203) --- trunk/Source/WebCore/ChangeLog 2017-08-03 13:20:30 UTC (rev 220202) +++ trunk/Source/WebCore/ChangeLog 2017-08-03 14:40:47 UTC (rev 220203) @@ -1,3 +1,23 @@ +2017-08-03 Zan Dobersek + +[EME] CDM constructor assigns CDMPrivate member multiple times +https://bugs.webkit.org/show_bug.cgi?id=175128 + +Reviewed by Xabier Rodriguez-Calvar. + +In the CDM class constructor, iterate over the registered CDM +factories, finding one that supports the specified key system. +A CDMPrivate object is created through that factory, and the +iteration is now stopped at that point, while previously it +contined to potentially create CDMPrivate objects through +other factories. + +Helper createCDMPrivateForKeySystem() function is removed. + +* Modules/encryptedmedia/CDM.cpp: +(WebCore::CDM::CDM): +(WebCore::createCDMPrivateForKeySystem): Deleted. + 2017-08-03 Emilio Cobos Álvarez Don't always recalc the style of display: contents elements. Modified: trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp (220202 => 220203) --- trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp 2017-08-03 13:20:30 UTC (rev 220202) +++ trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp 2017-08-03 14:40:47 UTC (rev 220203) @@ -47,16 +47,6 @@ return factories; } -static std::unique_ptr createCDMPrivateForKeySystem(const String& keySystem, CDM& cdm) -{ -for (auto* factory : cdmFactories()) { -if (factory->supportsKeySystem(keySystem)) -return factory->createCDM(cdm); -} -ASSERT_NOT_REACHED(); -return nullptr; -} - void CDM::registerCDMFactory(CDMFactory& factory) { ASSERT(!cdmFactories().contains(&factory)); @@ -86,14 +76,14 @@ CDM::CDM(Document& document, const String& keySystem) : ContextDestructionObserver(&document) , m_keySystem(keySystem) -, m_private(createCDMPrivateForKeySystem(keySystem, *this)) , m_weakPtrFactory(this) { ASSERT(supportsKeySystem(keySystem)); for (auto* factory : cdmFactories()) { -if (!factory->supportsKeySystem(keySystem)) -continue; -m_private = factory->createCDM(*this); +if (factory->supportsKeySystem(keySystem)) { +m_private = factory->createCDM(*this); +break; +} } } ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [220260] trunk/Source/WebCore
Title: [220260] trunk/Source/WebCore Revision 220260 Author zandober...@gmail.com Date 2017-08-04 00:56:17 -0700 (Fri, 04 Aug 2017) Log Message Unreviewed. Removing redundant NotImplemented.h header inclusions and cleaning up whitespace issues in libgcrypt-specific CryptoKeyEC and CryptoKeyRSA implementation files. * crypto/gcrypt/CryptoKeyECGCrypt.cpp: * crypto/gcrypt/CryptoKeyRSAGCrypt.cpp: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/crypto/gcrypt/CryptoKeyECGCrypt.cpp trunk/Source/WebCore/crypto/gcrypt/CryptoKeyRSAGCrypt.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (220259 => 220260) --- trunk/Source/WebCore/ChangeLog 2017-08-04 07:52:43 UTC (rev 220259) +++ trunk/Source/WebCore/ChangeLog 2017-08-04 07:56:17 UTC (rev 220260) @@ -1,3 +1,12 @@ +2017-08-04 Zan Dobersek + +Unreviewed. Removing redundant NotImplemented.h header inclusions +and cleaning up whitespace issues in libgcrypt-specific CryptoKeyEC +and CryptoKeyRSA implementation files. + +* crypto/gcrypt/CryptoKeyECGCrypt.cpp: +* crypto/gcrypt/CryptoKeyRSAGCrypt.cpp: + 2017-08-04 Jeremy Jones Remove unnecesary call to status bar SPI. Modified: trunk/Source/WebCore/crypto/gcrypt/CryptoKeyECGCrypt.cpp (220259 => 220260) --- trunk/Source/WebCore/crypto/gcrypt/CryptoKeyECGCrypt.cpp 2017-08-04 07:52:43 UTC (rev 220259) +++ trunk/Source/WebCore/crypto/gcrypt/CryptoKeyECGCrypt.cpp 2017-08-04 07:56:17 UTC (rev 220260) @@ -31,7 +31,6 @@ #include "CryptoKeyPair.h" #include "GCryptUtilities.h" #include "JsonWebKey.h" -#include "NotImplemented.h" #include #include #include @@ -77,6 +76,7 @@ ASSERT_NOT_REACHED(); return 0; } + static unsigned curveUncompressedFieldElementSize(CryptoKeyEC::NamedCurve curve) { switch (curve) { Modified: trunk/Source/WebCore/crypto/gcrypt/CryptoKeyRSAGCrypt.cpp (220259 => 220260) --- trunk/Source/WebCore/crypto/gcrypt/CryptoKeyRSAGCrypt.cpp 2017-08-04 07:52:43 UTC (rev 220259) +++ trunk/Source/WebCore/crypto/gcrypt/CryptoKeyRSAGCrypt.cpp 2017-08-04 07:56:17 UTC (rev 220260) @@ -32,7 +32,6 @@ #include "CryptoKeyDataRSAComponents.h" #include "CryptoKeyPair.h" #include "GCryptUtilities.h" -#include "NotImplemented.h" #include "ScriptExecutionContext.h" #include #include ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [220264] trunk/Source/WebCore
Title: [220264] trunk/Source/WebCore Revision 220264 Author zandober...@gmail.com Date 2017-08-04 02:54:42 -0700 (Fri, 04 Aug 2017) Log Message [EME] Push CDMFactory into the platform layer https://bugs.webkit.org/show_bug.cgi?id=175129 Reviewed by Xabier Rodriguez-Calvar. This is a follow-up to r219678 that moved the majority of CDM abstraction classes into the platform layer, but missed the CDMFactory class. The CDMFactory abstraction is now also placed in the platform layer. Only change to the interface is that the createCDM() method can't accept a CDM object reference anymore since that class is cemented into the WebCore layer, and no current implementation used it anyway. Additionally, the static Vector object of registered factories is moved under the CDMFactory class, along with the register and unregister functions. The platformRegisterFactories() function is added to allow for platform-specific factory registrations to occur when the registered factories are queried for the first time. Empty implementation for this function is provided for non-GStreamer platforms, while for GStreamer the implementation is kept in CDMFactoryGStreamer.cpp. It's still empty for now, but it will register the ClearKey factory there in the near future. No new tests -- none affected, only refactoring. * CMakeLists.txt: * Modules/encryptedmedia/CDM.cpp: (WebCore::createCDMPrivateForKeySystem): (WebCore::CDM::supportsKeySystem): (WebCore::CDM::CDM): (): Deleted. (WebCore::CDM::registerCDMFactory): Deleted. (WebCore::CDM::unregisterCDMFactory): Deleted. * Modules/encryptedmedia/CDM.h: (WebCore::CDMFactory::~CDMFactory): Deleted. * PlatformWPE.cmake: * platform/GStreamer.cmake: * platform/encryptedmedia/CDMFactory.cpp: Added. (WebCore::CDMFactory::registerFactory): (WebCore::CDMFactory::unregisterFactory): (WebCore::CDMFactory::platformRegisterFactories): * platform/encryptedmedia/CDMFactory.h: Added. (WebCore::CDMFactory::~CDMFactory): * platform/encryptedmedia/clearkey/CDMClearKey.cpp: (WebCore::CDMFactoryClearKey::createCDM): * platform/encryptedmedia/clearkey/CDMClearKey.h: * platform/encryptedmedia/gstreamer/CDMFactoryGStreamer.cpp: Added. (WebCore::CDMFactory::platformRegisterFactories): * testing/MockCDMFactory.cpp: (WebCore::m_weakPtrFactory): (WebCore::MockCDMFactory::unregister): (WebCore::MockCDMFactory::createCDM): * testing/MockCDMFactory.h: Modified Paths trunk/Source/WebCore/CMakeLists.txt trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp trunk/Source/WebCore/Modules/encryptedmedia/CDM.h trunk/Source/WebCore/PlatformWPE.cmake trunk/Source/WebCore/platform/GStreamer.cmake trunk/Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.cpp trunk/Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.h trunk/Source/WebCore/testing/MockCDMFactory.cpp trunk/Source/WebCore/testing/MockCDMFactory.h Added Paths trunk/Source/WebCore/platform/encryptedmedia/CDMFactory.cpp trunk/Source/WebCore/platform/encryptedmedia/CDMFactory.h trunk/Source/WebCore/platform/graphics/gstreamer/eme/CDMFactoryGStreamer.cpp Diff Modified: trunk/Source/WebCore/CMakeLists.txt (220263 => 220264) --- trunk/Source/WebCore/CMakeLists.txt 2017-08-04 09:08:27 UTC (rev 220263) +++ trunk/Source/WebCore/CMakeLists.txt 2017-08-04 09:54:42 UTC (rev 220264) @@ -2303,6 +2303,8 @@ platform/audio/VectorMath.cpp platform/audio/ZeroPole.cpp +platform/encryptedmedia/CDMFactory.cpp + platform/graphics/BitmapImage.cpp platform/graphics/Color.cpp platform/graphics/ComplexTextController.cpp Modified: trunk/Source/WebCore/ChangeLog (220263 => 220264) --- trunk/Source/WebCore/ChangeLog 2017-08-04 09:08:27 UTC (rev 220263) +++ trunk/Source/WebCore/ChangeLog 2017-08-04 09:54:42 UTC (rev 220264) @@ -1,3 +1,59 @@ +2017-08-04 Zan Dobersek + +[EME] Push CDMFactory into the platform layer +https://bugs.webkit.org/show_bug.cgi?id=175129 + +Reviewed by Xabier Rodriguez-Calvar. + +This is a follow-up to r219678 that moved the majority of CDM abstraction +classes into the platform layer, but missed the CDMFactory class. + +The CDMFactory abstraction is now also placed in the platform layer. Only +change to the interface is that the createCDM() method can't accept a CDM +object reference anymore since that class is cemented into the WebCore +layer, and no current implementation used it anyway. + +Additionally, the static Vector object of registered factories is moved +under the CDMFactory class, along with the register and unregister +functions. The platformRegisterFactories() function is added to allow for +platform-specific factory registrations to occur when the registered +factories are queried for the first time. Empty implementation for this +function is provided for non-GStreamer platforms, while for GStreamer +the implementation is kept in C
[webkit-changes] [220269] trunk
Title: [220269] trunk Revision 220269 Author zandober...@gmail.com Date 2017-08-04 08:04:40 -0700 (Fri, 04 Aug 2017) Log Message [EME][GStreamer] Register ClearKey CDMFactory https://bugs.webkit.org/show_bug.cgi?id=175136 Reviewed by Xabier Rodriguez-Calvar. Source/WebCore: Register the ClearKey CDM factory in CDMFactoryGStreamer. A CDMFactoryClearKey singleton object is introduced and used for that registration. The basic CDMFactoryClearKey and CDMPrivateClearKey methods are implemented, marking `org.w3.clearkey` as the supported key system and `keyids` as the supported init data type. Additional logic around key system configurations, distinctive identifiers, persistent state and related restrictions and requirements is implemented. This improves the ClearKey EME tests a bit, now progressing to the point of failing with a NotAllowedError exception due to the CDMInstance object failing to properly initialize because of missing implementation. No new tests -- relevant tests have underlying baselines updated to reflect changes in behavior. * platform/encryptedmedia/clearkey/CDMClearKey.cpp: (WebCore::CDMFactoryClearKey::singleton): (WebCore::CDMFactoryClearKey::supportsKeySystem): (WebCore::CDMPrivateClearKey::supportsInitDataType const): (WebCore::CDMPrivateClearKey::supportsConfiguration const): (WebCore::CDMPrivateClearKey::supportsConfigurationWithRestrictions const): (WebCore::CDMPrivateClearKey::supportsSessionTypeWithConfiguration const): (WebCore::CDMPrivateClearKey::supportsRobustness const): (WebCore::CDMPrivateClearKey::distinctiveIdentifiersRequirement const): (WebCore::CDMPrivateClearKey::persistentStateRequirement const): * platform/encryptedmedia/clearkey/CDMClearKey.h: * platform/graphics/gstreamer/eme/CDMFactoryGStreamer.cpp: (WebCore::CDMFactory::platformRegisterFactories): LayoutTests: Update WPE baselines for EME ClearKey tests following some advancements in ClearKey support. * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-events-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-events-session-closed-event-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-invalid-license-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-keystatuses-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-keystatuses-multiple-sessions-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-events-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multisession-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-two-videos-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-requestmediakeysystemaccess-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback-expected.txt: * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src-expected.txt: * platform/wpe/imported
[webkit-changes] [220391] trunk/Source
Title: [220391] trunk/Source Revision 220391 Author zandober...@gmail.com Date 2017-08-08 00:44:44 -0700 (Tue, 08 Aug 2017) Log Message [TexMap] Don't expose GraphicsContext3D object https://bugs.webkit.org/show_bug.cgi?id=175310 Reviewed by Carlos Garcia Campos. Source/WebCore: Remove the GraphicsContext3D getter from the TextureMapperGL class. Instead, the clearColor() method is added that's to be used by the CoordinatedGraphicsScene class which was accessing the GraphicsContext3D object for this purpose. * platform/graphics/texmap/TextureMapper.h: * platform/graphics/texmap/TextureMapperGL.cpp: (WebCore::TextureMapperGL::clearColor): * platform/graphics/texmap/TextureMapperGL.h: (WebCore::TextureMapperGL::graphicsContext3D const): Deleted. Source/WebKit: * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: (WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext): Stop using GraphicsContext3D directly and instead use the TextureMapper::clearColor() method to achieve the same result. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/texmap/TextureMapper.h trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.h trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (220390 => 220391) --- trunk/Source/WebCore/ChangeLog 2017-08-08 07:29:26 UTC (rev 220390) +++ trunk/Source/WebCore/ChangeLog 2017-08-08 07:44:44 UTC (rev 220391) @@ -1,3 +1,20 @@ +2017-08-08 Zan Dobersek + +[TexMap] Don't expose GraphicsContext3D object +https://bugs.webkit.org/show_bug.cgi?id=175310 + +Reviewed by Carlos Garcia Campos. + +Remove the GraphicsContext3D getter from the TextureMapperGL class. Instead, +the clearColor() method is added that's to be used by the CoordinatedGraphicsScene +class which was accessing the GraphicsContext3D object for this purpose. + +* platform/graphics/texmap/TextureMapper.h: +* platform/graphics/texmap/TextureMapperGL.cpp: +(WebCore::TextureMapperGL::clearColor): +* platform/graphics/texmap/TextureMapperGL.h: +(WebCore::TextureMapperGL::graphicsContext3D const): Deleted. + 2017-08-07 Simon Fraser RenderStyle:diff() was inadvertently doing deep compares of StyleRareNonInheritedData etc Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapper.h (220390 => 220391) --- trunk/Source/WebCore/platform/graphics/texmap/TextureMapper.h 2017-08-08 07:29:26 UTC (rev 220390) +++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapper.h 2017-08-08 07:44:44 UTC (rev 220391) @@ -72,6 +72,7 @@ virtual void drawTexture(const BitmapTexture&, const FloatRect& target, const TransformationMatrix& modelViewMatrix = TransformationMatrix(), float opacity = 1.0f, unsigned exposedEdges = AllEdges) = 0; virtual void drawSolidColor(const FloatRect&, const TransformationMatrix&, const Color&) = 0; +virtual void clearColor(const Color&) = 0; // makes a surface the target for the following drawTexture calls. virtual void bindSurface(BitmapTexture* surface) = 0; Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp (220390 => 220391) --- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp 2017-08-08 07:29:26 UTC (rev 220390) +++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp 2017-08-08 07:44:44 UTC (rev 220391) @@ -508,6 +508,12 @@ draw(rect, matrix, program.get(), GraphicsContext3D::TRIANGLE_FAN, flags); } +void TextureMapperGL::clearColor(const Color& color) +{ +m_context3D->clearColor(color.red() / 255.0f, color.green() / 255.0f, color.blue() / 255.0f, color.alpha() / 255.0f); +m_context3D->clear(GraphicsContext3D::COLOR_BUFFER_BIT); +} + void TextureMapperGL::drawEdgeTriangles(TextureMapperShaderProgram& program) { const GC3Dfloat left = 0; Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.h (220390 => 220391) --- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.h 2017-08-08 07:29:26 UTC (rev 220390) +++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.h 2017-08-08 07:44:44 UTC (rev 220391) @@ -62,6 +62,7 @@ void drawTexture(const BitmapTexture&, const FloatRect&, const TransformationMatrix&, float opacity, unsigned exposedEdges) override; virtual void drawTexture(Platform3DObject texture, Flags, const IntSize& textureSize, const FloatRect& targetRect, const TransformationMatrix& modelViewMatrix, float opacity, unsigned exposedEdges = AllEdges); void drawSolidColor(const FloatRect&, const TransformationMatrix&, const Color&) override; +void clearColor(const Color&) override; void bindSurface(BitmapTexture* surface) override; BitmapTexture* currentSurface(); @@ -73,7 +74,6 @@ IntSiz
[webkit-changes] [220392] trunk/Source/WebCore
Title: [220392] trunk/Source/WebCore Revision 220392 Author zandober...@gmail.com Date 2017-08-08 00:46:42 -0700 (Tue, 08 Aug 2017) Log Message [TexMap] Add TextureMapperContextAttributes https://bugs.webkit.org/show_bug.cgi?id=175311 Reviewed by Carlos Garcia Campos. Add and use TextureMapperContextAttributes, a slim struct that holds information about the type and extensions supported by the OpenGL context that's being used for one specific TextureMapperGL instance. This struct is initialized in the TextureMapperGL constructor for the OpenGL context that's been made current on that thread, and that will be used for that TextureMapperGL instance through its lifetime. The struct is then also copied into any BitmapTextureGL objects that have been created through this TextureMapperGL (or its texture pool). The struct is initialized with information about GLES2 support (which is at this point done through the USE_OPENGL_ES_2 macro) and about specific OpenGL extensions that are supported. These are then used in TextureMapperGL (NPOT textures) and BitmapTextureGL (BGRA support, sub-image unpacking) to deploy specific optimizations or workarounds. This ultimately serves as a replacement for clunky static functions that need to operate on GraphicsContext3D objects to retrieve this information. No new tests -- no change in behavior. * platform/TextureMapper.cmake: * platform/graphics/texmap/BitmapTextureGL.cpp: (WebCore::BitmapTextureGL::BitmapTextureGL): (WebCore::BitmapTextureGL::updateContentsNoSwizzle): (WebCore::BitmapTextureGL::updateContents): (WebCore::driverSupportsSubImage): Deleted. * platform/graphics/texmap/BitmapTextureGL.h: (WebCore::BitmapTextureGL::create): * platform/graphics/texmap/BitmapTexturePool.cpp: (WebCore::BitmapTexturePool::BitmapTexturePool): (WebCore::BitmapTexturePool::createTexture): * platform/graphics/texmap/BitmapTexturePool.h: * platform/graphics/texmap/TextureMapperContextAttributes.cpp: Added. (WebCore::TextureMapperContextAttributes::initialize): * platform/graphics/texmap/TextureMapperContextAttributes.h: Added. * platform/graphics/texmap/TextureMapperGL.cpp: (WebCore::TextureMapperGL::TextureMapperGL): (WebCore::TextureMapperGL::drawTexture): (WebCore::TextureMapperGL::drawTexturedQuadWithProgram): (WebCore::TextureMapperGL::createTexture): (WebCore::driverSupportsNPOTTextures): Deleted. * platform/graphics/texmap/TextureMapperGL.h: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/TextureMapper.cmake trunk/Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp trunk/Source/WebCore/platform/graphics/texmap/BitmapTextureGL.h trunk/Source/WebCore/platform/graphics/texmap/BitmapTexturePool.cpp trunk/Source/WebCore/platform/graphics/texmap/BitmapTexturePool.h trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.h Added Paths trunk/Source/WebCore/platform/graphics/texmap/TextureMapperContextAttributes.cpp trunk/Source/WebCore/platform/graphics/texmap/TextureMapperContextAttributes.h Diff Modified: trunk/Source/WebCore/ChangeLog (220391 => 220392) --- trunk/Source/WebCore/ChangeLog 2017-08-08 07:44:44 UTC (rev 220391) +++ trunk/Source/WebCore/ChangeLog 2017-08-08 07:46:42 UTC (rev 220392) @@ -1,5 +1,57 @@ 2017-08-08 Zan Dobersek +[TexMap] Add TextureMapperContextAttributes +https://bugs.webkit.org/show_bug.cgi?id=175311 + +Reviewed by Carlos Garcia Campos. + +Add and use TextureMapperContextAttributes, a slim struct that holds +information about the type and extensions supported by the OpenGL +context that's being used for one specific TextureMapperGL instance. + +This struct is initialized in the TextureMapperGL constructor for the +OpenGL context that's been made current on that thread, and that will +be used for that TextureMapperGL instance through its lifetime. The +struct is then also copied into any BitmapTextureGL objects that have +been created through this TextureMapperGL (or its texture pool). + +The struct is initialized with information about GLES2 support (which +is at this point done through the USE_OPENGL_ES_2 macro) and about +specific OpenGL extensions that are supported. These are then used in +TextureMapperGL (NPOT textures) and BitmapTextureGL (BGRA support, +sub-image unpacking) to deploy specific optimizations or workarounds. + +This ultimately serves as a replacement for clunky static functions +that need to operate on GraphicsContext3D objects to retrieve this +information. + +No new tests -- no change in behavior. + +* platform/TextureMapper.cmake: +* platform/graphics/texmap/BitmapTextureGL.cpp: +(WebCore::BitmapTextureGL::BitmapTextureGL): +(WebCore::BitmapTextureGL::updateContentsNoSwizzle): +(WebCore::BitmapTextureGL
[webkit-changes] [220395] trunk/Source/WebCore
Title: [220395] trunk/Source/WebCore Revision 220395 Author zandober...@gmail.com Date 2017-08-08 01:36:38 -0700 (Tue, 08 Aug 2017) Log Message [TexMap] Group GL header file inclusions in a single header file https://bugs.webkit.org/show_bug.cgi?id=175313 Reviewed by Carlos Garcia Campos. Add a helper header file to the TextureMapper subsystem that includes the OpenGL headers, properly addressing the build configuration to include headers as provided by either libepoxy, the OpenGL ES library, or the OpenGL library. TextureMapperContextAttributes implementation file is the only one that can leverage the header at the moment, but more will follow. * platform/graphics/texmap/TextureMapperContextAttributes.cpp: * platform/graphics/texmap/TextureMapperGLHeaders.h: Copied from Source/WebCore/platform/graphics/texmap/TextureMapperContextAttributes.cpp. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/texmap/TextureMapperContextAttributes.cpp Added Paths trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGLHeaders.h Diff Modified: trunk/Source/WebCore/ChangeLog (220394 => 220395) --- trunk/Source/WebCore/ChangeLog 2017-08-08 08:29:19 UTC (rev 220394) +++ trunk/Source/WebCore/ChangeLog 2017-08-08 08:36:38 UTC (rev 220395) @@ -1,3 +1,21 @@ +2017-08-08 Zan Dobersek + +[TexMap] Group GL header file inclusions in a single header file +https://bugs.webkit.org/show_bug.cgi?id=175313 + +Reviewed by Carlos Garcia Campos. + +Add a helper header file to the TextureMapper subsystem that includes +the OpenGL headers, properly addressing the build configuration to +include headers as provided by either libepoxy, the OpenGL ES library, +or the OpenGL library. + +TextureMapperContextAttributes implementation file is the only one +that can leverage the header at the moment, but more will follow. + +* platform/graphics/texmap/TextureMapperContextAttributes.cpp: +* platform/graphics/texmap/TextureMapperGLHeaders.h: Copied from Source/WebCore/platform/graphics/texmap/TextureMapperContextAttributes.cpp. + 2017-08-08 Wenson Hsieh [iOS WK2] WKWebView schedules nonstop layout after pressing cmb+b,i,u inside a contenteditable div Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperContextAttributes.cpp (220394 => 220395) --- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperContextAttributes.cpp 2017-08-08 08:29:19 UTC (rev 220394) +++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperContextAttributes.cpp 2017-08-08 08:36:38 UTC (rev 220395) @@ -28,16 +28,9 @@ #if USE(TEXTURE_MAPPER_GL) +#include "TextureMapperGLHeaders.h" #include -#if USE(LIBEPOXY) -#include -#elif USE(OPENGL_ES_2) -#include -#else -#include "OpenGLShims.h" -#endif - namespace WebCore { void TextureMapperContextAttributes::initialize() Added: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGLHeaders.h (0 => 220395) --- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGLHeaders.h (rev 0) +++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGLHeaders.h 2017-08-08 08:36:38 UTC (rev 220395) @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2017 Igalia S.L. + * + * 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 + +#if USE(LIBEPOXY) +#include +#elif USE(OPENGL_ES_2) +#include +#else +#include "OpenGLShims.h" +#endif ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [220396] trunk/Source/WebCore
Title: [220396] trunk/Source/WebCore Revision 220396 Author zandober...@gmail.com Date 2017-08-08 02:03:40 -0700 (Tue, 08 Aug 2017) Log Message Unreviewed. Follow-up to r220392 that fixes build on configurations that disable USE(GSTREAMER_GL). * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: (WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor): When creating the BitmapTextureGL object, also provide an initialized TextureMapperContextAttributes object. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (220395 => 220396) --- trunk/Source/WebCore/ChangeLog 2017-08-08 08:36:38 UTC (rev 220395) +++ trunk/Source/WebCore/ChangeLog 2017-08-08 09:03:40 UTC (rev 220396) @@ -1,5 +1,15 @@ 2017-08-08 Zan Dobersek +Unreviewed. Follow-up to r220392 that fixes build on configurations +that disable USE(GSTREAMER_GL). + +* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: +(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor): +When creating the BitmapTextureGL object, also provide an initialized +TextureMapperContextAttributes object. + +2017-08-08 Zan Dobersek + [TexMap] Group GL header file inclusions in a single header file https://bugs.webkit.org/show_bug.cgi?id=175313 Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp (220395 => 220396) --- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp 2017-08-08 08:36:38 UTC (rev 220395) +++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp 2017-08-08 09:03:40 UTC (rev 220396) @@ -101,6 +101,7 @@ #if USE(TEXTURE_MAPPER_GL) #include "BitmapTextureGL.h" #include "BitmapTexturePool.h" +#include "TextureMapperContextAttributes.h" #include "TextureMapperGL.h" #include "TextureMapperPlatformLayerBuffer.h" #if USE(CAIRO) && ENABLE(ACCELERATED_2D_CANVAS) @@ -611,7 +612,10 @@ if (UNLIKELY(!m_context3D)) m_context3D = GraphicsContext3D::create(GraphicsContext3DAttributes(), nullptr, GraphicsContext3D::RenderToCurrentGLContext); -auto texture = BitmapTextureGL::create(*m_context3D); +TextureMapperContextAttributes contextAttributes; +contextAttributes.initialize(); + +auto texture = BitmapTextureGL::create(contextAttributes, *m_context3D); texture->reset(size, GST_VIDEO_INFO_HAS_ALPHA(&videoInfo) ? BitmapTexture::SupportsAlpha : BitmapTexture::NoFlag); buffer = std::make_unique(WTFMove(texture)); } ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [220397] trunk/Source/WebCore
Title: [220397] trunk/Source/WebCore Revision 220397 Author zandober...@gmail.com Date 2017-08-08 03:27:11 -0700 (Tue, 08 Aug 2017) Log Message [TexMap] Isolate the TextureMapperPlatformLayerProxyProvider class https://bugs.webkit.org/show_bug.cgi?id=175316 Reviewed by Carlos Garcia Campos. Move the TextureMapperPlatformLayerProxyProvider class (which is the type aliased to PlatformLayer for threaded CoordGraphics) into its own header file. This prevents including the TextureMapperPlatformLayerProxy.h header file in MediaPlayerPrivateGStreamerBase.h, avoiding spilling OpenGL types and function declarations before the GStreamer GL headers include them later in the MediaPlayerPrivateGStreamerBase implementation file. In the MediaPlayerPrivateGStreamerBase.h header file, only the new header is included, and a forward declaration of the TextureMapperPlatformLayerProxy class is used. proxy() and swapBuffersIfNeeded() methods are moved into the implementation file to avoid requiring the full definition of the TextureMapperPlatformLayerProxy class. Similar is done for the TextureMapperGC3DPlatformLayer class and the Cairo-specific implementation of the ImageBufferData class. The CoordinatedGraphicsLayer implementation file also gains an include of the TextureMapperPlatformLayerProxyProvider.h header since it requires the full definition of that class. No new tests -- no change in behavior. * platform/graphics/cairo/ImageBufferCairo.cpp: (WebCore::ImageBufferData::proxy const): * platform/graphics/cairo/ImageBufferDataCairo.h: * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: (WebCore::MediaPlayerPrivateGStreamerBase::updateTexture): (WebCore::MediaPlayerPrivateGStreamerBase::proxy const): (WebCore::MediaPlayerPrivateGStreamerBase::swapBuffersIfNeeded): * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: * platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp: * platform/graphics/texmap/TextureMapperGC3DPlatformLayer.h: * platform/graphics/texmap/TextureMapperPlatformLayerProxy.h: * platform/graphics/texmap/TextureMapperPlatformLayerProxyProvider.h: Added. * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp trunk/Source/WebCore/platform/graphics/cairo/ImageBufferDataCairo.h trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGC3DPlatformLayer.h trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.h trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp Added Paths trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxyProvider.h Diff Modified: trunk/Source/WebCore/ChangeLog (220396 => 220397) --- trunk/Source/WebCore/ChangeLog 2017-08-08 09:03:40 UTC (rev 220396) +++ trunk/Source/WebCore/ChangeLog 2017-08-08 10:27:11 UTC (rev 220397) @@ -1,5 +1,47 @@ 2017-08-08 Zan Dobersek +[TexMap] Isolate the TextureMapperPlatformLayerProxyProvider class +https://bugs.webkit.org/show_bug.cgi?id=175316 + +Reviewed by Carlos Garcia Campos. + +Move the TextureMapperPlatformLayerProxyProvider class (which is the type +aliased to PlatformLayer for threaded CoordGraphics) into its own header +file. This prevents including the TextureMapperPlatformLayerProxy.h header +file in MediaPlayerPrivateGStreamerBase.h, avoiding spilling OpenGL types +and function declarations before the GStreamer GL headers include them +later in the MediaPlayerPrivateGStreamerBase implementation file. + +In the MediaPlayerPrivateGStreamerBase.h header file, only the new header +is included, and a forward declaration of the TextureMapperPlatformLayerProxy +class is used. proxy() and swapBuffersIfNeeded() methods are moved into +the implementation file to avoid requiring the full definition of the +TextureMapperPlatformLayerProxy class. + +Similar is done for the TextureMapperGC3DPlatformLayer class and the +Cairo-specific implementation of the ImageBufferData class. The +CoordinatedGraphicsLayer implementation file also gains an include of the +TextureMapperPlatformLayerProxyProvider.h header since it requires the full +definition of that class. + +No new tests -- no change in behavior. + +* platform/graphics/cairo/ImageBufferCairo.cpp: +(WebCore::ImageBufferData::proxy const): +* platform/graphics/cairo/ImageBufferDataCairo.h: +* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: +(WebCore::MediaPlayerPrivateGStreamerBase::upd
[webkit-changes] [220399] trunk/Source/WebCore
Title: [220399] trunk/Source/WebCore Revision 220399 Author zandober...@gmail.com Date 2017-08-08 06:04:40 -0700 (Tue, 08 Aug 2017) Log Message [TexMap] Don't use GraphicsContext3D in ClipStack https://bugs.webkit.org/show_bug.cgi?id=174776 Reviewed by Carlos Garcia Campos. Any GraphicsContext3D object that's passed to ClipStack methods is of the render-to-current-context nature, meaning there's no internally owned GL context that has to be properly handled and all calls are simply passed to OpenGL APIs. We should drop such (non-)usage of GraphicsContext3D in favor of direct OpenGL API invocations. This patch covers TextureMapper's ClipStack. Call sites to the apply() and applyIfNeeded() are modified to not pass a reference to any GraphicsContext3D object. Internally, OpenGL API entrypoints and constants are used instead of GraphicsContext3D invocations. No new tests -- no change in behavior. * platform/graphics/texmap/BitmapTextureGL.cpp: (WebCore::BitmapTextureGL::clearIfNeeded): (WebCore::BitmapTextureGL::bindAsSurface): * platform/graphics/texmap/ClipStack.cpp: (WebCore::ClipStack::apply): (WebCore::ClipStack::applyIfNeeded): * platform/graphics/texmap/ClipStack.h: * platform/graphics/texmap/TextureMapperGL.cpp: (WebCore::TextureMapperGL::bindDefaultSurface): (WebCore::TextureMapperGL::beginScissorClip): (WebCore::TextureMapperGL::beginClip): (WebCore::TextureMapperGL::endClip): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp trunk/Source/WebCore/platform/graphics/texmap/ClipStack.cpp trunk/Source/WebCore/platform/graphics/texmap/ClipStack.h trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (220398 => 220399) --- trunk/Source/WebCore/ChangeLog 2017-08-08 12:22:33 UTC (rev 220398) +++ trunk/Source/WebCore/ChangeLog 2017-08-08 13:04:40 UTC (rev 220399) @@ -1,3 +1,36 @@ +2017-08-08 Zan Dobersek + +[TexMap] Don't use GraphicsContext3D in ClipStack +https://bugs.webkit.org/show_bug.cgi?id=174776 + +Reviewed by Carlos Garcia Campos. + +Any GraphicsContext3D object that's passed to ClipStack methods is of the +render-to-current-context nature, meaning there's no internally owned GL +context that has to be properly handled and all calls are simply passed to +OpenGL APIs. We should drop such (non-)usage of GraphicsContext3D in favor +of direct OpenGL API invocations. + +This patch covers TextureMapper's ClipStack. Call sites to the apply() and +applyIfNeeded() are modified to not pass a reference to any +GraphicsContext3D object. Internally, OpenGL API entrypoints and constants +are used instead of GraphicsContext3D invocations. + +No new tests -- no change in behavior. + +* platform/graphics/texmap/BitmapTextureGL.cpp: +(WebCore::BitmapTextureGL::clearIfNeeded): +(WebCore::BitmapTextureGL::bindAsSurface): +* platform/graphics/texmap/ClipStack.cpp: +(WebCore::ClipStack::apply): +(WebCore::ClipStack::applyIfNeeded): +* platform/graphics/texmap/ClipStack.h: +* platform/graphics/texmap/TextureMapperGL.cpp: +(WebCore::TextureMapperGL::bindDefaultSurface): +(WebCore::TextureMapperGL::beginScissorClip): +(WebCore::TextureMapperGL::beginClip): +(WebCore::TextureMapperGL::endClip): + 2017-08-08 Javier Fernandez Not possible to remove the 'li' element inside the table cell Modified: trunk/Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp (220398 => 220399) --- trunk/Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp 2017-08-08 12:22:33 UTC (rev 220398) +++ trunk/Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp 2017-08-08 13:04:40 UTC (rev 220399) @@ -288,7 +288,7 @@ return; m_clipStack.reset(IntRect(IntPoint::zero(), m_textureSize), ClipStack::YAxisMode::Default); -m_clipStack.applyIfNeeded(*m_context3D); +m_clipStack.applyIfNeeded(); m_context3D->clearColor(0, 0, 0, 0); m_context3D->clear(GraphicsContext3D::COLOR_BUFFER_BIT); m_shouldClear = false; @@ -312,7 +312,7 @@ context3D->bindFramebuffer(GraphicsContext3D::FRAMEBUFFER, m_fbo); context3D->viewport(0, 0, m_textureSize.width(), m_textureSize.height()); clearIfNeeded(); -m_clipStack.apply(*m_context3D); +m_clipStack.apply(); } BitmapTextureGL::~BitmapTextureGL() Modified: trunk/Source/WebCore/platform/graphics/texmap/ClipStack.cpp (220398 => 220399) --- trunk/Source/WebCore/platform/graphics/texmap/ClipStack.cpp 2017-08-08 12:22:33 UTC (rev 220398) +++ trunk/Source/WebCore/platform/graphics/texmap/ClipStack.cpp 2017-08-08 13:04:40 UTC (rev 220399) @@ -22,7 +22,7 @@ #include "config.h" #include "ClipStack.h" -#include "GraphicsContext3D.h" +#include "TextureMapperGLHeaders.h" namespace WebCore { @@
[webkit-changes] [220400] trunk/Source/WebCore
Title: [220400] trunk/Source/WebCore Revision 220400 Author zandober...@gmail.com Date 2017-08-08 06:05:22 -0700 (Tue, 08 Aug 2017) Log Message [TexMap] Drop GC3D* type usage from TextureMapperPlatformLayer{Buffer,Proxy} https://bugs.webkit.org/show_bug.cgi?id=175314 Reviewed by Carlos Garcia Campos. Switch to using OpenGL types in the TextureMapperPlatformLayerBuffer and TextureMapperPlatformLayerProxy classes, instead of the equivalent GC3D* types provided in the GraphicsTypes3D.h header. No new tests -- no change in behavior. * platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp: (WebCore::TextureMapperPlatformLayerBuffer::TextureMapperPlatformLayerBuffer): (WebCore::TextureMapperPlatformLayerBuffer::canReuseWithoutReset): * platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h: * platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp: (WebCore::TextureMapperPlatformLayerProxy::getAvailableBuffer): * platform/graphics/texmap/TextureMapperPlatformLayerProxy.h: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.h Diff Modified: trunk/Source/WebCore/ChangeLog (220399 => 220400) --- trunk/Source/WebCore/ChangeLog 2017-08-08 13:04:40 UTC (rev 220399) +++ trunk/Source/WebCore/ChangeLog 2017-08-08 13:05:22 UTC (rev 220400) @@ -1,5 +1,26 @@ 2017-08-08 Zan Dobersek +[TexMap] Drop GC3D* type usage from TextureMapperPlatformLayer{Buffer,Proxy} +https://bugs.webkit.org/show_bug.cgi?id=175314 + +Reviewed by Carlos Garcia Campos. + +Switch to using OpenGL types in the TextureMapperPlatformLayerBuffer and +TextureMapperPlatformLayerProxy classes, instead of the equivalent GC3D* +types provided in the GraphicsTypes3D.h header. + +No new tests -- no change in behavior. + +* platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp: +(WebCore::TextureMapperPlatformLayerBuffer::TextureMapperPlatformLayerBuffer): +(WebCore::TextureMapperPlatformLayerBuffer::canReuseWithoutReset): +* platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h: +* platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp: +(WebCore::TextureMapperPlatformLayerProxy::getAvailableBuffer): +* platform/graphics/texmap/TextureMapperPlatformLayerProxy.h: + +2017-08-08 Zan Dobersek + [TexMap] Don't use GraphicsContext3D in ClipStack https://bugs.webkit.org/show_bug.cgi?id=174776 Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp (220399 => 220400) --- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp 2017-08-08 13:04:40 UTC (rev 220399) +++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp 2017-08-08 13:05:22 UTC (rev 220400) @@ -38,7 +38,7 @@ { } -TextureMapperPlatformLayerBuffer::TextureMapperPlatformLayerBuffer(GLuint textureID, const IntSize& size, TextureMapperGL::Flags flags, GC3Dint internalFormat) +TextureMapperPlatformLayerBuffer::TextureMapperPlatformLayerBuffer(GLuint textureID, const IntSize& size, TextureMapperGL::Flags flags, GLint internalFormat) : m_textureID(textureID) , m_size(size) , m_internalFormat(internalFormat) @@ -47,9 +47,9 @@ { } -bool TextureMapperPlatformLayerBuffer::canReuseWithoutReset(const IntSize& size, GC3Dint internalFormat) +bool TextureMapperPlatformLayerBuffer::canReuseWithoutReset(const IntSize& size, GLint internalFormat) { -return m_texture && (m_texture->size() == size) && (static_cast(m_texture.get())->internalFormat() == internalFormat || internalFormat == GraphicsContext3D::DONT_CARE); +return m_texture && (m_texture->size() == size) && (static_cast(m_texture.get())->internalFormat() == internalFormat || internalFormat == GL_DONT_CARE); } std::unique_ptr TextureMapperPlatformLayerBuffer::clone(TextureMapperGL& texmapGL) Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h (220399 => 220400) --- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h 2017-08-08 13:04:40 UTC (rev 220399) +++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h 2017-08-08 13:05:22 UTC (rev 220400) @@ -26,7 +26,7 @@ #pragma once #include "BitmapTextureGL.h" -#include "GraphicsTypes3D.h" +#include "TextureMapperGLHeaders.h" #include "TextureMapperPlatformLayer.h" #include @@ -39,13 +39,13 @@ WTF_MAKE_FAST_ALLOCATED(); public: TextureMapperPlatformLayerBuffer(RefPtr&&, TextureMapperGL::Flags = 0); -TextureMapperPlatformLayerBuffer(GLuint textureID, const IntSize&, T
[webkit-changes] [220402] trunk/Source/WebCore
Title: [220402] trunk/Source/WebCore Revision 220402 Author zandober...@gmail.com Date 2017-08-08 06:29:30 -0700 (Tue, 08 Aug 2017) Log Message [GStreamer] Don't use GraphicsContext3D in VideoTextureCoperGStreamer https://bugs.webkit.org/show_bug.cgi?id=174774 Reviewed by Carlos Garcia Campos. VideoTextureCoperGStreamer class creates a new GraphicsContext3D internally that's used to render to whichever OpenGL context is current. Such usage doesn't add anything to the user since there's no underlying offscreen-based OpenGL context created, and instead all GraphicsContext3D calls are directly translated to usual OpenGL API calls. We should avoid using GraphicsContext3D in such cases and instead use direct OpenGL API calls. This patch achieves that for the VideoTextureCoperGStreamer class. A GraphicsContext3D object is still created because it's needed to construct an instance of the TextureMapperShaderProgram class, but this will be removed as soon as TextureMapperShaderProgram drops the GraphicsContext3D dependence. No new tests -- no change in behavior. * platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp: (WebCore::VideoTextureCopierGStreamer::VideoTextureCopierGStreamer): (WebCore::VideoTextureCopierGStreamer::~VideoTextureCopierGStreamer): (WebCore::VideoTextureCopierGStreamer::copyVideoTextureToPlatformTexture): * platform/graphics/gstreamer/VideoTextureCopierGStreamer.h: (WebCore::VideoTextureCopierGStreamer::resultTexture): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp trunk/Source/WebCore/platform/graphics/gstreamer/VideoTextureCopierGStreamer.h Diff Modified: trunk/Source/WebCore/ChangeLog (220401 => 220402) --- trunk/Source/WebCore/ChangeLog 2017-08-08 13:11:00 UTC (rev 220401) +++ trunk/Source/WebCore/ChangeLog 2017-08-08 13:29:30 UTC (rev 220402) @@ -1,5 +1,33 @@ 2017-08-08 Zan Dobersek +[GStreamer] Don't use GraphicsContext3D in VideoTextureCoperGStreamer +https://bugs.webkit.org/show_bug.cgi?id=174774 + +Reviewed by Carlos Garcia Campos. + +VideoTextureCoperGStreamer class creates a new GraphicsContext3D internally +that's used to render to whichever OpenGL context is current. Such usage +doesn't add anything to the user since there's no underlying offscreen-based +OpenGL context created, and instead all GraphicsContext3D calls are directly +translated to usual OpenGL API calls. We should avoid using GraphicsContext3D +in such cases and instead use direct OpenGL API calls. + +This patch achieves that for the VideoTextureCoperGStreamer class. A +GraphicsContext3D object is still created because it's needed to construct an +instance of the TextureMapperShaderProgram class, but this will be removed as +soon as TextureMapperShaderProgram drops the GraphicsContext3D dependence. + +No new tests -- no change in behavior. + +* platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp: +(WebCore::VideoTextureCopierGStreamer::VideoTextureCopierGStreamer): +(WebCore::VideoTextureCopierGStreamer::~VideoTextureCopierGStreamer): +(WebCore::VideoTextureCopierGStreamer::copyVideoTextureToPlatformTexture): +* platform/graphics/gstreamer/VideoTextureCopierGStreamer.h: +(WebCore::VideoTextureCopierGStreamer::resultTexture): + +2017-08-08 Zan Dobersek + [TexMap] Drop GC3D* type usage from TextureMapperPlatformLayer{Buffer,Proxy} https://bugs.webkit.org/show_bug.cgi?id=175314 Modified: trunk/Source/WebCore/platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp (220401 => 220402) --- trunk/Source/WebCore/platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp 2017-08-08 13:11:00 UTC (rev 220401) +++ trunk/Source/WebCore/platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp 2017-08-08 13:29:30 UTC (rev 220402) @@ -27,6 +27,9 @@ #include "ImageOrientation.h" #include "TextureMapperShaderProgram.h" +// FIXME: Remove after TextureMapperShaderProgram drops GraphicsContext3D usage. +#include "GraphicsContext3D.h" + namespace WebCore { VideoTextureCopierGStreamer::VideoTextureCopierGStreamer(ColorConversion colorConversion) @@ -35,18 +38,19 @@ ASSERT(previousContext); PlatformDisplay::sharedDisplayForCompositing().sharingGLContext()->makeContextCurrent(); -m_context3D = GraphicsContext3D::createForCurrentGLContext(); +{ +// FIXME: Remove after TextureMapperShaderProgram drops GraphicsContext3D usage. +auto context3D = GraphicsContext3D::createForCurrentGLContext(); +m_shaderProgram = TextureMapperShaderProgram::create(*context3D, TextureMapperShaderProgram::Texture); +} -m_shaderProgram = TextureMapperShaderProgram::create(*m_context3D, TextureMapperShaderProgram::Texture); +glGenFramebuffers(1, &m_framebuffer); +glGenTextures(1, &m_resu
[webkit-changes] [220444] trunk/Source/WebCore
Title: [220444] trunk/Source/WebCore Revision 220444 Author zandober...@gmail.com Date 2017-08-09 00:00:34 -0700 (Wed, 09 Aug 2017) Log Message [Soup] Incorrect conversion in msToSoupDate() https://bugs.webkit.org/show_bug.cgi?id=175320 Reviewed by Carlos Garcia Campos. Original patch by VaL Doroshchuk. * platform/network/soup/NetworkStorageSessionSoup.cpp: (WebCore::msToSoupDate): monthFromDayInYear() returns a value in the [0,11] range, while soup_date_new() expects a month value in the [1,12] range. The return value must be thus incremented by one to match that expectation. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (220443 => 220444) --- trunk/Source/WebCore/ChangeLog 2017-08-09 05:36:57 UTC (rev 220443) +++ trunk/Source/WebCore/ChangeLog 2017-08-09 07:00:34 UTC (rev 220444) @@ -1,3 +1,17 @@ +2017-08-09 Zan Dobersek + +[Soup] Incorrect conversion in msToSoupDate() +https://bugs.webkit.org/show_bug.cgi?id=175320 + +Reviewed by Carlos Garcia Campos. + +Original patch by VaL Doroshchuk. + +* platform/network/soup/NetworkStorageSessionSoup.cpp: +(WebCore::msToSoupDate): monthFromDayInYear() returns a value in the [0,11] range, +while soup_date_new() expects a month value in the [1,12] range. The return value +must be thus incremented by one to match that expectation. + 2017-08-08 Wenson Hsieh Unreviewed, rolling out r220393. Modified: trunk/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp (220443 => 220444) --- trunk/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp 2017-08-09 05:36:57 UTC (rev 220443) +++ trunk/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp 2017-08-09 07:00:34 UTC (rev 220444) @@ -294,7 +294,10 @@ int year = msToYear(ms); int dayOfYear = dayInYear(ms, year); bool leapYear = isLeapYear(year); -return soup_date_new(year, monthFromDayInYear(dayOfYear, leapYear), dayInMonthFromDayInYear(dayOfYear, leapYear), msToHours(ms), msToMinutes(ms), static_cast(ms / 1000) % 60); + +// monthFromDayInYear() returns a value in the [0,11] range, while soup_date_new() expects +// a value in the [1,12] range, meaning we have to manually adjust the month value. +return soup_date_new(year, monthFromDayInYear(dayOfYear, leapYear) + 1, dayInMonthFromDayInYear(dayOfYear, leapYear), msToHours(ms), msToMinutes(ms), static_cast(ms / 1000) % 60); } static SoupCookie* toSoupCookie(const Cookie& cookie) ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [220446] trunk
Title: [220446] trunk Revision 220446 Author zandober...@gmail.com Date 2017-08-09 00:16:56 -0700 (Wed, 09 Aug 2017) Log Message [WPE] Enable SUBTLE_CRYPTO in release builds https://bugs.webkit.org/show_bug.cgi?id=175371 Reviewed by Carlos Garcia Campos. * Source/cmake/OptionsWPE.cmake: Use ON as the default port value for ENABLE_SUBTLE_CRYPTO in WPE. Modified Paths trunk/ChangeLog trunk/Source/cmake/OptionsWPE.cmake Diff Modified: trunk/ChangeLog (220445 => 220446) --- trunk/ChangeLog 2017-08-09 07:13:05 UTC (rev 220445) +++ trunk/ChangeLog 2017-08-09 07:16:56 UTC (rev 220446) @@ -1,3 +1,13 @@ +2017-08-09 Zan Dobersek + +[WPE] Enable SUBTLE_CRYPTO in release builds +https://bugs.webkit.org/show_bug.cgi?id=175371 + +Reviewed by Carlos Garcia Campos. + +* Source/cmake/OptionsWPE.cmake: +Use ON as the default port value for ENABLE_SUBTLE_CRYPTO in WPE. + 2017-08-09 Carlos Garcia Campos [GTK] Enable SUBTLE_CRYPTO in GTK+ releases Modified: trunk/Source/cmake/OptionsWPE.cmake (220445 => 220446) --- trunk/Source/cmake/OptionsWPE.cmake 2017-08-09 07:13:05 UTC (rev 220445) +++ trunk/Source/cmake/OptionsWPE.cmake 2017-08-09 07:16:56 UTC (rev 220446) @@ -27,6 +27,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETSCAPE_PLUGIN_API PRIVATE OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PUBLIC_SUFFIX_LIST PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REMOTE_INSPECTOR PRIVATE ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SUBTLE_CRYPTO PUBLIC ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_EVENTS PUBLIC ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_USER_MESSAGE_HANDLERS PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO PUBLIC ON) ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [220455] trunk/LayoutTests
Title: [220455] trunk/LayoutTests Revision 220455 Author zandober...@gmail.com Date 2017-08-09 06:25:49 -0700 (Wed, 09 Aug 2017) Log Message Unreviewed WPE gardening. * platform/wpe/TestExpectations: Stop skipping the whole fast/ directory and then unskipping specific subdirectories since that overrides any expectations coming from the generic WK2 TestExpectations file. Specific subdirectories that we haven't yet generated results for are now skipped instead. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/wpe/TestExpectations Diff Modified: trunk/LayoutTests/ChangeLog (220454 => 220455) --- trunk/LayoutTests/ChangeLog 2017-08-09 13:06:11 UTC (rev 220454) +++ trunk/LayoutTests/ChangeLog 2017-08-09 13:25:49 UTC (rev 220455) @@ -1,3 +1,13 @@ +2017-08-09 Zan Dobersek + +Unreviewed WPE gardening. + +* platform/wpe/TestExpectations: Stop skipping the whole fast/ +directory and then unskipping specific subdirectories since +that overrides any expectations coming from the generic WK2 +TestExpectations file. Specific subdirectories that we haven't +yet generated results for are now skipped instead. + 2017-08-09 Ms2ger [GTK] [WPE] Update expectations for global-constructors-attributes.html. Modified: trunk/LayoutTests/platform/wpe/TestExpectations (220454 => 220455) --- trunk/LayoutTests/platform/wpe/TestExpectations 2017-08-09 13:06:11 UTC (rev 220454) +++ trunk/LayoutTests/platform/wpe/TestExpectations 2017-08-09 13:25:49 UTC (rev 220455) @@ -191,11 +191,70 @@ webkit.org/b/167576 imported/w3c/IndexedDB-private-browsing/idbcursor_iterating.html [ Crash ] webkit.org/b/167576 imported/w3c/IndexedDB-private-browsing/idbcursor_iterating_index.html [ Crash ] -Bug(WPE) fast/ [ Skip ] +Bug(WPE) fast/attachment [ Skip ] +Bug(WPE) fast/autoresize [ Skip ] +Bug(WPE) fast/backgrounds [ Skip ] +Bug(WPE) fast/block [ Skip ] +Bug(WPE) fast/body-propagation [ Skip ] +Bug(WPE) fast/borders [ Skip ] +Bug(WPE) fast/box-decoration-break [ Skip ] +Bug(WPE) fast/box-shadow [ Skip ] +Bug(WPE) fast/box-sizing [ Skip ] +Bug(WPE) fast/canvas [ Skip ] +Bug(WPE) fast/clip [ Skip ] +Bug(WPE) fast/compact [ Skip ] +Bug(WPE) fast/css [ Skip ] +Bug(WPE) fast/css3-text [ Skip ] +Bug(WPE) fast/css-generated-content [ Skip ] +Bug(WPE) fast/doctypes [ Skip ] +Bug(WPE) fast/fast-mobile-scrolling [ Skip ] +Bug(WPE) fast/files [ Skip ] +Bug(WPE) fast/filter-image [ Skip ] +Bug(WPE) fast/fixed-layout [ Skip ] +Bug(WPE) fast/flexbox [ Skip ] +Bug(WPE) fast/forms [ Skip ] +Bug(WPE) fast/frames [ Skip ] +Bug(WPE) fast/hidpi [ Skip ] +Bug(WPE) fast/history [ Skip ] +Bug(WPE) fast/html [ Skip ] +Bug(WPE) fast/images [ Skip ] +Bug(WPE) fast/inline [ Skip ] +Bug(WPE) fast/inline-block [ Skip ] +Bug(WPE) fast/invalid [ Skip ] +Bug(WPE) fast/layers [ Skip ] +Bug(WPE) fast/line-grid [ Skip ] +Bug(WPE) fast/lists [ Skip ] +Bug(WPE) fast/loader [ Skip ] +Bug(WPE) fast/masking [ Skip ] +Bug(WPE) fast/media [ Skip ] +Bug(WPE) fast/mediacapturefromelement [ Skip ] +Bug(WPE) fast/mediastream [ Skip ] +Bug(WPE) fast/multicol [ Skip ] +Bug(WPE) fast/overflow [ Skip ] +Bug(WPE) fast/picture [ Skip ] +Bug(WPE) fast/preloader [ Skip ] +Bug(WPE) fast/reflections [ Skip ] +Bug(WPE) fast/regions [ Skip ] +Bug(WPE) fast/repaint [ Skip ] +Bug(WPE) fast/replaced [ Skip ] +Bug(WPE) fast/ruby [ Skip ] +Bug(WPE) fast/scrolling [ Skip ] +Bug(WPE) fast/selectors [ Skip ] +Bug(WPE) fast/shadow-dom [ Skip ] +Bug(WPE) fast/shrink-wrap [ Skip ] +Bug(WPE) fast/spatial-navigation [ Skip ] +Bug(WPE) fast/speechsynthesis [ Skip ] +Bug(WPE) fast/sub-pixel [ Skip ] +Bug(WPE) fast/table [ Skip ] +Bug(WPE) fast/text [ Skip ] +Bug(WPE) fast/text-autosizing [ Skip ] +Bug(WPE) fast/visual-viewport [ Skip ] +Bug(WPE) fast/writing-mode [ Skip ] +Bug(WPE) fast/xmlhttprequest [ Skip ] +Bug(WPE) fast/xpath [ Skip ] +Bug(WPE) fast/zooming [ Skip ] -webkit.org/b/173422 Bug(WPE) fast/animation [ Pass Crash ] webkit.org/b/173422 fast/animation/request-animation-frame-disabled.html [ Failure Crash ] -Bug(WPE) fast/css-grid-layout [ Pass ] Bug(WPE) fast/css-grid-layout/flex-content-sized-columns-resize.html [ Timeout ] Bug(WPE) fast/css-grid-layout/grid-baseline-margins.html [ ImageOnlyFailure ] Bug(WPE) fast/css-grid-layout/grid-baseline.html [ ImageOnlyFailure ] @@ -202,17 +261,12 @@ Bug(WPE) fast/css-intrinsic-dimensions/height-css-tables.html [ ImageOnlyFailure ] Bug(WPE) fast/css-intrinsic-dimensions/height-tables.html [ ImageOnlyFailure ] -Bug(WPE) fast/dynamic [ Pass ] Bug(WPE) fast/dynamic/window-resize-scrollbars-test.html [ Timeout ] -Bug(WPE) fast/encoding [ Pass ] - fast/events/constructors/keyboard-event-constructor.html [ Pass ] -Bug(WPE) fast/innerHTML [ Pass ] Bug(WPE) fast/innerHTML/001.html [ ImageOnlyFailure ] -Bug(WPE) fast/parser [ Pass ] Bug(WPE) fast/parser/entities-in-attributes.xhtml [ Failure ] Bug(WPE) fast/parser/entities-in-xhtml.xhtml [ Failure ]
[webkit-changes] [209705] trunk/Source/WebCore
Title: [209705] trunk/Source/WebCore Revision 209705 Author zandober...@gmail.com Date 2016-12-12 01:10:07 -0800 (Mon, 12 Dec 2016) Log Message Unreviewed. Fixing build breakage in GStreamer's WebKitCommonEncryptionDecryptorGStreamer. * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: (webkitMediaCommonEncryptionDecryptTransformInPlace): WTF::Seconds should be used instead of std::chrono::seconds. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (209704 => 209705) --- trunk/Source/WebCore/ChangeLog 2016-12-12 08:32:01 UTC (rev 209704) +++ trunk/Source/WebCore/ChangeLog 2016-12-12 09:10:07 UTC (rev 209705) @@ -1,3 +1,11 @@ +2016-12-12 Zan Dobersek + +Unreviewed. Fixing build breakage in GStreamer's WebKitCommonEncryptionDecryptorGStreamer. + +* platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: +(webkitMediaCommonEncryptionDecryptTransformInPlace): +WTF::Seconds should be used instead of std::chrono::seconds. + 2016-12-11 Simon Fraser REGRESSION (r200283): Transform, overflow hidden and filter combination completely hides the element Modified: trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp (209704 => 209705) --- trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp 2016-12-12 08:32:01 UTC (rev 209704) +++ trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp 2016-12-12 09:10:07 UTC (rev 209705) @@ -197,7 +197,7 @@ GST_ERROR_OBJECT(self, "can't process key requests in less than PAUSED state"); return GST_FLOW_NOT_SUPPORTED; } -priv->condition.waitFor(priv->mutex, std::chrono::seconds(5), [priv] { +priv->condition.waitFor(priv->mutex, Seconds(5), [priv] { return priv->keyReceived; }); if (!priv->keyReceived) { ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [209983] trunk/Source/WebCore
Title: [209983] trunk/Source/WebCore Revision 209983 Author zandober...@gmail.com Date 2016-12-19 08:14:33 -0800 (Mon, 19 Dec 2016) Log Message [EME] Remove MediaKeySessionType::persistent-usage-record https://bugs.webkit.org/show_bug.cgi?id=166012 Reviewed by Xabier Rodriguez-Calvar. Remove the "persistent-usage-record" value from the MediaKeySessionType. This was removed from the spec as an at-risk feature. https://github.com/w3c/encrypted-media/issues/353 No non-imported tests need to be updated. This is still present in the tests imported from the W3C's web-platform-tests repository, but the tests haven't yet been updated upstream. * Modules/encryptedmedia/CDM.cpp: (WebCore::CDM::isPersistentType): * Modules/encryptedmedia/MediaKeySessionType.h: * Modules/encryptedmedia/MediaKeySessionType.idl: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySessionType.h trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySessionType.idl Diff Modified: trunk/Source/WebCore/ChangeLog (209982 => 209983) --- trunk/Source/WebCore/ChangeLog 2016-12-19 15:41:28 UTC (rev 209982) +++ trunk/Source/WebCore/ChangeLog 2016-12-19 16:14:33 UTC (rev 209983) @@ -1,3 +1,23 @@ +2016-12-19 Zan Dobersek + +[EME] Remove MediaKeySessionType::persistent-usage-record +https://bugs.webkit.org/show_bug.cgi?id=166012 + +Reviewed by Xabier Rodriguez-Calvar. + +Remove the "persistent-usage-record" value from the MediaKeySessionType. +This was removed from the spec as an at-risk feature. +https://github.com/w3c/encrypted-media/issues/353 + +No non-imported tests need to be updated. This is still present in the +tests imported from the W3C's web-platform-tests repository, but the +tests haven't yet been updated upstream. + +* Modules/encryptedmedia/CDM.cpp: +(WebCore::CDM::isPersistentType): +* Modules/encryptedmedia/MediaKeySessionType.h: +* Modules/encryptedmedia/MediaKeySessionType.idl: + 2016-12-19 Miguel Gomez [GTK] GLXBadFBConfig error when creating an OpenGL context Modified: trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp (209982 => 209983) --- trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp 2016-12-19 15:41:28 UTC (rev 209982) +++ trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp 2016-12-19 16:14:33 UTC (rev 209983) @@ -176,7 +176,6 @@ // ↳ "temporary" return false; case MediaKeySessionType::PersistentLicense: -case MediaKeySessionType::PersistentUsageRecord: // ↳ "persistent-license" return true; } Modified: trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySessionType.h (209982 => 209983) --- trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySessionType.h 2016-12-19 15:41:28 UTC (rev 209982) +++ trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySessionType.h 2016-12-19 16:14:33 UTC (rev 209983) @@ -34,7 +34,6 @@ enum class MediaKeySessionType { Temporary, -PersistentUsageRecord, PersistentLicense }; Modified: trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySessionType.idl (209982 => 209983) --- trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySessionType.idl 2016-12-19 15:41:28 UTC (rev 209982) +++ trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySessionType.idl 2016-12-19 16:14:33 UTC (rev 209983) @@ -29,6 +29,5 @@ ] enum MediaKeySessionType { "temporary", -"persistent-usage-record", "persistent-license" }; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [209989] trunk/Source/WebCore
Title: [209989] trunk/Source/WebCore Revision 209989 Author zandober...@gmail.com Date 2016-12-19 10:18:41 -0800 (Mon, 19 Dec 2016) Log Message Unreviewed, rolling out r209983. https://bugs.webkit.org/show_bug.cgi?id=166024 There's intent to support persistent-usage-record (Requested by zdobersek on #webkit). Reverted changeset: "[EME] Remove MediaKeySessionType::persistent-usage-record" https://bugs.webkit.org/show_bug.cgi?id=166012 http://trac.webkit.org/changeset/209983 Patch by Commit Queue on 2016-12-19 Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySessionType.h trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySessionType.idl Diff Modified: trunk/Source/WebCore/ChangeLog (209988 => 209989) --- trunk/Source/WebCore/ChangeLog 2016-12-19 18:01:47 UTC (rev 209988) +++ trunk/Source/WebCore/ChangeLog 2016-12-19 18:18:41 UTC (rev 209989) @@ -1,3 +1,17 @@ +2016-12-19 Commit Queue + +Unreviewed, rolling out r209983. +https://bugs.webkit.org/show_bug.cgi?id=166024 + +There's intent to support persistent-usage-record (Requested +by zdobersek on #webkit). + +Reverted changeset: + +"[EME] Remove MediaKeySessionType::persistent-usage-record" +https://bugs.webkit.org/show_bug.cgi?id=166012 +http://trac.webkit.org/changeset/209983 + 2016-12-19 Sam Weinig Move custom files / callback objects into their respective groups. Modified: trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp (209988 => 209989) --- trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp 2016-12-19 18:01:47 UTC (rev 209988) +++ trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp 2016-12-19 18:18:41 UTC (rev 209989) @@ -176,6 +176,7 @@ // ↳ "temporary" return false; case MediaKeySessionType::PersistentLicense: +case MediaKeySessionType::PersistentUsageRecord: // ↳ "persistent-license" return true; } Modified: trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySessionType.h (209988 => 209989) --- trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySessionType.h 2016-12-19 18:01:47 UTC (rev 209988) +++ trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySessionType.h 2016-12-19 18:18:41 UTC (rev 209989) @@ -34,6 +34,7 @@ enum class MediaKeySessionType { Temporary, +PersistentUsageRecord, PersistentLicense }; Modified: trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySessionType.idl (209988 => 209989) --- trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySessionType.idl 2016-12-19 18:01:47 UTC (rev 209988) +++ trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySessionType.idl 2016-12-19 18:18:41 UTC (rev 209989) @@ -29,5 +29,6 @@ ] enum MediaKeySessionType { "temporary", +"persistent-usage-record", "persistent-license" }; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [210132] trunk/Source/WebCore
Title: [210132] trunk/Source/WebCore Revision 210132 Author zandober...@gmail.com Date 2016-12-23 01:15:07 -0800 (Fri, 23 Dec 2016) Log Message [EME][GStreamer] Enable various code paths for ENCRYPTED_MEDIA https://bugs.webkit.org/show_bug.cgi?id=166054 Reviewed by Xabier Rodriguez-Calvar. Add ENABLE_ENCRYPTED_MEDIA build guards in various places in GStreamer code to enable decryption-related GStreamer elements and the proper decryptor handling in AppendPipeline. * platform/GStreamer.cmake: * platform/graphics/gstreamer/GStreamerUtilities.cpp: * platform/graphics/gstreamer/GStreamerUtilities.h: * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: (WebCore::registerWebKitGStreamerElements): (WebCore::MediaPlayerPrivateGStreamerBase::handleSyncMessage): Only call needKey() if LEGACY_ENCRYPTED_MEDIA is enabled, since this is the way the legacy EME system expects to be notified of key necessity. It's very likely ENCRYPTED_MEDIA will do this differently. * platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp: * platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.h: * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h: * platform/graphics/gstreamer/mse/AppendPipeline.cpp: (WebCore::AppendPipeline::parseDemuxerSrcPadCaps): (WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread): (WebCore::AppendPipeline::disconnectDemuxerSrcPadFromAppsinkFromAnyThread): * platform/graphics/gstreamer/mse/AppendPipeline.h: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/GStreamer.cmake trunk/Source/WebCore/platform/graphics/gstreamer/GStreamerUtilities.cpp trunk/Source/WebCore/platform/graphics/gstreamer/GStreamerUtilities.h trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.h trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h Diff Modified: trunk/Source/WebCore/ChangeLog (210131 => 210132) --- trunk/Source/WebCore/ChangeLog 2016-12-23 09:11:32 UTC (rev 210131) +++ trunk/Source/WebCore/ChangeLog 2016-12-23 09:15:07 UTC (rev 210132) @@ -1,3 +1,33 @@ +2016-12-23 Zan Dobersek + +[EME][GStreamer] Enable various code paths for ENCRYPTED_MEDIA +https://bugs.webkit.org/show_bug.cgi?id=166054 + +Reviewed by Xabier Rodriguez-Calvar. + +Add ENABLE_ENCRYPTED_MEDIA build guards in various places in GStreamer +code to enable decryption-related GStreamer elements and the proper +decryptor handling in AppendPipeline. + +* platform/GStreamer.cmake: +* platform/graphics/gstreamer/GStreamerUtilities.cpp: +* platform/graphics/gstreamer/GStreamerUtilities.h: +* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: +(WebCore::registerWebKitGStreamerElements): +(WebCore::MediaPlayerPrivateGStreamerBase::handleSyncMessage): +Only call needKey() if LEGACY_ENCRYPTED_MEDIA is enabled, since this is +the way the legacy EME system expects to be notified of key necessity. +It's very likely ENCRYPTED_MEDIA will do this differently. +* platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp: +* platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.h: +* platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: +* platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h: +* platform/graphics/gstreamer/mse/AppendPipeline.cpp: +(WebCore::AppendPipeline::parseDemuxerSrcPadCaps): +(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread): +(WebCore::AppendPipeline::disconnectDemuxerSrcPadFromAppsinkFromAnyThread): +* platform/graphics/gstreamer/mse/AppendPipeline.h: + 2016-12-23 Ryosuke Niwa Eliminate the use of lastChild in TextIterator Modified: trunk/Source/WebCore/platform/GStreamer.cmake (210131 => 210132) --- trunk/Source/WebCore/platform/GStreamer.cmake 2016-12-23 09:11:32 UTC (rev 210131) +++ trunk/Source/WebCore/platform/GStreamer.cmake 2016-12-23 09:15:07 UTC (rev 210132) @@ -130,7 +130,7 @@ ) endif () -if (ENABLE_LEGACY_ENCRYPTED_MEDIA) +if (ENABLE_LEGACY_ENCRYPTED_MEDIA OR ENABLE_ENCRYPTED_MEDIA) list(APPEND WebCore_INCLUDE_DIRECTORIES ${LIBGCRYPT_INCLUDE_DIRS} ) Modified: trunk/Source/WebCore/platform/graphics/gstreamer/GStreamerUtilities.cpp
[webkit-changes] [210219] trunk/Source/WebCore
Title: [210219] trunk/Source/WebCore Revision 210219 Author zandober...@gmail.com Date 2017-01-01 08:15:04 -0800 (Sun, 01 Jan 2017) Log Message Clean up GraphicsContext3D forward declarations, header inclusion https://bugs.webkit.org/show_bug.cgi?id=166537 Reviewed by Alex Christensen. Remove two unnecessary GraphicsContext3D forward declarations from the EmptyClients and ChromeClient header files, and remove the unnecessary GraphicsContext3D.h header inclusion from RenderLayerBacking. No changes in behavior. * loader/EmptyClients.h: * page/ChromeClient.h: * rendering/RenderLayerBacking.cpp: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/loader/EmptyClients.h trunk/Source/WebCore/page/ChromeClient.h trunk/Source/WebCore/rendering/RenderLayerBacking.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (210218 => 210219) --- trunk/Source/WebCore/ChangeLog 2017-01-01 00:48:19 UTC (rev 210218) +++ trunk/Source/WebCore/ChangeLog 2017-01-01 16:15:04 UTC (rev 210219) @@ -1,3 +1,20 @@ +2017-01-01 Zan Dobersek + +Clean up GraphicsContext3D forward declarations, header inclusion +https://bugs.webkit.org/show_bug.cgi?id=166537 + +Reviewed by Alex Christensen. + +Remove two unnecessary GraphicsContext3D forward declarations from the +EmptyClients and ChromeClient header files, and remove the unnecessary +GraphicsContext3D.h header inclusion from RenderLayerBacking. + +No changes in behavior. + +* loader/EmptyClients.h: +* page/ChromeClient.h: +* rendering/RenderLayerBacking.cpp: + 2016-12-31 Michael Catanzaro SecurityOrigin::create triplet constructor does not canonicalize port Modified: trunk/Source/WebCore/loader/EmptyClients.h (210218 => 210219) --- trunk/Source/WebCore/loader/EmptyClients.h 2017-01-01 00:48:19 UTC (rev 210218) +++ trunk/Source/WebCore/loader/EmptyClients.h 2017-01-01 16:15:04 UTC (rev 210219) @@ -71,7 +71,6 @@ namespace WebCore { -class GraphicsContext3D; class Page; class PageConfiguration; Modified: trunk/Source/WebCore/page/ChromeClient.h (210218 => 210219) --- trunk/Source/WebCore/page/ChromeClient.h 2017-01-01 00:48:19 UTC (rev 210218) +++ trunk/Source/WebCore/page/ChromeClient.h 2017-01-01 16:15:04 UTC (rev 210219) @@ -73,7 +73,6 @@ class FloatRect; class Frame; class Geolocation; -class GraphicsContext3D; class GraphicsLayer; class GraphicsLayerFactory; class HTMLInputElement; Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (210218 => 210219) --- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2017-01-01 00:48:19 UTC (rev 210218) +++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2017-01-01 16:15:04 UTC (rev 210219) @@ -64,10 +64,6 @@ #include "StyleResolver.h" #include "TiledBacking.h" -#if ENABLE(WEBGL) || ENABLE(ACCELERATED_2D_CANVAS) -#include "GraphicsContext3D.h" -#endif - #if PLATFORM(IOS) #include "RuntimeApplicationChecks.h" #endif ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [210220] trunk/Source/WebCore
Title: [210220] trunk/Source/WebCore Revision 210220 Author zandober...@gmail.com Date 2017-01-01 08:46:34 -0800 (Sun, 01 Jan 2017) Log Message GraphicsContextCairo: setMiterLimit() is missing the DisplayListRecorder diversion https://bugs.webkit.org/show_bug.cgi?id=166539 Reviewed by Michael Catanzaro. * platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContext::setMiterLimit): Call the setMiterLimit() method on the m_displayListRecorder object when the GraphicsContext object is in recording mode. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (210219 => 210220) --- trunk/Source/WebCore/ChangeLog 2017-01-01 16:15:04 UTC (rev 210219) +++ trunk/Source/WebCore/ChangeLog 2017-01-01 16:46:34 UTC (rev 210220) @@ -1,5 +1,16 @@ 2017-01-01 Zan Dobersek +GraphicsContextCairo: setMiterLimit() is missing the DisplayListRecorder diversion +https://bugs.webkit.org/show_bug.cgi?id=166539 + +Reviewed by Michael Catanzaro. + +* platform/graphics/cairo/GraphicsContextCairo.cpp: +(WebCore::GraphicsContext::setMiterLimit): Call the setMiterLimit() method on the +m_displayListRecorder object when the GraphicsContext object is in recording mode. + +2017-01-01 Zan Dobersek + Clean up GraphicsContext3D forward declarations, header inclusion https://bugs.webkit.org/show_bug.cgi?id=166537 Modified: trunk/Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp (210219 => 210220) --- trunk/Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp 2017-01-01 16:15:04 UTC (rev 210219) +++ trunk/Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp 2017-01-01 16:46:34 UTC (rev 210220) @@ -1016,6 +1016,12 @@ if (paintingDisabled()) return; +if (isRecording()) { +// Maybe this should be part of the state. +m_displayListRecorder->setMiterLimit(miter); +return; +} + cairo_set_miter_limit(platformContext()->cr(), miter); } ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [210541] trunk/Source/WebCore
Title: [210541] trunk/Source/WebCore Revision 210541 Author zandober...@gmail.com Date 2017-01-10 04:28:46 -0800 (Tue, 10 Jan 2017) Log Message [TextureMapper] TextureMapperPlatformLayerProxy::swapBuffers() should hold the lock throughout invocation https://bugs.webkit.org/show_bug.cgi?id=166852 Reviewed by Michael Catanzaro. * platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp: (WebCore::TextureMapperPlatformLayerProxy::swapBuffer): Append to previous buffer to the m_usedBuffers Vector while the object's lock is held. Everywhere else the m_usedBuffers Vector is used under the lock, no reason to not do the same here. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (210540 => 210541) --- trunk/Source/WebCore/ChangeLog 2017-01-10 12:16:35 UTC (rev 210540) +++ trunk/Source/WebCore/ChangeLog 2017-01-10 12:28:46 UTC (rev 210541) @@ -1,3 +1,15 @@ +2017-01-10 Zan Dobersek + +[TextureMapper] TextureMapperPlatformLayerProxy::swapBuffers() should hold the lock throughout invocation +https://bugs.webkit.org/show_bug.cgi?id=166852 + +Reviewed by Michael Catanzaro. + +* platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp: +(WebCore::TextureMapperPlatformLayerProxy::swapBuffer): Append to previous buffer +to the m_usedBuffers Vector while the object's lock is held. Everywhere else the +m_usedBuffers Vector is used under the lock, no reason to not do the same here. + 2017-01-09 Yusuke Suzuki Implement JSSourceCode to propagate SourceCode in module pipeline Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp (210540 => 210541) --- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp 2017-01-10 12:16:35 UTC (rev 210540) +++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp 2017-01-10 12:28:46 UTC (rev 210541) @@ -139,19 +139,15 @@ void TextureMapperPlatformLayerProxy::swapBuffer() { ASSERT(m_compositorThreadID == WTF::currentThread()); -std::unique_ptr prevBuffer; +LockHolder locker(m_lock); +if (!m_targetLayer || !m_pendingBuffer) +return; -{ -LockHolder locker(m_lock); -if (!m_targetLayer || !m_pendingBuffer) -return; +auto prevBuffer = WTFMove(m_currentBuffer); -prevBuffer = WTFMove(m_currentBuffer); +m_currentBuffer = WTFMove(m_pendingBuffer); +m_targetLayer->setContentsLayer(m_currentBuffer.get()); -m_currentBuffer = WTFMove(m_pendingBuffer); -m_targetLayer->setContentsLayer(m_currentBuffer.get()); -} - if (prevBuffer && prevBuffer->hasManagedTexture()) m_usedBuffers.append(WTFMove(prevBuffer)); } ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [210542] trunk/Source/WebCore
Title: [210542] trunk/Source/WebCore Revision 210542 Author zandober...@gmail.com Date 2017-01-10 04:29:36 -0800 (Tue, 10 Jan 2017) Log Message [TexMap] Use WTF::Function in TextureMapperPlatformLayerProxy https://bugs.webkit.org/show_bug.cgi?id=166853 Reviewed by Michael Catanzaro. Use WTF::Function in the TextureMapperPlatformLayerProxy, instead of the std::function bloat. * platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp: (WebCore::TextureMapperPlatformLayerProxy::scheduleUpdateOnCompositorThread): (WebCore::TextureMapperPlatformLayerProxy::compositorThreadUpdateTimerFired): * platform/graphics/texmap/TextureMapperPlatformLayerProxy.h: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.h Diff Modified: trunk/Source/WebCore/ChangeLog (210541 => 210542) --- trunk/Source/WebCore/ChangeLog 2017-01-10 12:28:46 UTC (rev 210541) +++ trunk/Source/WebCore/ChangeLog 2017-01-10 12:29:36 UTC (rev 210542) @@ -1,5 +1,20 @@ 2017-01-10 Zan Dobersek +[TexMap] Use WTF::Function in TextureMapperPlatformLayerProxy +https://bugs.webkit.org/show_bug.cgi?id=166853 + +Reviewed by Michael Catanzaro. + +Use WTF::Function in the TextureMapperPlatformLayerProxy, instead of +the std::function bloat. + +* platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp: +(WebCore::TextureMapperPlatformLayerProxy::scheduleUpdateOnCompositorThread): +(WebCore::TextureMapperPlatformLayerProxy::compositorThreadUpdateTimerFired): +* platform/graphics/texmap/TextureMapperPlatformLayerProxy.h: + +2017-01-10 Zan Dobersek + [TextureMapper] TextureMapperPlatformLayerProxy::swapBuffers() should hold the lock throughout invocation https://bugs.webkit.org/show_bug.cgi?id=166852 Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp (210541 => 210542) --- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp 2017-01-10 12:28:46 UTC (rev 210541) +++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp 2017-01-10 12:29:36 UTC (rev 210542) @@ -152,7 +152,7 @@ m_usedBuffers.append(WTFMove(prevBuffer)); } -bool TextureMapperPlatformLayerProxy::scheduleUpdateOnCompositorThread(std::function&& updateFunction) +bool TextureMapperPlatformLayerProxy::scheduleUpdateOnCompositorThread(Function&& updateFunction) { LockHolder locker(m_lock); if (!m_compositorThreadUpdateTimer) @@ -165,7 +165,7 @@ void TextureMapperPlatformLayerProxy::compositorThreadUpdateTimerFired() { -std::function updateFunction; +Function updateFunction; { LockHolder locker(m_lock); if (!m_compositorThreadUpdateFunction) Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.h (210541 => 210542) --- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.h 2017-01-10 12:28:46 UTC (rev 210541) +++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.h 2017-01-10 12:29:36 UTC (rev 210542) @@ -32,6 +32,7 @@ #include "TextureMapper.h" #include "TransformationMatrix.h" #include +#include #include #include #include @@ -77,7 +78,7 @@ void swapBuffer(); -bool scheduleUpdateOnCompositorThread(std::function&&); +bool scheduleUpdateOnCompositorThread(Function&&); private: void scheduleReleaseUnusedBuffers(); @@ -100,7 +101,7 @@ void compositorThreadUpdateTimerFired(); std::unique_ptr> m_compositorThreadUpdateTimer; -std::function m_compositorThreadUpdateFunction; +Function m_compositorThreadUpdateFunction; }; } // namespace WebCore ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [210543] trunk/Source/WebCore
Title: [210543] trunk/Source/WebCore Revision 210543 Author zandober...@gmail.com Date 2017-01-10 04:32:17 -0800 (Tue, 10 Jan 2017) Log Message [CoordinatedGraphics] TextureMapperPlatformLayerProxy is constantly getting activated https://bugs.webkit.org/show_bug.cgi?id=166856 Reviewed by Michael Catanzaro. When CoordinatedGraphicsLayer::setContentsNeedsDisplay() is called, currently with the threaded CoordinatedGraphics mode the platform layer is marked for synchronizing. This means that at flush-time this layer swaps the buffer of the wrapped platform layer and updates the layer state to indicate that the underlying TextureMapperPlatformLayerProxy object has to be activated on the composition thread. This current logic results in the TextureMapperPlatformLayerProxy object being reactivated for every display request that arrives via setContentsNeedsDisplay(). This is pretty wasteful since this activation heap-allocates a RunLoop::Timer object which internally also locks up the GLib main context to attach a new source, and that's only after the source on the previous RunLoop::Timer was detached before that RunLoop::Timer was destroyed. To avoid this, CoordinatedGraphicsLayer::setContentsNeedsDisplay() sets a new flag, m_shouldUpdatePlatformLayer. During flush, this flag is checked in CoordinatedGraphicsLayer::updatePlatformLayer(), with the buffer swap performed in case it's set. CoordinatedGraphicsLayer::syncPlatformLayer() now only sets the platform layer proxy object for that layer's state. * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer): (WebCore::CoordinatedGraphicsLayer::setContentsNeedsDisplay): (WebCore::CoordinatedGraphicsLayer::syncPlatformLayer): (WebCore::CoordinatedGraphicsLayer::updatePlatformLayer): (WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly): * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h Diff Modified: trunk/Source/WebCore/ChangeLog (210542 => 210543) --- trunk/Source/WebCore/ChangeLog 2017-01-10 12:29:36 UTC (rev 210542) +++ trunk/Source/WebCore/ChangeLog 2017-01-10 12:32:17 UTC (rev 210543) @@ -1,5 +1,39 @@ 2017-01-10 Zan Dobersek +[CoordinatedGraphics] TextureMapperPlatformLayerProxy is constantly getting activated +https://bugs.webkit.org/show_bug.cgi?id=166856 + +Reviewed by Michael Catanzaro. + +When CoordinatedGraphicsLayer::setContentsNeedsDisplay() is called, currently with +the threaded CoordinatedGraphics mode the platform layer is marked for synchronizing. +This means that at flush-time this layer swaps the buffer of the wrapped platform +layer and updates the layer state to indicate that the underlying +TextureMapperPlatformLayerProxy object has to be activated on the composition thread. + +This current logic results in the TextureMapperPlatformLayerProxy object being +reactivated for every display request that arrives via setContentsNeedsDisplay(). +This is pretty wasteful since this activation heap-allocates a RunLoop::Timer object +which internally also locks up the GLib main context to attach a new source, and +that's only after the source on the previous RunLoop::Timer was detached before +that RunLoop::Timer was destroyed. + +To avoid this, CoordinatedGraphicsLayer::setContentsNeedsDisplay() sets a new flag, +m_shouldUpdatePlatformLayer. During flush, this flag is checked in +CoordinatedGraphicsLayer::updatePlatformLayer(), with the buffer swap performed in +case it's set. CoordinatedGraphicsLayer::syncPlatformLayer() now only sets the +platform layer proxy object for that layer's state. + +* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: +(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer): +(WebCore::CoordinatedGraphicsLayer::setContentsNeedsDisplay): +(WebCore::CoordinatedGraphicsLayer::syncPlatformLayer): +(WebCore::CoordinatedGraphicsLayer::updatePlatformLayer): +(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly): +* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h: + +2017-01-10 Zan Dobersek + [TexMap] Use WTF::Function in TextureMapperPlatformLayerProxy https://bugs.webkit.org/show_bug.cgi?id=166853 Modified: trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp (210542 => 210543) --- trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp 2017-01-10 12:29:36 UTC (rev 210542) +++ trunk/Source/WebCore/platform/graphics/texmap/coordi
[webkit-changes] [210544] trunk/Source/WebCore
Title: [210544] trunk/Source/WebCore Revision 210544 Author zandober...@gmail.com Date 2017-01-10 06:49:56 -0800 (Tue, 10 Jan 2017) Log Message Unreviewed. Remove the unused gReadyStateTimerInterval global from the MediaPlayerPrivateGStreamerMSE implementation file as it's only springing up a compiler warning. * platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (210543 => 210544) --- trunk/Source/WebCore/ChangeLog 2017-01-10 12:32:17 UTC (rev 210543) +++ trunk/Source/WebCore/ChangeLog 2017-01-10 14:49:56 UTC (rev 210544) @@ -1,5 +1,13 @@ 2017-01-10 Zan Dobersek +Unreviewed. Remove the unused gReadyStateTimerInterval global from +the MediaPlayerPrivateGStreamerMSE implementation file as it's only +springing up a compiler warning. + +* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp: + +2017-01-10 Zan Dobersek + [CoordinatedGraphics] TextureMapperPlatformLayerProxy is constantly getting activated https://bugs.webkit.org/show_bug.cgi?id=166856 Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp (210543 => 210544) --- trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp 2017-01-10 12:32:17 UTC (rev 210543) +++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp 2017-01-10 14:49:56 UTC (rev 210544) @@ -62,9 +62,6 @@ } } -// Max interval in seconds to stay in the READY state on manual state change requests. -static const unsigned gReadyStateTimerInterval = 60; - GST_DEBUG_CATEGORY(webkit_mse_debug); #define GST_CAT_DEFAULT webkit_mse_debug ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [210545] trunk/Source/WebKit2
Title: [210545] trunk/Source/WebKit2 Revision 210545 Author zandober...@gmail.com Date 2017-01-10 06:51:02 -0800 (Tue, 10 Jan 2017) Log Message ThreadedCoordinatedLayerTreeHost::renderNextFrame() should short-cut to layer flushing https://bugs.webkit.org/show_bug.cgi?id=157614 Reviewed by Carlos Garcia Campos. CoordinatedLayerTreeHost prevents any layer flushes while a previously-commited scene state is still being rendered on the composition thread. renderNextFrame() is called once that is complete, and a new layer flush is scheduled. This change improves the whole ordeal by immediately performing the layer flush only if it was requested during the time we were waiting on the renderer (i.e. when the latest scene state was being composited), instead of scheduling it unconditionally. m_scheduledWhileWaitingForRenderer member variable is added to track that occurrence. * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: (WebKit::CoordinatedLayerTreeHost::scheduleLayerFlush): (WebKit::CoordinatedLayerTreeHost::renderNextFrame): * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h: Modified Paths trunk/Source/WebKit2/ChangeLog trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h Diff Modified: trunk/Source/WebKit2/ChangeLog (210544 => 210545) --- trunk/Source/WebKit2/ChangeLog 2017-01-10 14:49:56 UTC (rev 210544) +++ trunk/Source/WebKit2/ChangeLog 2017-01-10 14:51:02 UTC (rev 210545) @@ -1,3 +1,24 @@ +2017-01-10 Zan Dobersek + +ThreadedCoordinatedLayerTreeHost::renderNextFrame() should short-cut to layer flushing +https://bugs.webkit.org/show_bug.cgi?id=157614 + +Reviewed by Carlos Garcia Campos. + +CoordinatedLayerTreeHost prevents any layer flushes while a previously-commited scene +state is still being rendered on the composition thread. renderNextFrame() is called +once that is complete, and a new layer flush is scheduled. + +This change improves the whole ordeal by immediately performing the layer flush only if +it was requested during the time we were waiting on the renderer (i.e. when the latest +scene state was being composited), instead of scheduling it unconditionally. +m_scheduledWhileWaitingForRenderer member variable is added to track that occurrence. + +* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: +(WebKit::CoordinatedLayerTreeHost::scheduleLayerFlush): +(WebKit::CoordinatedLayerTreeHost::renderNextFrame): +* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h: + 2017-01-09 Chris Dumez [iOS] Drop VNodeTracker Modified: trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp (210544 => 210545) --- trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp 2017-01-10 14:49:56 UTC (rev 210544) +++ trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp 2017-01-10 14:51:02 UTC (rev 210545) @@ -78,6 +78,11 @@ if (!m_layerFlushSchedulingEnabled) return; +if (m_isWaitingForRenderer) { +m_scheduledWhileWaitingForRenderer = true; +return; +} + if (!m_layerFlushTimer.isActive()) m_layerFlushTimer.startOneShot(0); } @@ -146,8 +151,13 @@ void CoordinatedLayerTreeHost::renderNextFrame() { m_isWaitingForRenderer = false; -scheduleLayerFlush(); +bool scheduledWhileWaitingForRenderer = std::exchange(m_scheduledWhileWaitingForRenderer, false); m_coordinator.renderNextFrame(); + +if (scheduledWhileWaitingForRenderer || m_layerFlushTimer.isActive()) { +m_layerFlushTimer.stop(); +layerFlushTimerFired(); +} } void CoordinatedLayerTreeHost::didFlushRootLayer(const FloatRect& visibleContentRect) Modified: trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h (210544 => 210545) --- trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h 2017-01-10 14:49:56 UTC (rev 210544) +++ trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h 2017-01-10 14:51:02 UTC (rev 210545) @@ -86,6 +86,7 @@ CompositingCoordinator m_coordinator; bool m_isWaitingForRenderer { true }; +bool m_scheduledWhileWaitingForRenderer { false }; uint64_t m_forceRepaintAsyncCallbackID { 0 }; RunLoop::Timer m_layerFlushTimer; }; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [210670] trunk/Source/WebCore
Title: [210670] trunk/Source/WebCore Revision 210670 Author zandober...@gmail.com Date 2017-01-12 10:44:48 -0800 (Thu, 12 Jan 2017) Log Message [GTK] WebKitWebProcess at 100% CPU loading hyphenation dictionaries https://bugs.webkit.org/show_bug.cgi?id=165601 Reviewed by Carlos Garcia Campos. In HyphenationLibHyphen, retrieve the canonicalized absolute pathname of the dictionary file in order to avoid storing symbolic links as the target files for specific locales. libhyphen distributes its dictionary files by linking a set of similar locales files to a single file. Not resolving those symbolic links means we'll be opening a single file via multiple HyphenationDictionary objects, which is far from optimal. To add insult to injury, these HyphenationDictionary objects were stored in a TinyLRUCache with a slim capacity of 4. This meant that while already loading one single file through multiple symlinks, because of continuous eviciton from this LRU cache the same symlinks continued to be processed, in some cases resulting in opening the same dictionary file hundreds or thousands of times. The capacity of this TinyLRUCache is increased to 32 to keep the amount of open libhyphen dictionaries capped at some reasonable number. * platform/text/hyphen/HyphenationLibHyphen.cpp: (WebCore::scanDirectoryForDicionaries): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/text/hyphen/HyphenationLibHyphen.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (210669 => 210670) --- trunk/Source/WebCore/ChangeLog 2017-01-12 18:41:28 UTC (rev 210669) +++ trunk/Source/WebCore/ChangeLog 2017-01-12 18:44:48 UTC (rev 210670) @@ -1,3 +1,26 @@ +2017-01-12 Zan Dobersek + +[GTK] WebKitWebProcess at 100% CPU loading hyphenation dictionaries +https://bugs.webkit.org/show_bug.cgi?id=165601 + +Reviewed by Carlos Garcia Campos. + +In HyphenationLibHyphen, retrieve the canonicalized absolute pathname of the dictionary file +in order to avoid storing symbolic links as the target files for specific locales. libhyphen +distributes its dictionary files by linking a set of similar locales files to a single file. +Not resolving those symbolic links means we'll be opening a single file via multiple +HyphenationDictionary objects, which is far from optimal. + +To add insult to injury, these HyphenationDictionary objects were stored in a TinyLRUCache +with a slim capacity of 4. This meant that while already loading one single file through +multiple symlinks, because of continuous eviciton from this LRU cache the same symlinks +continued to be processed, in some cases resulting in opening the same dictionary file +hundreds or thousands of times. The capacity of this TinyLRUCache is increased to 32 +to keep the amount of open libhyphen dictionaries capped at some reasonable number. + +* platform/text/hyphen/HyphenationLibHyphen.cpp: +(WebCore::scanDirectoryForDicionaries): + 2017-01-12 Javier Fernandez [css-grid] Make the grid sizing data persistent through layouts Modified: trunk/Source/WebCore/platform/text/hyphen/HyphenationLibHyphen.cpp (210669 => 210670) --- trunk/Source/WebCore/platform/text/hyphen/HyphenationLibHyphen.cpp 2017-01-12 18:41:28 UTC (rev 210669) +++ trunk/Source/WebCore/platform/text/hyphen/HyphenationLibHyphen.cpp 2017-01-12 18:44:48 UTC (rev 210670) @@ -31,6 +31,8 @@ #include "FileSystem.h" #include +#include +#include #include #include #include @@ -62,8 +64,14 @@ static void scanDirectoryForDicionaries(const char* directoryPath, HashMap>& availableLocales) { -for (const auto& filePath : listDirectory(directoryPath, "hyph_*.dic")) { +for (auto& filePath : listDirectory(directoryPath, "hyph_*.dic")) { String locale = extractLocaleFromDictionaryFilePath(filePath).convertToASCIILowercase(); + +char normalizedPath[PATH_MAX]; +if (!realpath(fileSystemRepresentation(filePath).data(), normalizedPath)) +continue; + +filePath = stringFromFileSystemRepresentation(normalizedPath); availableLocales.add(locale, Vector()).iterator->value.append(filePath); String localeReplacingUnderscores = String(locale); @@ -176,9 +184,9 @@ class TinyLRUCachePolicy> { public: -static TinyLRUCache>& cache() +static TinyLRUCache, 32>& cache() { -static NeverDestroyed>> cache; +static NeverDestroyed, 32>> cache; return cache; } ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [210740] trunk/Source/WebCore
Title: [210740] trunk/Source/WebCore Revision 210740 Author zandober...@gmail.com Date 2017-01-13 12:53:15 -0800 (Fri, 13 Jan 2017) Log Message [GStreamer] Cache the accelerated capability of MediaPlayerClient in MediaPlayerPrivateGStreamerBase https://bugs.webkit.org/show_bug.cgi?id=167015 Reviewed by Jer Noble. In MediaPlayerPrivateGStreamerBase, avoid continuously querying the MediaPlayerClient object about the accelerated compositing capabilities. Instead, cache this information when creating the video sink (which is most affected by this information anyway), storing it in a new protected boolean member variable in the MediaPlayerPrivateGStreamerBase class. All calls to MediaPlayerClient::mediaPlayerRenderingCanBeAccelerated() and MediaPlayerClient::mediaPlayerAcceleratedCompositingEnabled() are replaced by tests on the value of this new member variable. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: (WebCore::MediaPlayerPrivateGStreamerBase::naturalSize): (WebCore::MediaPlayerPrivateGStreamerBase::repaint): (WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint): (WebCore::MediaPlayerPrivateGStreamerBase::paint): (WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink): * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h Diff Modified: trunk/Source/WebCore/ChangeLog (210739 => 210740) --- trunk/Source/WebCore/ChangeLog 2017-01-13 19:18:30 UTC (rev 210739) +++ trunk/Source/WebCore/ChangeLog 2017-01-13 20:53:15 UTC (rev 210740) @@ -1,3 +1,29 @@ +2017-01-13 Zan Dobersek + +[GStreamer] Cache the accelerated capability of MediaPlayerClient in MediaPlayerPrivateGStreamerBase +https://bugs.webkit.org/show_bug.cgi?id=167015 + +Reviewed by Jer Noble. + +In MediaPlayerPrivateGStreamerBase, avoid continuously querying the MediaPlayerClient +object about the accelerated compositing capabilities. Instead, cache this information +when creating the video sink (which is most affected by this information anyway), storing +it in a new protected boolean member variable in the MediaPlayerPrivateGStreamerBase class. + +All calls to MediaPlayerClient::mediaPlayerRenderingCanBeAccelerated() and +MediaPlayerClient::mediaPlayerAcceleratedCompositingEnabled() are replaced by tests +on the value of this new member variable. + +* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: +(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): +* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: +(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize): +(WebCore::MediaPlayerPrivateGStreamerBase::repaint): +(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint): +(WebCore::MediaPlayerPrivateGStreamerBase::paint): +(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink): +* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: + 2017-01-13 Chris Dumez Report post-page load CPU usage using diagnostic logging Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (210739 => 210740) --- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2017-01-13 19:18:30 UTC (rev 210739) +++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2017-01-13 20:53:15 UTC (rev 210740) @@ -2016,7 +2016,7 @@ g_object_set(m_pipeline.get(), "audio-filter", scale, nullptr); } -if (!m_player->client().mediaPlayerRenderingCanBeAccelerated(m_player)) { +if (!m_renderingCanBeAccelerated) { // If not using accelerated compositing, let GStreamer handle // the image-orientation tag. GstElement* videoFlip = gst_element_factory_make("videoflip", nullptr); Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp (210739 => 210740) --- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp 2017-01-13 19:18:30 UTC (rev 210739) +++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp 2017-01-13 20:53:15 UTC (rev 210740) @@ -403,7 +403,7 @@ #if USE(TEXTURE_MAPPER_GL) // When using accelerated compositing, if the video is tagged as rotated 90 or 270 degrees, swap width and height. -if (m_player->client().mediaPlayerRenderingCanBeAccelerated(m_player)) { +if (m_renderingCanBeAccelerated) { if (m_videoSourceOrientation.usesWidthAs
[webkit-changes] [210798] trunk/Source/WebCore
Title: [210798] trunk/Source/WebCore Revision 210798 Author zandober...@gmail.com Date 2017-01-17 02:11:09 -0800 (Tue, 17 Jan 2017) Log Message MediaKeySession: use existing 'message' event name https://bugs.webkit.org/show_bug.cgi?id=167095 Reviewed by Sam Weinig. When dispatching the 'message' event in MediaKeySession::enqueueMessage(), use the messageEvent member that's provided by the EventNames object. This removes the need for a custom static AtomicString object. * Modules/encryptedmedia/MediaKeySession.cpp: (WebCore::MediaKeySession::enqueueMessage): (WebCore::messageEventName): Deleted. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (210797 => 210798) --- trunk/Source/WebCore/ChangeLog 2017-01-17 06:20:56 UTC (rev 210797) +++ trunk/Source/WebCore/ChangeLog 2017-01-17 10:11:09 UTC (rev 210798) @@ -1,3 +1,18 @@ +2017-01-17 Zan Dobersek + +MediaKeySession: use existing 'message' event name +https://bugs.webkit.org/show_bug.cgi?id=167095 + +Reviewed by Sam Weinig. + +When dispatching the 'message' event in MediaKeySession::enqueueMessage(), +use the messageEvent member that's provided by the EventNames object. This +removes the need for a custom static AtomicString object. + +* Modules/encryptedmedia/MediaKeySession.cpp: +(WebCore::MediaKeySession::enqueueMessage): +(WebCore::messageEventName): Deleted. + 2017-01-16 Joseph Pecoraro Remove the REQUEST_ANIMATION_FRAME flag Modified: trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp (210797 => 210798) --- trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp 2017-01-17 06:20:56 UTC (rev 210797) +++ trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp 2017-01-17 10:11:09 UTC (rev 210798) @@ -33,6 +33,7 @@ #include "CDM.h" #include "CDMInstance.h" +#include "EventNames.h" #include "MediaKeyMessageEvent.h" #include "MediaKeyMessageType.h" #include "MediaKeyStatusMap.h" @@ -42,12 +43,6 @@ namespace WebCore { -static AtomicString& messageEventName() -{ -NeverDestroyed message { "message" }; -return message.get(); -} - Ref MediaKeySession::create(ScriptExecutionContext& context, MediaKeySessionType sessionType, bool useDistinctiveIdentifier, Ref&& implementation, Ref&& instance) { auto session = adoptRef(*new MediaKeySession(context, sessionType, useDistinctiveIdentifier, WTFMove(implementation), WTFMove(instance))); @@ -276,7 +271,7 @@ // 2. Queue a task to create an event named message that does not bubble and is not cancellable using the MediaKeyMessageEvent //interface with its type attribute set to message and its isTrusted attribute initialized to true, and dispatch it at the //session. -auto messageEvent = MediaKeyMessageEvent::create(messageEventName(), {messageType, message.createArrayBuffer()}, Event::IsTrusted::Yes); +auto messageEvent = MediaKeyMessageEvent::create(eventNames().messageEvent, {messageType, message.createArrayBuffer()}, Event::IsTrusted::Yes); m_eventQueue.enqueueEvent(WTFMove(messageEvent)); } ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes