Diff
Modified: trunk/Source/WebCore/ChangeLog (229452 => 229453)
--- trunk/Source/WebCore/ChangeLog 2018-03-09 07:35:52 UTC (rev 229452)
+++ trunk/Source/WebCore/ChangeLog 2018-03-09 07:42:34 UTC (rev 229453)
@@ -1,3 +1,16 @@
+2018-03-08 Zan Dobersek <[email protected]>
+
+ Move NicosiaPaintingContextCairo files under Cairo-specific directory
+ https://bugs.webkit.org/show_bug.cgi?id=183497
+
+ Reviewed by Carlos Garcia Campos.
+
+ Pack Cairo-specific files in the Nicosia subsystem under cairo/.
+
+ * platform/TextureMapper.cmake:
+ * platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.cpp: Renamed from Source/WebCore/platform/graphics/nicosia/NicosiaPaintingContextCairo.cpp.
+ * platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.h: Renamed from Source/WebCore/platform/graphics/nicosia/NicosiaPaintingContextCairo.h.
+
2018-03-08 Nan Wang <[email protected]>
AX: AOM: More accessibility events support
Modified: trunk/Source/WebCore/platform/TextureMapper.cmake (229452 => 229453)
--- trunk/Source/WebCore/platform/TextureMapper.cmake 2018-03-09 07:35:52 UTC (rev 229452)
+++ trunk/Source/WebCore/platform/TextureMapper.cmake 2018-03-09 07:42:34 UTC (rev 229453)
@@ -47,13 +47,15 @@
# FIXME: Move this into Nicosia.cmake once the component is set for long-term use.
list(APPEND WebCore_INCLUDE_DIRECTORIES
"${WEBCORE_DIR}/platform/graphics/nicosia"
+ "${WEBCORE_DIR}/platform/graphics/nicosia/cairo"
)
list(APPEND WebCore_SOURCES
platform/graphics/nicosia/NicosiaBuffer.cpp
platform/graphics/nicosia/NicosiaPaintingContext.cpp
- platform/graphics/nicosia/NicosiaPaintingContextCairo.cpp
platform/graphics/nicosia/NicosiaPaintingEngine.cpp
platform/graphics/nicosia/NicosiaPaintingEngineBasic.cpp
+
+ platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.cpp
)
else ()
list(APPEND WebCore_SOURCES
Deleted: trunk/Source/WebCore/platform/graphics/nicosia/NicosiaPaintingContextCairo.cpp (229452 => 229453)
--- trunk/Source/WebCore/platform/graphics/nicosia/NicosiaPaintingContextCairo.cpp 2018-03-09 07:35:52 UTC (rev 229452)
+++ trunk/Source/WebCore/platform/graphics/nicosia/NicosiaPaintingContextCairo.cpp 2018-03-09 07:42:34 UTC (rev 229453)
@@ -1,98 +0,0 @@
-/*
- * 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 THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
- * HOLDER OR 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 "NicosiaPaintingContextCairo.h"
-
-#if USE(CAIRO)
-
-#include "GraphicsContext.h"
-#include "GraphicsContextImplCairo.h"
-#include "NicosiaBuffer.h"
-#include "PlatformContextCairo.h"
-#include "RefPtrCairo.h"
-#include <cairo.h>
-#include <utility>
-
-namespace Nicosia {
-
-PaintingContextCairo::PaintingContextCairo(Buffer& buffer)
-{
- // Balanced by the deref in the s_bufferKey user data destroy callback.
- buffer.ref();
-
- m_cairo.surface = adoptRef(cairo_image_surface_create_for_data(buffer.data(),
- CAIRO_FORMAT_ARGB32, buffer.size().width(), buffer.size().height(), buffer.stride()));
-
- static cairo_user_data_key_t s_bufferKey;
- cairo_surface_set_user_data(m_cairo.surface.get(), &s_bufferKey,
- new std::pair<Buffer*, PaintingContextCairo*> { &buffer, this },
- [](void* data)
- {
- auto* userData = static_cast<std::pair<Buffer*, PaintingContextCairo*>*>(data);
-
- // Deref the Buffer object.
- userData->first->deref();
-#if !ASSERT_DISABLED
- // Mark the deletion of the cairo_surface_t object associated with this
- // PaintingContextCairo as complete. This way we check that the cairo_surface_t
- // object doesn't outlive the PaintingContextCairo through which it was used.
- userData->second->m_deletionComplete = true;
-#endif
- delete userData;
- });
-
- m_cairo.context = adoptRef(cairo_create(m_cairo.surface.get()));
- m_platformContext = std::make_unique<WebCore::PlatformContextCairo>(m_cairo.context.get());
- m_graphicsContext = std::make_unique<WebCore::GraphicsContext>(WebCore::GraphicsContextImplCairo::createFactory(*m_platformContext));
-}
-
-PaintingContextCairo::~PaintingContextCairo()
-{
- cairo_surface_flush(m_cairo.surface.get());
-
- m_graphicsContext = nullptr;
- m_platformContext = nullptr;
- m_cairo.context = nullptr;
- m_cairo.surface = nullptr;
-
- // With all the Cairo references purged, the cairo_surface_t object should be destroyed
- // as well. This is checked by asserting that m_deletionComplete is true, which should
- // be the case if the s_bufferKey user data destroy callback has been invoked upon the
- // cairo_surface_t destruction.
- ASSERT(m_deletionComplete);
-}
-
-WebCore::GraphicsContext& PaintingContextCairo::graphicsContext()
-{
- return *m_graphicsContext;
-}
-
-} // namespace Nicosia
-
-#endif // USE(CAIRO)
Deleted: trunk/Source/WebCore/platform/graphics/nicosia/NicosiaPaintingContextCairo.h (229452 => 229453)
--- trunk/Source/WebCore/platform/graphics/nicosia/NicosiaPaintingContextCairo.h 2018-03-09 07:35:52 UTC (rev 229452)
+++ trunk/Source/WebCore/platform/graphics/nicosia/NicosiaPaintingContextCairo.h 2018-03-09 07:42:34 UTC (rev 229453)
@@ -1,69 +0,0 @@
-/*
- * 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 THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include "NicosiaPaintingContext.h"
-
-#if USE(CAIRO)
-
-#include <wtf/RefPtr.h>
-
-typedef struct _cairo cairo_t;
-typedef struct _cairo_surface cairo_surface_t;
-
-namespace WebCore {
-class GraphicsContext;
-class PlatformContextCairo;
-}
-
-namespace Nicosia {
-
-class PaintingContextCairo final : public PaintingContext {
-public:
- explicit PaintingContextCairo(Buffer&);
- virtual ~PaintingContextCairo();
-
-private:
- WebCore::GraphicsContext& graphicsContext() override;
-
- struct {
- RefPtr<cairo_surface_t> surface;
- RefPtr<cairo_t> context;
- } m_cairo;
- std::unique_ptr<WebCore::PlatformContextCairo> m_platformContext;
- std::unique_ptr<WebCore::GraphicsContext> m_graphicsContext;
-
-#ifndef NDEBUG
- bool m_deletionComplete { false };
-#endif
-};
-
-} // namespace Nicosia
-
-#endif // USE(CAIRO)
Added: trunk/Source/WebCore/platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.cpp (0 => 229453)
--- trunk/Source/WebCore/platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.cpp (rev 0)
+++ trunk/Source/WebCore/platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.cpp 2018-03-09 07:42:34 UTC (rev 229453)
@@ -0,0 +1,98 @@
+/*
+ * 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 THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * HOLDER OR 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 "NicosiaPaintingContextCairo.h"
+
+#if USE(CAIRO)
+
+#include "GraphicsContext.h"
+#include "GraphicsContextImplCairo.h"
+#include "NicosiaBuffer.h"
+#include "PlatformContextCairo.h"
+#include "RefPtrCairo.h"
+#include <cairo.h>
+#include <utility>
+
+namespace Nicosia {
+
+PaintingContextCairo::PaintingContextCairo(Buffer& buffer)
+{
+ // Balanced by the deref in the s_bufferKey user data destroy callback.
+ buffer.ref();
+
+ m_cairo.surface = adoptRef(cairo_image_surface_create_for_data(buffer.data(),
+ CAIRO_FORMAT_ARGB32, buffer.size().width(), buffer.size().height(), buffer.stride()));
+
+ static cairo_user_data_key_t s_bufferKey;
+ cairo_surface_set_user_data(m_cairo.surface.get(), &s_bufferKey,
+ new std::pair<Buffer*, PaintingContextCairo*> { &buffer, this },
+ [](void* data)
+ {
+ auto* userData = static_cast<std::pair<Buffer*, PaintingContextCairo*>*>(data);
+
+ // Deref the Buffer object.
+ userData->first->deref();
+#if !ASSERT_DISABLED
+ // Mark the deletion of the cairo_surface_t object associated with this
+ // PaintingContextCairo as complete. This way we check that the cairo_surface_t
+ // object doesn't outlive the PaintingContextCairo through which it was used.
+ userData->second->m_deletionComplete = true;
+#endif
+ delete userData;
+ });
+
+ m_cairo.context = adoptRef(cairo_create(m_cairo.surface.get()));
+ m_platformContext = std::make_unique<WebCore::PlatformContextCairo>(m_cairo.context.get());
+ m_graphicsContext = std::make_unique<WebCore::GraphicsContext>(WebCore::GraphicsContextImplCairo::createFactory(*m_platformContext));
+}
+
+PaintingContextCairo::~PaintingContextCairo()
+{
+ cairo_surface_flush(m_cairo.surface.get());
+
+ m_graphicsContext = nullptr;
+ m_platformContext = nullptr;
+ m_cairo.context = nullptr;
+ m_cairo.surface = nullptr;
+
+ // With all the Cairo references purged, the cairo_surface_t object should be destroyed
+ // as well. This is checked by asserting that m_deletionComplete is true, which should
+ // be the case if the s_bufferKey user data destroy callback has been invoked upon the
+ // cairo_surface_t destruction.
+ ASSERT(m_deletionComplete);
+}
+
+WebCore::GraphicsContext& PaintingContextCairo::graphicsContext()
+{
+ return *m_graphicsContext;
+}
+
+} // namespace Nicosia
+
+#endif // USE(CAIRO)
Added: trunk/Source/WebCore/platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.h (0 => 229453)
--- trunk/Source/WebCore/platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.h (rev 0)
+++ trunk/Source/WebCore/platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.h 2018-03-09 07:42:34 UTC (rev 229453)
@@ -0,0 +1,69 @@
+/*
+ * 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 THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include "NicosiaPaintingContext.h"
+
+#if USE(CAIRO)
+
+#include <wtf/RefPtr.h>
+
+typedef struct _cairo cairo_t;
+typedef struct _cairo_surface cairo_surface_t;
+
+namespace WebCore {
+class GraphicsContext;
+class PlatformContextCairo;
+}
+
+namespace Nicosia {
+
+class PaintingContextCairo final : public PaintingContext {
+public:
+ explicit PaintingContextCairo(Buffer&);
+ virtual ~PaintingContextCairo();
+
+private:
+ WebCore::GraphicsContext& graphicsContext() override;
+
+ struct {
+ RefPtr<cairo_surface_t> surface;
+ RefPtr<cairo_t> context;
+ } m_cairo;
+ std::unique_ptr<WebCore::PlatformContextCairo> m_platformContext;
+ std::unique_ptr<WebCore::GraphicsContext> m_graphicsContext;
+
+#ifndef NDEBUG
+ bool m_deletionComplete { false };
+#endif
+};
+
+} // namespace Nicosia
+
+#endif // USE(CAIRO)