| Differences between
and this patch
- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj +4 lines
Lines 2142-2147 a/Source/WebCore/WebCore.xcodeproj/project.pbxproj_sec1
2142
		72AB93F623FDFCFF0041509C /* ImageBufferCGBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = 72BAC3AD23E1E545008D741C /* ImageBufferCGBackend.h */; settings = {ATTRIBUTES = (Private, ); }; };
2142
		72AB93F623FDFCFF0041509C /* ImageBufferCGBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = 72BAC3AD23E1E545008D741C /* ImageBufferCGBackend.h */; settings = {ATTRIBUTES = (Private, ); }; };
2143
		72AB93F723FDFD580041509C /* ImageBufferIOSurfaceBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = 72BAC3AB23E1E544008D741C /* ImageBufferIOSurfaceBackend.h */; settings = {ATTRIBUTES = (Private, ); }; };
2143
		72AB93F723FDFD580041509C /* ImageBufferIOSurfaceBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = 72BAC3AB23E1E544008D741C /* ImageBufferIOSurfaceBackend.h */; settings = {ATTRIBUTES = (Private, ); }; };
2144
		72AB93F823FE00C90041509C /* RenderingBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = 72AB93EF23FDEADF0041509C /* RenderingBackend.h */; settings = {ATTRIBUTES = (Private, ); }; };
2144
		72AB93F823FE00C90041509C /* RenderingBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = 72AB93EF23FDEADF0041509C /* RenderingBackend.h */; settings = {ATTRIBUTES = (Private, ); }; };
2145
		72AB93FC23FE224D0041509C /* DisplayListObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 72AB93FA23FE20DB0041509C /* DisplayListObserver.h */; settings = {ATTRIBUTES = (Private, ); }; };
2145
		72BAC3AE23E1F0B0008D741C /* ImageBufferBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = 72BAC3A523E17328008D741C /* ImageBufferBackend.h */; settings = {ATTRIBUTES = (Private, ); }; };
2146
		72BAC3AE23E1F0B0008D741C /* ImageBufferBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = 72BAC3A523E17328008D741C /* ImageBufferBackend.h */; settings = {ATTRIBUTES = (Private, ); }; };
2146
		7553CFE8108F473F00EA281E /* TimelineRecordFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 7553CFE6108F473F00EA281E /* TimelineRecordFactory.h */; };
2147
		7553CFE8108F473F00EA281E /* TimelineRecordFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 7553CFE6108F473F00EA281E /* TimelineRecordFactory.h */; };
2147
		75793E840D0CE0B3007FC0AC /* MessageEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 75793E810D0CE0B3007FC0AC /* MessageEvent.h */; };
2148
		75793E840D0CE0B3007FC0AC /* MessageEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 75793E810D0CE0B3007FC0AC /* MessageEvent.h */; };
Lines 9598-9603 a/Source/WebCore/WebCore.xcodeproj/project.pbxproj_sec2
9598
		72AB93EF23FDEADF0041509C /* RenderingBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderingBackend.h; sourceTree = "<group>"; };
9599
		72AB93EF23FDEADF0041509C /* RenderingBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderingBackend.h; sourceTree = "<group>"; };
9599
		72AB93F023FDEADF0041509C /* RenderingBackend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderingBackend.cpp; sourceTree = "<group>"; };
9600
		72AB93F023FDEADF0041509C /* RenderingBackend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderingBackend.cpp; sourceTree = "<group>"; };
9600
		72AB93F123FDF4930041509C /* DisplayListImageBuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DisplayListImageBuffer.h; sourceTree = "<group>"; };
9601
		72AB93F123FDF4930041509C /* DisplayListImageBuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DisplayListImageBuffer.h; sourceTree = "<group>"; };
9602
		72AB93FA23FE20DB0041509C /* DisplayListObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DisplayListObserver.h; sourceTree = "<group>"; };
9601
		72BAC3A423E17327008D741C /* ImageBufferBackend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImageBufferBackend.cpp; sourceTree = "<group>"; };
9603
		72BAC3A423E17327008D741C /* ImageBufferBackend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImageBufferBackend.cpp; sourceTree = "<group>"; };
9602
		72BAC3A523E17328008D741C /* ImageBufferBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageBufferBackend.h; sourceTree = "<group>"; };
9604
		72BAC3A523E17328008D741C /* ImageBufferBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageBufferBackend.h; sourceTree = "<group>"; };
9603
		72BAC3A623E17328008D741C /* PlatformImageBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformImageBuffer.h; sourceTree = "<group>"; };
9605
		72BAC3A623E17328008D741C /* PlatformImageBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformImageBuffer.h; sourceTree = "<group>"; };
Lines 16702-16707 a/Source/WebCore/WebCore.xcodeproj/project.pbxproj_sec3
16702
				72AB93F123FDF4930041509C /* DisplayListImageBuffer.h */,
