Regression (r244291): Broken API Test AutoLayoutRenderingProgressRelativeOrdering
[WebKit-https.git] / Source / WebKit / UIProcess / mac / TiledCoreAnimationDrawingAreaProxy.h
1 /*
2  * Copyright (C) 2011-2018 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #pragma once
27
28 #if !PLATFORM(IOS_FAMILY)
29
30 #include "DrawingAreaProxy.h"
31
32 namespace WebKit {
33
34 class TiledCoreAnimationDrawingAreaProxy : public DrawingAreaProxy {
35 public:
36     TiledCoreAnimationDrawingAreaProxy(WebPageProxy&, WebProcessProxy&);
37     virtual ~TiledCoreAnimationDrawingAreaProxy();
38
39 private:
40     // DrawingAreaProxy
41     void deviceScaleFactorDidChange() override;
42     void sizeDidChange() override;
43     void colorSpaceDidChange() override;
44     void viewLayoutSizeDidChange() override;
45
46     void enterAcceleratedCompositingMode(uint64_t backingStoreStateID, const LayerTreeContext&) override;
47     void exitAcceleratedCompositingMode(uint64_t backingStoreStateID, const UpdateInfo&) override;
48     void updateAcceleratedCompositingMode(uint64_t backingStoreStateID, const LayerTreeContext&) override;
49
50     void adjustTransientZoom(double scale, WebCore::FloatPoint origin) override;
51     void commitTransientZoom(double scale, WebCore::FloatPoint origin) override;
52
53     void waitForDidUpdateActivityState(ActivityStateChangeID) override;
54     void dispatchAfterEnsuringDrawing(WTF::Function<void (CallbackBase::Error)>&&) override;
55     void dispatchPresentationCallbacksAfterFlushingLayers(const Vector<CallbackID>&) final;
56
57     void willSendUpdateGeometry() override;
58
59     WTF::MachSendRight createFence() override;
60
61     // Message handlers.
62     void didUpdateGeometry() override;
63
64     void sendUpdateGeometry();
65
66     // Whether we're waiting for a DidUpdateGeometry message from the web process.
67     bool m_isWaitingForDidUpdateGeometry;
68
69     // The last size we sent to the web process.
70     WebCore::IntSize m_lastSentSize;
71
72     // The last minimum layout size we sent to the web process.
73     WebCore::IntSize m_lastSentViewLayoutSize;
74
75     CallbackMap m_callbacks;
76 };
77
78 } // namespace WebKit
79
80 SPECIALIZE_TYPE_TRAITS_DRAWING_AREA_PROXY(TiledCoreAnimationDrawingAreaProxy, DrawingAreaTypeTiledCoreAnimation)
81
82 #endif // !PLATFORM(IOS_FAMILY)