1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef RemoteFrame_h
6#define RemoteFrame_h
7
8#include "core/frame/Frame.h"
9
10namespace blink {
11
12class RemoteFrameView;
13
14class RemoteFrame: public Frame {
15public:
16    static PassRefPtrWillBeRawPtr<RemoteFrame> create(FrameClient*, FrameHost*, FrameOwner*);
17    virtual bool isRemoteFrame() const OVERRIDE { return true; }
18
19    virtual ~RemoteFrame();
20
21    virtual void detach() OVERRIDE;
22
23    void setView(PassRefPtr<RemoteFrameView>);
24    void createView();
25
26    RemoteFrameView* view() const;
27
28private:
29    RemoteFrame(FrameClient*, FrameHost*, FrameOwner*);
30
31    RefPtr<RemoteFrameView> m_view;
32};
33
34inline RemoteFrameView* RemoteFrame::view() const
35{
36    return m_view.get();
37}
38
39DEFINE_TYPE_CASTS(RemoteFrame, Frame, remoteFrame, remoteFrame->isRemoteFrame(), remoteFrame.isRemoteFrame());
40
41} // namespace blink
42
43#endif // RemoteFrame_h
44