summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/public/web/WebRemoteFrameClient.h
blob: 5a6a8248d1c512e3492b890caaccbb4ace3b51bd (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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef WebRemoteFrameClient_h
#define WebRemoteFrameClient_h

#include "public/platform/WebFocusType.h"
#include "public/platform/WebSecurityOrigin.h"
#include "public/web/WebDOMMessageEvent.h"

namespace blink {
class WebInputEvent;
class WebLocalFrame;
class WebRemoteFrame;
struct WebRect;

class WebRemoteFrameClient {
public:
    // Specifies the reason for the detachment.
    enum class DetachType { Remove, Swap };

    // Notify the embedder that it should remove this frame from the frame tree
    // and release any resources associated with it.
    virtual void frameDetached(DetachType) { }

    // Notifies the embedder that a postMessage was issued to a remote frame.
    virtual void postMessageEvent(
        WebLocalFrame* sourceFrame,
        WebRemoteFrame* targetFrame,
        WebSecurityOrigin targetOrigin,
        WebDOMMessageEvent) { }

    // Send initial drawing parameters to a child frame that is being rendered
    // out of process.
    virtual void initializeChildFrame(
        const WebRect& frameRect,
        float deviceScaleFactor) { }

    // A remote frame was asked to start a navigation.
    virtual void navigate(const WebURLRequest& request, bool shouldReplaceCurrentEntry) { }
    virtual void reload(bool ignoreCache, bool isClientRedirect) { }

    // FIXME: Remove this method once we have input routing in the browser
    // process. See http://crbug.com/339659.
    virtual void forwardInputEvent(const WebInputEvent*) { }

    virtual void frameRectsChanged(const WebRect&) { }

    // This frame updated its opener to another frame.
    virtual void didChangeOpener(WebFrame* opener) { }

    // Continue sequential focus navigation in this frame.  This is called when
    // the |source| frame is searching for the next focusable element (e.g., in
    // response to <tab>) and encounters a remote frame.
    virtual void advanceFocus(WebFocusType type, WebLocalFrame* source) { }
};

} // namespace blink

#endif // WebRemoteFrameClient_h