[webkit-changes] [268453] trunk

2020-10-14 Thread zandobersek
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

2017-08-10 Thread zandobersek
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

2017-08-10 Thread zandobersek
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

2017-08-10 Thread zandobersek
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

2017-08-10 Thread zandobersek
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

2017-08-14 Thread zandobersek
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

2017-08-14 Thread zandobersek
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

2017-08-14 Thread zandobersek
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

2017-08-16 Thread zandobersek
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

2017-08-17 Thread zandobersek
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

2017-08-17 Thread zandobersek
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

2017-08-18 Thread zandobersek
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

2017-08-20 Thread zandobersek
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

2017-08-21 Thread zandobersek
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

2017-08-21 Thread zandobersek
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

2017-08-22 Thread zandobersek
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

2017-08-22 Thread zandobersek
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

2017-08-22 Thread zandobersek
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

2017-08-23 Thread zandobersek
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

2017-08-24 Thread zandobersek
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

2017-08-25 Thread zandobersek
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

2017-08-26 Thread zandobersek
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

2017-08-28 Thread zandobersek
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

2017-08-29 Thread zandobersek
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

2017-08-29 Thread zandobersek
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

2017-08-29 Thread zandobersek
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

2017-08-30 Thread zandobersek
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

2017-09-01 Thread zandobersek
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

2017-09-03 Thread zandobersek
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

2017-09-03 Thread zandobersek
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

2017-09-05 Thread zandobersek
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

2017-09-05 Thread zandobersek
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

2017-09-05 Thread zandobersek
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

2017-09-06 Thread zandobersek
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

2017-09-06 Thread zandobersek
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

2017-09-07 Thread zandobersek
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

2017-09-08 Thread zandobersek
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

2017-09-08 Thread zandobersek
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

2017-09-08 Thread zandobersek
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

2017-07-09 Thread zandobersek
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

2017-07-10 Thread zandobersek
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

2017-07-11 Thread zandobersek
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

2017-07-12 Thread zandobersek
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

2017-07-12 Thread zandobersek
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

2017-07-12 Thread zandobersek
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

2017-07-13 Thread zandobersek
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

2017-07-13 Thread zandobersek
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

2017-07-14 Thread zandobersek
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

2017-07-14 Thread zandobersek
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

2017-07-17 Thread zandobersek
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

2017-07-19 Thread zandobersek
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

2017-07-19 Thread zandobersek
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

2017-07-19 Thread zandobersek
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

2017-07-19 Thread zandobersek
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

2017-07-19 Thread zandobersek
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

2017-07-20 Thread zandobersek
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

2017-07-24 Thread zandobersek
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

2017-07-24 Thread zandobersek
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

2017-07-24 Thread zandobersek
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

2017-07-26 Thread zandobersek
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

2017-07-26 Thread zandobersek
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

2017-07-26 Thread zandobersek
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

2017-07-26 Thread zandobersek
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

2017-07-27 Thread zandobersek
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

2017-07-27 Thread zandobersek
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

2017-07-27 Thread zandobersek
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

2017-07-27 Thread zandobersek
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

2017-07-28 Thread zandobersek
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

2017-07-31 Thread zandobersek
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

2017-08-01 Thread zandobersek
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

2017-08-01 Thread zandobersek
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

2017-08-03 Thread zandobersek
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

2017-08-04 Thread zandobersek
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

2017-08-04 Thread zandobersek
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

2017-08-04 Thread zandobersek
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

2017-08-08 Thread zandobersek
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

2017-08-08 Thread zandobersek
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

2017-08-08 Thread zandobersek
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

2017-08-08 Thread zandobersek
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

2017-08-08 Thread zandobersek
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

2017-08-08 Thread zandobersek
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

2017-08-08 Thread zandobersek
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

2017-08-08 Thread zandobersek
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

2017-08-09 Thread zandobersek
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

2017-08-09 Thread zandobersek
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

2017-08-09 Thread zandobersek
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

2016-12-12 Thread zandobersek
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

2016-12-19 Thread zandobersek
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

2016-12-19 Thread zandobersek
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

2016-12-23 Thread zandobersek
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

2017-01-01 Thread zandobersek
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

2017-01-01 Thread zandobersek
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

2017-01-10 Thread zandobersek
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

2017-01-10 Thread zandobersek
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

2017-01-10 Thread zandobersek
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

2017-01-10 Thread zandobersek
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

2017-01-10 Thread zandobersek
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

2017-01-12 Thread zandobersek
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

2017-01-13 Thread zandobersek
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

2017-01-17 Thread zandobersek
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


  1   2   3   4   5   6   7   8   9   10   >