// 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.

accessibility/atk/AXObjectCacheAtk.cpp
accessibility/atk/AccessibilityObjectAtk.cpp
accessibility/atk/WebKitAccessible.cpp
accessibility/atk/WebKitAccessibleHyperlink.cpp
accessibility/atk/WebKitAccessibleInterfaceAction.cpp @no-unify
accessibility/atk/WebKitAccessibleInterfaceComponent.cpp
accessibility/atk/WebKitAccessibleInterfaceDocument.cpp
accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp
accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp
accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp
accessibility/atk/WebKitAccessibleInterfaceImage.cpp
accessibility/atk/WebKitAccessibleInterfaceSelection.cpp
accessibility/atk/WebKitAccessibleInterfaceTable.cpp
accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp
accessibility/atk/WebKitAccessibleInterfaceText.cpp
accessibility/atk/WebKitAccessibleInterfaceValue.cpp
accessibility/atk/WebKitAccessibleUtil.cpp

accessibility/atspi/AccessibilityAtspi.cpp
accessibility/atspi/AccessibilityObjectAtspi.cpp
accessibility/atspi/AccessibilityObjectActionAtspi.cpp
accessibility/atspi/AccessibilityObjectComponentAtspi.cpp
accessibility/atspi/AccessibilityObjectDocumentAtspi.cpp
accessibility/atspi/AccessibilityObjectHyperlinkAtspi.cpp
accessibility/atspi/AccessibilityObjectHypertextAtspi.cpp
accessibility/atspi/AccessibilityObjectImageAtspi.cpp
accessibility/atspi/AccessibilityObjectSelectionAtspi.cpp
accessibility/atspi/AccessibilityObjectTextAtspi.cpp
accessibility/atspi/AccessibilityObjectValueAtspi.cpp
accessibility/atspi/AccessibilityRootAtspi.cpp
accessibility/atspi/AXObjectCacheAtspi.cpp

accessibility/isolatedtree/atspi/AXIsolatedObjectAtspi.cpp

editing/atk/FrameSelectionAtk.cpp

editing/atspi/FrameSelectionAtspi.cpp

editing/gtk/EditorGtk.cpp
editing/gtk/WebContentReaderGtk.cpp

loader/soup/ResourceLoaderSoup.cpp

page/gtk/DragControllerGtk.cpp

page/linux/ResourceUsageOverlayLinux.cpp
page/linux/ResourceUsageThreadLinux.cpp

page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp
page/scrolling/nicosia/ScrollingStateNodeNicosia.cpp
page/scrolling/nicosia/ScrollingTreeFixedNode.cpp
page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp
page/scrolling/nicosia/ScrollingTreeNicosia.cpp
page/scrolling/nicosia/ScrollingTreeOverflowScrollProxyNode.cpp
page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp
page/scrolling/nicosia/ScrollingTreePositionedNode.cpp
page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.cpp
page/scrolling/nicosia/ScrollingTreeStickyNodeNicosia.cpp

platform/UserAgentQuirks.cpp

platform/adwaita/ScrollbarThemeAdwaita.cpp
platform/adwaita/ThemeAdwaita.cpp

platform/gamepad/manette/ManetteGamepad.cpp
platform/gamepad/manette/ManetteGamepadProvider.cpp

platform/generic/ScrollbarsControllerGeneric.cpp

platform/graphics/ANGLEWebKitBridge.cpp
platform/graphics/GLContext.cpp @no-unify
platform/graphics/PlatformDisplay.cpp @no-unify

platform/graphics/cairo/BackingStoreBackendCairoX11.cpp @no-unify

platform/graphics/egl/GLContextEGL.cpp @no-unify
platform/graphics/egl/GLContextEGLLibWPE.cpp @no-unify
platform/graphics/egl/GLContextEGLWayland.cpp @no-unify
platform/graphics/egl/GLContextEGLX11.cpp @no-unify

platform/graphics/glx/GLContextGLX.cpp

platform/graphics/gtk/ColorGtk.cpp
platform/graphics/gtk/DisplayRefreshMonitorGtk.cpp
platform/graphics/gtk/GdkCairoUtilities.cpp
platform/graphics/gtk/ImageGtk.cpp

platform/graphics/gstreamer/ImageGStreamerCairo.cpp

platform/graphics/libwpe/PlatformDisplayLibWPE.cpp

platform/graphics/opentype/OpenTypeVerticalData.cpp

platform/graphics/wayland/PlatformDisplayWayland.cpp

platform/graphics/x11/PlatformDisplayX11.cpp @no-unify
platform/graphics/x11/XErrorTrapper.cpp @no-unify
platform/graphics/x11/XUniqueResource.cpp @no-unify

platform/gtk/CursorGtk.cpp
platform/gtk/DragDataGtk.cpp
platform/gtk/DragImageGtk.cpp
platform/gtk/GRefPtrGtk.cpp
platform/gtk/GtkUtilities.cpp @no-unify
platform/gtk/LocalizedStringsGtk.cpp
platform/gtk/PasteboardGtk.cpp
platform/gtk/PlatformKeyboardEventGtk.cpp
platform/gtk/PlatformScreenGtk.cpp
platform/gtk/RenderThemeGadget.cpp
platform/gtk/RenderThemeScrollbar.cpp
platform/gtk/ScrollbarThemeGtk.cpp
platform/gtk/SelectionData.cpp
platform/gtk/ThemeGtk.cpp
platform/gtk/WidgetGtk.cpp

platform/text/Hyphenation.cpp
platform/text/LocaleICU.cpp

platform/text/enchant/TextCheckerEnchant.cpp

platform/text/hyphen/HyphenationLibHyphen.cpp

platform/unix/LoggingUnix.cpp

platform/xdg/MIMETypeRegistryXdg.cpp

rendering/RenderThemeAdwaita.cpp
rendering/RenderThemeGtk.cpp
