summaryrefslogtreecommitdiffstats
path: root/src/core/renderer/web_engine_page_render_frame.h
blob: 7d0e2526775ba20af6912802828b83a07be0f872 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Copyright (C) 2020 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef WEB_ENGINE_PAGE_RENDER_FRAME_H
#define WEB_ENGINE_PAGE_RENDER_FRAME_H

#include "content/public/renderer/render_frame_observer.h"
#include "mojo/public/cpp/bindings/associated_receiver.h"
#include "qtwebengine/browser/qtwebenginepage.mojom.h"

namespace content {
class RenderFrame;
}

namespace QtWebEngineCore {

class WebEnginePageRenderFrame : private content::RenderFrameObserver,
                                 public qtwebenginepage::mojom::WebEnginePageRenderFrame
{
public:
    WebEnginePageRenderFrame(content::RenderFrame *render_frame);
    WebEnginePageRenderFrame(const WebEnginePageRenderFrame &) = delete;
    WebEnginePageRenderFrame &operator=(const WebEnginePageRenderFrame &) = delete;

private:
    void FetchDocumentMarkup(uint64_t requestId, FetchDocumentMarkupCallback callback) override;
    void FetchDocumentInnerText(uint64_t requestId,
                                FetchDocumentInnerTextCallback callback) override;
    void SetBackgroundColor(uint32_t color) override;
    void OnDestruct() override;
    void DidFinishLoad() override;
    void
    BindReceiver(mojo::PendingAssociatedReceiver<qtwebenginepage::mojom::WebEnginePageRenderFrame>
                         receiver);

private:
    mojo::AssociatedReceiver<qtwebenginepage::mojom::WebEnginePageRenderFrame> m_binding;
    bool m_ready;
};
} // namespace QtWebEngineCore

#endif // WEB_ENGINE_PAGE_RENDER_FRAME_H