16704
				72AB93F123FDF4930041509C /* DisplayListImageBuffer.h */,
16703
				0FE5FBCC1C3DD51E0007A2CA /* DisplayListItems.cpp */,
16705
				0FE5FBCC1C3DD51E0007A2CA /* DisplayListItems.cpp */,
16704
				0FE5FBCD1C3DD51E0007A2CA /* DisplayListItems.h */,
16706
				0FE5FBCD1C3DD51E0007A2CA /* DisplayListItems.h */,
16707
				72AB93FA23FE20DB0041509C /* DisplayListObserver.h */,
16705
				0FE5FBCE1C3DD51E0007A2CA /* DisplayListRecorder.cpp */,
16708
				0FE5FBCE1C3DD51E0007A2CA /* DisplayListRecorder.cpp */,
16706
				0FE5FBCF1C3DD51E0007A2CA /* DisplayListRecorder.h */,
16709
				0FE5FBCF1C3DD51E0007A2CA /* DisplayListRecorder.h */,
16707
				0FE5FBD01C3DD51E0007A2CA /* DisplayListReplayer.cpp */,
16710
				0FE5FBD01C3DD51E0007A2CA /* DisplayListReplayer.cpp */,
Lines 32035-32040 a/Source/WebCore/WebCore.xcodeproj/project.pbxproj_sec4
32035
				436708CD12D9CA4B00044234 /* RenderSVGResource.h in Headers */,
32038
				436708CD12D9CA4B00044234 /* RenderSVGResource.h in Headers */,
32036
				436708CF12D9CA4B00044234 /* RenderSVGResourceClipper.h in Headers */,
32039
				436708CF12D9CA4B00044234 /* RenderSVGResourceClipper.h in Headers */,
32037
				436708D112D9CA4B00044234 /* RenderSVGResourceContainer.h in Headers */,
32040
				436708D112D9CA4B00044234 /* RenderSVGResourceContainer.h in Headers */,
32041
				72AB93FC23FE224D0041509C /* DisplayListObserver.h in Headers */,
32038
				436708D312D9CA4B00044234 /* RenderSVGResourceFilter.h in Headers */,
32042
				436708D312D9CA4B00044234 /* RenderSVGResourceFilter.h in Headers */,
32039
				436708D512D9CA4B00044234 /* RenderSVGResourceFilterPrimitive.h in Headers */,
32043
				436708D512D9CA4B00044234 /* RenderSVGResourceFilterPrimitive.h in Headers */,
32040
				436708D712D9CA4B00044234 /* RenderSVGResourceGradient.h in Headers */,
32044
				436708D712D9CA4B00044234 /* RenderSVGResourceGradient.h in Headers */,
- a/Source/WebCore/platform/graphics/displaylists/DisplayListDrawingContext.h -2 / +3 lines
Lines 27-32 a/Source/WebCore/platform/graphics/displaylists/DisplayListDrawingContext.h_sec1
27
27
28
#include "AffineTransform.h"
28
#include "AffineTransform.h"
29
#include "DisplayList.h"
29
#include "DisplayList.h"
30
#include "DisplayListObserver.h"
30
#include "DisplayListRecorder.h"
31
#include "DisplayListRecorder.h"
31
#include "DisplayListReplayer.h"
32
#include "DisplayListReplayer.h"
32
#include "GraphicsContext.h"
33
#include "GraphicsContext.h"
Lines 34-44 a/Source/WebCore/platform/graphics/displaylists/DisplayListDrawingContext.h_sec2
34
namespace WebCore {
35
namespace WebCore {
35
namespace DisplayList {
36
namespace DisplayList {
36
37
37
class DrawingContext {
38
class DrawingContext : public Observer {
38
public:
39
public:
39
    DrawingContext(const FloatSize& logicalSize)
40
    DrawingContext(const FloatSize& logicalSize)
40
        : m_context([&](GraphicsContext& displayListContext) {
41
        : m_context([&](GraphicsContext& displayListContext) {
41
            return makeUnique<Recorder>(displayListContext, m_displayList, GraphicsContextState(), FloatRect({ }, logicalSize), AffineTransform());
42
            return makeUnique<Recorder>(displayListContext, m_displayList, GraphicsContextState(), FloatRect({ }, logicalSize), AffineTransform(), this);
42
        })
43
        })
43
    {
44
    {
44
    }
45
    }
- a/Source/WebCore/platform/graphics/displaylists/DisplayListObserver.h +41 lines
Line 0 a/Source/WebCore/platform/graphics/displaylists/DisplayListObserver.h_sec1
1
/*
2
 * Copyright (C) 2020 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. ``AS IS'' AND ANY
14
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
17
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21
 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#pragma once
27
28
namespace WebCore {
29
namespace DisplayList {
30
31
class Observer {
32
public:
33
    virtual ~Observer() = default;
34
    virtual void willAppendItem(const Item&) { };
35
    
36
protected:
37
    Observer() = default;
38
};
39
40
} // DisplayList
41
} // WebCore
- a/Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp -1 / +6 lines
Lines 28-33 a/Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp_sec1
28
28
29
#include "DisplayList.h"
29
#include "DisplayList.h"
30
#include "DisplayListItems.h"
30
#include "DisplayListItems.h"
31
#include "DisplayListObserver.h"
31
#include "GraphicsContext.h"
32
#include "GraphicsContext.h"
32
#include "Logging.h"
33
#include "Logging.h"
33
#include <wtf/MathExtras.h>
34
#include <wtf/MathExtras.h>
Lines 36-44 a/Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp_sec2
36
namespace WebCore {
37
namespace WebCore {
37
namespace DisplayList {
38
namespace DisplayList {
38
39
39
Recorder::Recorder(GraphicsContext& context, DisplayList& displayList, const GraphicsContextState& state, const FloatRect& initialClip, const AffineTransform& baseCTM)
40
Recorder::Recorder(GraphicsContext& context, DisplayList& displayList, const GraphicsContextState& state, const FloatRect& initialClip, const AffineTransform& baseCTM, Observer* observer)
40
    : GraphicsContextImpl(context, initialClip, baseCTM)
41
    : GraphicsContextImpl(context, initialClip, baseCTM)
41
    , m_displayList(displayList)
42
    , m_displayList(displayList)
43
    , m_observer(observer)
42
{
44
{
43
    LOG_WITH_STREAM(DisplayLists, stream << "\nRecording with clip " << initialClip);
45
    LOG_WITH_STREAM(DisplayLists, stream << "\nRecording with clip " << initialClip);
44
    m_stateStack.append(ContextState(state, baseCTM, initialClip));
46
    m_stateStack.append(ContextState(state, baseCTM, initialClip));
Lines 52-57 Recorder::~Recorder() a/Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp_sec3
52
54
53
void Recorder::willAppendItem(const Item& item)
55
void Recorder::willAppendItem(const Item& item)
54
{
56
{
57
    if (m_observer)
58
        m_observer->willAppendItem(item);
59
55
    if (item.isDrawingItem()
60
    if (item.isDrawingItem()
56
#if USE(CG)
61
#if USE(CG)
57
        || item.type() == ItemType::ApplyStrokePattern || item.type() == ItemType::ApplyStrokePattern
62
        || item.type() == ItemType::ApplyStrokePattern || item.type() == ItemType::ApplyStrokePattern
- a/Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h -1 / +3 lines
Lines 46-57 struct ImagePaintingOptions; a/Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h_sec1
46
namespace DisplayList {
46
namespace DisplayList {
47
47
48
class DrawingItem;
48
class DrawingItem;
49
class Observer;
49
50
50
class Recorder : public GraphicsContextImpl {
51
class Recorder : public GraphicsContextImpl {
51
    WTF_MAKE_FAST_ALLOCATED;
52
    WTF_MAKE_FAST_ALLOCATED;
52
    WTF_MAKE_NONCOPYABLE(Recorder);
53
    WTF_MAKE_NONCOPYABLE(Recorder);
53
public:
54
public:
54
    WEBCORE_EXPORT Recorder(GraphicsContext&, DisplayList&, const GraphicsContextState&, const FloatRect& initialClip, const AffineTransform&);
55
    WEBCORE_EXPORT Recorder(GraphicsContext&, DisplayList&, const GraphicsContextState&, const FloatRect& initialClip, const AffineTransform&, Observer* = nullptr);
55
    WEBCORE_EXPORT virtual ~Recorder();
56
    WEBCORE_EXPORT virtual ~Recorder();
56
57
57
    size_t itemCount() const { return m_displayList.itemCount(); }
58
    size_t itemCount() const { return m_displayList.itemCount(); }
Lines 173-178 private: a/Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h_sec2
173
    ContextState& currentState();
174
    ContextState& currentState();
174
175
175
    DisplayList& m_displayList;
176
    DisplayList& m_displayList;
177
    Observer* m_observer;
176
178
177
    Vector<ContextState, 32> m_stateStack;
179
    Vector<ContextState, 32> m_stateStack;
178
};
180
};
- a/Source/WebKit/GPUProcess/RenderingBackend/RemoteImageBufferChannelProxy.cpp +5 lines
Lines 73-78 void RemoteImageBufferChannelProxy::flushDrawingContext(const DisplayList::Displ a/Source/WebKit/GPUProcess/RenderingBackend/RemoteImageBufferChannelProxy.cpp_sec1
73
    send(Messages::RemoteImageBufferChannel::SetFlushIdentifier(flushIdentifier), m_imageBufferIdentifier);
73
    send(Messages::RemoteImageBufferChannel::SetFlushIdentifier(flushIdentifier), m_imageBufferIdentifier);
74
}
74
}
75
75
76
void RemoteImageBufferChannelProxy::batchFlushDrawingContext(const DisplayList::DisplayList& displayList)
77
{
78
    localBatchFlushDrawingContext(displayList);
79
}
80
76
} // namespace WebKit
81
} // namespace WebKit
77
82
78
#endif // ENABLE(GPU_PROCESS)
83
#endif // ENABLE(GPU_PROCESS)
- a/Source/WebKit/GPUProcess/RenderingBackend/RemoteImageBufferChannelProxy.h +2 lines
Lines 57-64 protected: a/Source/WebKit/GPUProcess/RenderingBackend/RemoteImageBufferChannelProxy.h_sec1
57
    void remoteCreateBackend(const WebCore::FloatSize& logicalSize, const WebCore::IntSize& internalSize, float resolutionScale, WebCore::ColorSpace, ImageBufferBackendHandle);
57
    void remoteCreateBackend(const WebCore::FloatSize& logicalSize, const WebCore::IntSize& internalSize, float resolutionScale, WebCore::ColorSpace, ImageBufferBackendHandle);
58
58
59
    void flushDrawingContext(const WebCore::DisplayList::DisplayList&, ImageBufferFlushIdentifier);
59
    void flushDrawingContext(const WebCore::DisplayList::DisplayList&, ImageBufferFlushIdentifier);
60
    void batchFlushDrawingContext(const WebCore::DisplayList::DisplayList&);
60
61
61
    virtual void localFlushDrawingContext(const WebCore::DisplayList::DisplayList&) = 0;
62
    virtual void localFlushDrawingContext(const WebCore::DisplayList::DisplayList&) = 0;
63
    virtual void localBatchFlushDrawingContext(const WebCore::DisplayList::DisplayList&) = 0;
62
64
63
    WeakPtr<GPUConnectionToWebProcess> m_gpuConnectionToWebProcess;
65
    WeakPtr<GPUConnectionToWebProcess> m_gpuConnectionToWebProcess;
64
    ImageBufferIdentifier m_imageBufferIdentifier;
66
    ImageBufferIdentifier m_imageBufferIdentifier;
- a/Source/WebKit/GPUProcess/RenderingBackend/RemoteImageBufferChannelProxy.messages.in +1 lines
Lines 24-29 a/Source/WebKit/GPUProcess/RenderingBackend/RemoteImageBufferChannelProxy.messages.in_sec1
24
24
25
messages -> RemoteImageBufferChannelProxy NotRefCounted {
25
messages -> RemoteImageBufferChannelProxy NotRefCounted {
26
    void FlushDrawingContext(WebCore::DisplayList::DisplayList displayList, WebKit::ImageBufferFlushIdentifier flushIdentifier)
26
    void FlushDrawingContext(WebCore::DisplayList::DisplayList displayList, WebKit::ImageBufferFlushIdentifier flushIdentifier)
27
    void BatchFlushDrawingContext(WebCore::DisplayList::DisplayList displayList)
27
}
28
}
28
29
29
#endif // ENABLE(GPU_PROCESS)
30
#endif // ENABLE(GPU_PROCESS)
- a/Source/WebKit/GPUProcess/RenderingBackend/RemoteImageBufferProxy.h +8 lines
Lines 60-65 private: a/Source/WebKit/GPUProcess/RenderingBackend/RemoteImageBufferProxy.h_sec1
60
        }
60
        }
61
        m_backend->flushContext();
61
        m_backend->flushContext();
62
    }
62
    }
63
    
64
    void localBatchFlushDrawingContext(const WebCore::DisplayList::DisplayList& displayList) override
65
    {
66
        ASSERT(displayList.itemCount());
67
        WebCore::DisplayList::Replayer replayer(BaseConcreteImageBuffer::context(), displayList);
68
        replayer.replay();
69
        m_backend->flushContext();
70
    }
63
};
71
};
64
72
65
} // namespace WebKit
73
} // namespace WebKit
- a/Source/WebKit/WebProcess/GPU/RenderingBackend/RemoteImageBuffer.h +9 lines
Lines 82-87 protected: a/Source/WebKit/WebProcess/GPU/RenderingBackend/RemoteImageBuffer.h_sec1
82
            displayList.clear();
82
            displayList.clear();
83
        }
83
        }
84
    }
84
    }
85
    
86
    void willAppendItem(const WebCore::DisplayList::Item& item) override
87
    {
88
        auto& displayList = WebCore::DisplayList::DrawingContext::displayList();
89
        if (displayList.itemCount() >= 512) {
90
            RemoteImageBufferChannel::remoteBatchFlushDrawingContext(displayList);
91
            displayList.clear();
92
        }
93
    }
85
};
94
};
86
95
87
} // namespace WebKit
96
} // namespace WebKit
- a/Source/WebKit/WebProcess/GPU/RenderingBackend/RemoteImageBufferChannel.cpp +5 lines
Lines 103-108 void RemoteImageBufferChannel::remoteFlushDrawingContext(const WebCore::DisplayL a/Source/WebKit/WebProcess/GPU/RenderingBackend/RemoteImageBufferChannel.cpp_sec1
103
    ensureUpdatedBackend();
103
    ensureUpdatedBackend();
104
}
104
}
105
105
106
void RemoteImageBufferChannel::remoteBatchFlushDrawingContext(const WebCore::DisplayList::DisplayList& displayList)
107
{
108
    send(Messages::RemoteImageBufferChannelProxy::BatchFlushDrawingContext(displayList), m_imageBufferIdentifier);
109
}
110
106
} // namespace WebKit
111
} // namespace WebKit
107
112
108
#endif // ENABLE(GPU_PROCESS)
113
#endif // ENABLE(GPU_PROCESS)
- a/Source/WebKit/WebProcess/GPU/RenderingBackend/RemoteImageBufferChannel.h +1 lines
Lines 66-71 protected: a/Source/WebKit/WebProcess/GPU/RenderingBackend/RemoteImageBufferChannel.h_sec1
66
    void setFlushIdentifier(ImageBufferFlushIdentifier);
66
    void setFlushIdentifier(ImageBufferFlushIdentifier);
67
        
67
        
68
    void remoteFlushDrawingContext(const WebCore::DisplayList::DisplayList&);
68
    void remoteFlushDrawingContext(const WebCore::DisplayList::DisplayList&);
69
    void remoteBatchFlushDrawingContext(const WebCore::DisplayList::DisplayList&);
69
70
70
    ImageBufferFlushIdentifier m_sentFlushIdentifier;
71
    ImageBufferFlushIdentifier m_sentFlushIdentifier;
71
    ImageBufferFlushIdentifier m_receivedFlushIdentifier;
72
    ImageBufferFlushIdentifier m_receivedFlushIdentifier;

Return to Bug 204955